Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
What is the Perps API?
The Raydium Perps API (V1) is a configuration and metadata service for the Raydium Perpetual Futures frontend and integrations. It provides:- UI configuration – current version, minimum version support
- RPC endpoints – whitelisted Solana RPC endpoints for the UI
- Market statistics – 24h/7d/30d trading volume and open interest
- Regional restrictions – per-country availability checks
- Pool metadata – active perp markets and volume data
- Campaign data – leaderboard, user stats, and rewards
- P&L sharing – generate shareable position screenshots
Architecture Overview
The Perps system consists of two independent components:- Raydium Perp API (this service) – Reads configuration, provides UI data, generates images
- Orderly Network – Executes orders, manages positions, and settlement
- The UI fetches market configuration from this API (pools, RPCs, availability)
- The UI sends the order to Orderly Network’s API
- Orderly executes the order and maintains position state
- The UI retrieves position data and stats from Orderly’s API or our campaign endpoint
API Endpoints by Category
Main Endpoints
Core service information and availability checks.GET /main/version
Returns current stable UI version and minimum supported version.
Use: Check if the client’s UI version is still supported.
Response:
GET /main/rpcs
Returns whitelisted Solana RPC endpoints for the UI to use.
Use: Populate RPC selector in the UI; ensures clients connect to stable, Raydium-approved endpoints.
GET /main/info
Returns market-wide statistics.
Use: Display 24h volume, 7d volume, 30d volume, and total/long/short open interest on the dashboard.
Response:
GET /main/availability-check
Checks if perp trading is available in the user’s region.
Use: Warn or restrict access in restricted regions (e.g., USA).
How it works:
- Reads the
cf-ipcountryheader from Cloudflare (if behind Cloudflare) - Falls back to a default config if the header is absent
- Returns availability status per region
GET /main/temp-key?wallet=...
Generates a temporary Ed25519 keypair for initial authentication or temporary signing.
Use: Non-custodial temporary key generation for certain auth flows.
Response:
Pool Endpoints
Perpetual market configuration.GET /pool/default-list
Returns list of default perp markets with 24h/7d/30d volume.
Use: Populate market selector or dashboard widget with available perp pairs.
Response:
Campaign Endpoints
Leaderboard, user stats, and reward data.GET /campaign/configs
Returns active campaign parameters and rules.
Use: Display campaign terms and participation requirements in the UI.
GET /campaign/user?wallet=...&index=0
Returns a user’s campaign stats (volume, P&L, score, earned rewards).
Use: Display in user’s profile or account dashboard.
Response (user with no history defaults to zeroed data):
GET /campaign/list?index=0
Returns leaderboard for a given campaign index (paginated).
Use: Display top traders and rankings.
Response:
Share Endpoints
Generate shareable position screenshots.POST /share/position
Generates a shareable image of the user’s current perp position.
Use: Social sharing (Twitter, Discord) of live positions.
Request:
POST /share/history-position
Generates a shareable image of a closed position with realized P&L.
Use: Share closed trades with profit/loss details.
Request:
/share/position.
Response Envelope
All endpoints return a standard envelope:Caching
Most endpoints return acache-control: max-age=60 header, meaning:
- Results are cached server-side and updated every 60 seconds
- Clients may also cache for 60 seconds to reduce load
- Real-time data is not guaranteed; expect 0–60 second staleness
Regional Availability
Regional restrictions are handled via thecf-ipcountry header (Cloudflare). Supported regions and restrictions are configured server-side and updated periodically.
Network Endpoints
| Environment | Host |
|---|---|
| Production | api-perp-v1.raydium.io |
Integration with Orderly Network
To place an order:- Call
/campaign/useror/main/infoto fetch metadata and display to the user - Send the order to Orderly Network’s API (not this API)
- Orderly returns a trade confirmation and position state
- Call
/campaign/useragain later to see updated stats


