> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raze.bot/llms.txt
> Use this file to discover all available pages before exploring further.

# List supported perpetuals

> Static list of perpetuals per venue (v1: Jupiter Perps).
Use `venue` to filter; omit to list every supported venue.

Mirrors the History API's `/api/sol/perp/markets` shape so the same
client can switch between catalog and trading services.




## OpenAPI

````yaml openapi-spec/trading.yaml post /perp/sol/markets
openapi: 3.0.3
info:
  title: Raze Trading API
  description: >
    Trading endpoints for Solana token swaps — quote, buy, sell, atomic

    round-trips and raw instructions. Perpetuals (Jupiter Perps + Phoenix) live

    here too.


    Quotes can also be **streamed**: `/swap/sol/quote/stream` is a WebSocket
    that

    pushes a fresh quote whenever the pools under your route move. It is not

    describable in OpenAPI — see

    [Streaming quotes](/api-reference/router/quote-stream).


    Write utilities (`/utils/sol/*` — launch, transfer, burn, consolidate, fees)

    moved to the History API on `https://api.raze.bot` (see `history.yaml`).


    Runs on port 8082.


    **Auth methods**: `Authorization: Bearer sk_...` header, `X-API-Key: sk_...`
    header, or `?apiKey=sk_...` query param.
  version: 2.1.0
servers:
  - url: https://router.raze.bot
    description: >-
      Raze global trading router — GeoDNS routes to the nearest region
      automatically
security: []
paths:
  /perp/sol/markets:
    post:
      summary: List supported perpetuals
      description: |
        Static list of perpetuals per venue (v1: Jupiter Perps).
        Use `venue` to filter; omit to list every supported venue.

        Mirrors the History API's `/api/sol/perp/markets` shape so the same
        client can switch between catalog and trading services.
      operationId: perpListMarkets
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PerpListRequest'
            examples:
              all:
                summary: List all venues
                value: {}
              jupOnly:
                summary: Jupiter-only
                value:
                  venue: jup
      responses:
        '200':
          description: Markets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PerpListResponse'
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
components:
  schemas:
    PerpListRequest:
      type: object
      properties:
        venue:
          type: string
          enum:
            - jup
            - phoenix
          description: >
            Optional venue filter. Omit to list all supported venues. Jupiter's

            three markets (SOL / ETH / BTC) are compile-time; the Phoenix list
            is

            fetched live from the venue, so new Phoenix markets appear without a

            router redeploy. A Phoenix outage degrades to Jupiter-only.
    PerpListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PerpMarket'
        count:
          type: integer
    PerpMarket:
      type: object
      properties:
        venue:
          type: string
          enum:
            - jup
            - phoenix
          example: jup
        market_id:
          type: string
          description: '`<venue>:<ASSET>-PERP`.'
          example: jup:SOL-PERP
        asset:
          type: string
          example: SOL
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
    BearerAuth:
      type: http
      scheme: bearer

````