---
title: "List markets available for RFQ"
method: GET
path: "/rfqs/markets"
tags: ["Rfqs"]
---

# List markets available for RFQ

`GET /rfqs/markets`

Returns the market symbols currently available for RFQ.

Not every listed Paradex market can be quoted as an RFQ: the venue quotes only
the instruments it lists for the Paradex venue, and a create naming any other
market is rejected with a validation error. This endpoint is that set, so a
client can stop offering markets a create would reject on their name instead of
discovering the difference after the user has already sized a structure.

Membership is necessary but not sufficient. A create additionally checks that a
hedge leg's price sits on the instrument's tick and that the strategy quantity
meets its minimum block size, so a market listed here can still be rejected on
those grounds.

`markets_info` carries one record per market: its `symbol` and the venue's
own `venue_size_increment`, the step the RFQ quantity must be a multiple of,
so a client can size on the right grid as the user types. These are the venue
instrument's grids, not the Paradex market's own increments: the two differ,
and quantities are validated against the venue's.
A quantity has to satisfy both grids, so combine them with their least
common multiple rather than by taking the larger: the two coincide only when
one divides the other, which holds for the powers of ten Paradex lists today
but is not guaranteed of venue data. Neither grid is reliably the coarser
one. Where they are coprime the combined step can exceed both (0.001 and
0.0025 give 0.005), which is correct: a quantity off either grid is
rejected by one side or the other.

The combined step and the minimum block size constrain different things and
both always apply, so neither overrides the other. The step says which
quantities are legal, the block size sets a floor, and the smallest quotable
size is simply the first step at or above that floor. There is always one, so
the two can never be mutually unsatisfiable.

`venue_size_increment` is empty when the venue reports no usable grid for
that market, or while an older service is still deployed. Read an empty one
as "unknown" and do not fall back to the market's own increment alone, since
a size legal on the order book can still be rejected by the venue.
`POST /rfqs` validates the quantity against the venue grid and rejects an
off-grid size before the RFQ is created, so that check remains the authority
whatever a client sizes on.

`markets` repeats the same symbols in the same order and is **deprecated**:
it stays only until every client reads `markets_info`, and new integrations
should ignore it.

The set is served from a periodically refreshed snapshot, so a market listed by
the venue moments ago may take up to one refresh interval to appear here.

`markets` is never an empty list: a caller cannot tell "the venue quotes
nothing" from "this read is unavailable", so a degraded or empty snapshot is
reported as `503` instead. (`venue_size_increments` may legitimately be
`{}` — an older service reports no grids at all.) Treat any failure as
"unknown" and fall back to offering every market — the create remains
authoritative.

## Response `200`

OK

- ResponsesRfqMarketsResult
  - `markets` string[] — Deprecated: use MarketsInfo, which carries the same symbols plus the venue parameters. Kept until every client reads the structured list.
  - `markets_info` ResponsesRfqMarketInfo[] — One record per market, same markets as Markets and in the same order.
    - `symbol` string
    - `venue_size_increment` string — The venue's own size grid, as a decimal string. RFQ quantities are validated against THIS, not the Paradex market's own increment, so a client sizing off the order-book grid alone can produce a quantity the venue rejects. Empty when the venue reports no usable grid for the market, which the client reads as "unknown" and falls back on; the venue itself remains the authority on whether a quantity is on-grid.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `503` — Service Unavailable

## Changes

- **2026-09-01** `f97888a49e30` — 1 info
  - added the optional property `markets_info` to the response with the `200` status
- **2026-08-26** `8f47c01dbb42` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2/changes/rfqs/markets/get.md)

---

[API](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2.md) · [All operations](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tradeparadex/paradex-rest-api-2/revisions/a73698fdee53/schema)
