---
title: "Get RFQ venue state"
method: GET
path: "/rfqs/platform-state"
tags: ["Rfqs"]
---

# Get RFQ venue state

`GET /rfqs/platform-state`

## Request

- Base URL: `https://api.prod.paradex.trade/v1`
- URL: `https://api.prod.paradex.trade/v1/rfqs/platform-state`
- Auth: API key in header `Authorization`

Returns whether the RFQ venue currently accepts RFQs from Paradex.

`state` is the one to act on. It is the more restrictive of two venue states,
both also returned:

- `platform_state`, the venue's global state, with the scheduled next state
  in `next_platform_state` taking effect at `next_platform_state_at` (unix
  milliseconds, `0` when the state is unknown);
- `venue_state`, the venue's maintenance state for Paradex markets.

| `state` | Create | Execute | Cancel |
| ------- | ------ | ------- | ------ |
| `AVAILABLE` | yes | yes | yes |
| `AVAILABLE_CANCEL_ONLY` | no | no | yes |
| `UNAVAILABLE` | no | no | only when `platform_state` is not `UNAVAILABLE` |
| `UNKNOWN` | sent to the venue | sent to the venue | sent to the venue |

A create or an execute refused on the state is answered `400` with error
`RFQ_VENUE_UNAVAILABLE`. A cancel is always sent to the venue; while
`platform_state` is `UNAVAILABLE` the venue refuses it, and the WebSocket
`RESULT` event reports the refusal. `UNKNOWN` means the state could not be
read recently; requests are then sent to the venue, which answers them through
the WebSocket `RESULT` event.

The state is served from a snapshot refreshed every few seconds, so a change
on the venue appears here after up to one refresh.

## Response `200`

OK

- ResponsesRfqPlatformStateResult
  - `next_platform_state` 'AVAILABLE' | 'AVAILABLE_CANCEL_ONLY' | 'UNAVAILABLE' | 'UNKNOWN'
  - `next_platform_state_at` integer: When next_platform_state takes effect, unix milliseconds; 0 when the state is unknown
  - `platform_state` 'AVAILABLE' | 'AVAILABLE_CANCEL_ONLY' | 'UNAVAILABLE' | 'UNKNOWN'
  - `state` 'AVAILABLE' | 'AVAILABLE_CANCEL_ONLY' | 'UNAVAILABLE' | 'UNKNOWN'
  - `venue_state` 'AVAILABLE' | 'AVAILABLE_CANCEL_ONLY' | 'UNAVAILABLE' | 'UNKNOWN'

## Other responses

- `400`: Bad Request
- `401`: Unauthorized

## Changes

- **2026-10-22** `f33feb7333ea`: 6 warning
  - added the new `ADDRESS_BOOK_NOT_PARADEX_ACCOUNT` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `400`
  - added the new `ADDRESS_BOOK_NOT_PARADEX_ACCOUNT` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `401`
  - added the new `ADDRESS_BOOK_REPEATED_IN_IMPORT` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `400`
  - added the new `ADDRESS_BOOK_REPEATED_IN_IMPORT` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `401`
  - …2 more
- **2026-10-20** `72c125c93c2b`: 4 warning
  - added the new `SESSION_EXPIRED` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `400`
  - added the new `SESSION_EXPIRED` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `401`
  - added the new `SESSION_REVOKED` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `400`
  - added the new `SESSION_REVOKED` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `401`
- …earlier changes not shown

[Operation history](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2/changes/rfqs/platform-state/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.dev/tradeparadex/apis/paradex-rest-api-2/revisions/f33feb7333ea?raw)
