Revolut Configuration API

Get Revolut X configuration for traded assets and pairs.

Operations 2

GET /configuration/currencies Get all currencies #
GET /configuration/pairs Get all currency pairs #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/revolut-configuration-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

revolut-configuration-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Revolut X Crypto Exchange REST Configuration API
  description: As a Revolut X customer, you can use the Revolut X REST API to streamline your trading experience.
  contact: {}
servers:
- url: https://revx.revolut.com/api/1.0
  description: Production server (uses live data)
- url: https://revx.revolut.codes/api/1.0
  description: Dev server (uses test data)
security:
- ApiKey: []
tags:
- name: Configuration
  description: Get Revolut X configuration for traded assets and pairs.
paths:
  /configuration/currencies:
    get:
      tags:
      - Configuration
      summary: Get all currencies
      operationId: getAllCurrencies
      description: Get configuration for all currencies used on the exchange.
      parameters:
      - $ref: '#/components/parameters/XRevxTimestamp'
      - $ref: '#/components/parameters/XRevxSignature'
      responses:
        '200':
          description: 'OK


            Supported currencies with their details.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrenciesResponse'
              examples:
                CurrenciesResponse:
                  summary: Currencies response
                  $ref: '#/components/examples/CurrenciesResponseExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        5XX:
          $ref: '#/components/responses/ServerError'
  /configuration/pairs:
    get:
      tags:
      - Configuration
      summary: Get all currency pairs
      operationId: getAllCurrencyPairs
      description: Get configuration for all traded currency pairs.
      parameters:
      - $ref: '#/components/parameters/XRevxTimestamp'
      - $ref: '#/components/parameters/XRevxSignature'
      responses:
        '200':
          description: 'OK


            Supported currency pairs with their details.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrencyPairsResponse'
              examples:
                CurrencyPairsResponse:
                  summary: Currency pairs response
                  $ref: '#/components/examples/CurrencyPairsResponseExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        5XX:
          $ref: '#/components/responses/ServerError'
components:
  examples:
    CurrenciesResponseExample:
      value:
        BTC:
          symbol: BTC
          name: Bitcoin
          scale: 8
          asset_type: crypto
          status: active
        ETH:
          symbol: ETH
          name: Ethereum
          scale: 8
          asset_type: crypto
          status: active
    CurrencyPairsResponseExample:
      value:
        BTC/USD:
          base: BTC
          quote: USD
          base_step: '0.0000001'
          quote_step: '0.01'
          min_order_size: '0.0000001'
          max_order_size: '1000'
          min_order_size_quote: '0.01'
          status: active
        ETH/EUR:
          base: ETH
          quote: EUR
          base_step: '0.0000001'
          quote_step: '0.01'
          min_order_size: '0.00001'
          max_order_size: '9000'
          min_order_size_quote: '0.01'
          status: active
  schemas:
    ErrorResponse:
      type: object
      description: Standard error response structure
      required:
      - error_id
      - message
      - timestamp
      properties:
        error_id:
          type: string
          format: uuid
          description: Unique identifier for this specific error occurrence.
        message:
          type: string
          description: Human-readable description of the error.
        timestamp:
          type: integer
          format: int64
          description: The time the error occurred in Unix epoch milliseconds.
    CurrencyPairsResponse:
      type: object
      description: "Supported currency pairs, represented as an object containing other objects.\n\nThis outer object contains multiple key-value pairs, where each key is a currency pair code (e.g. `BTC/USD`, `ETH/EUR`), and each corresponding value is an inner object containing details about that currency pair.\n\n<b><pre> &lt; * &gt; </pre></b>\n<details id='currency-pair-schema'>\n  <summary>\n    The inner object representing a single currency pair. It has the following schema: \n  </summary>\n\n  | Parameter | Description |\n  |-----------|-------------|\n  | **`base`**    | The base currency. |\n  | **`quote`**    | The quote currency. |\n  | **`base_step`**    | The minimal step for changing the quantity in the base currency. |\n  | **`quote_step`**    | The minimal step for changing the amount in the quote currency. |\n  | **`min_order_size`**    | The minimal order quantity (in the base currency) accepted by the exchange. |\n  | **`max_order_size`**    | The maximal order quantity (in the base currency) accepted by the exchange. |\n  | **`min_order_size_quote`**    | The minimal order quantity (in the quote currency) accepted by the exchange. |\n  | **`status`**    | The status of the currency pair. <br/>Indicates whether it is available for use. <br/>Possible values are: `active`, `inactive`. |\n\n</details>"
      additionalProperties:
        $ref: '#/components/schemas/CurrencyPair'
    Currency:
      type: object
      description: A supported currency.
      properties:
        symbol:
          type: string
          description: The symbol of the currency.
        name:
          type: string
          description: The full name of the currency.
        scale:
          type: integer
          description: "The scale of the currency, that is, the number of decimal places used to express the currency's smallest unit. \n\nFor example, a scale of `8` means that the currency amount can be represented with precision up to eight decimal places, e.g. BTC: `0.00000001`."
        asset_type:
          type: string
          description: The type of the currency.
          enum:
          - fiat
          - crypto
        status:
          type: string
          description: "The status of the currency. \nIndicates whether it is available for use."
          enum:
          - active
          - inactive
      example:
        symbol: BTC
        name: Bitcoin
        scale: 8
        asset_type: crypto
        status: active
      required:
      - symbol
      - name
      - scale
      - asset_type
      - status
    CurrenciesResponse:
      type: object
      description: "Supported currencies, represented as an object containing other objects.\n\nThis outer object contains multiple key-value pairs, where each key is a currency code (e.g. `BTC`, `ETH`), and each corresponding value is an inner object containing details about that currency.\n\n<b><pre> &lt; * &gt; </pre></b>\n<details id='currency-schema'>\n  <summary>\n    The inner object representing a single currency. It has the following schema: \n  </summary>\n\n  | Parameter | Description |\n  |-----------|-------------|\n  | **`symbol`**    | The symbol of the currency. |\n  | **`name`**    | The full name of the currency. |\n  | **`scale`**    | The scale of the currency, that is, the number of decimal places used to express the currency's smallest unit. <br/> For example, a scale of `8` means that the currency amount can be represented with precision up to eight decimal places, e.g. BTC: `0.00000001`. |\n  | **`asset_type`**    | The type of the currency. Possible values are: `fiat`, `crypto`. |\n  | **`status`**    | Indicates whether it is available for use. |\n\n</details>"
      additionalProperties:
        $ref: '#/components/schemas/Currency'
    CurrencyPair:
      type: object
      description: A supported currency pair.
      properties:
        base:
          type: string
          description: The base currency.
        quote:
          type: string
          description: The quote currency.
        base_step:
          type: string
          format: decimal
          description: The minimal step for changing the quantity in the base currency.
        quote_step:
          type: string
          format: decimal
          description: The minimal step for changing the amount in the quote currency.
        min_order_size:
          type: string
          format: decimal
          description: The minimal order quantity (in the base currency) accepted by the exchange.
        max_order_size:
          type: string
          format: decimal
          description: The maximal order quantity (in the base currency) accepted by the exchange.
        min_order_size_quote:
          type: string
          format: decimal
          description: The minimal order quantity (in the quote currency) accepted by the exchange.
        status:
          type: string
          description: "The status of the currency pair. \nIndicates whether it is available for use."
          enum:
          - active
          - inactive
      required:
      - base
      - quote
      - base_step
      - quote_step
      - min_order_size
      - max_order_size
      - min_order_size_quote
      - status
      example:
        base: BTC
        quote: USD
        base_step: '0.0000001'
        quote_step: '0.01'
        min_order_size: '0.0000001'
        max_order_size: '1000'
        min_order_size_quote: '0.01'
        status: active
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            message: API key can only be used for authentication from whitelisted IP
            error_id: 7d85b5e7-d0f0-4696-b7b5-a300d0d03a5e
            timestamp: 3318215482991
    RateLimitExceeded:
      description: Rate Limit Exceeded
      headers:
        Retry-After:
          description: The number of milliseconds to wait before making a new request.
          schema:
            type: integer
            example: 5000
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            message: Rate Limit Exceeded
            error_id: 7d85b5e7-d0f0-4696-b7b5-a300d0d03a5e
            timestamp: 3318215482991
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            message: Forbidden
            error_id: 7d85b5e7-d0f0-4696-b7b5-a300d0d03a5e
            timestamp: 3318215482991
    ServerError:
      description: Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            message: Something went wrong!
            error_id: 7d85b5e7-d0f0-4696-b7b5-a300d0d03a5e
            timestamp: 3318215482991
    Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            message: Request timestamp is in the future
            error_id: 7d85b5e7-d0f0-4696-b7b5-a300d0d03a5e
            timestamp: 3318215482991
  parameters:
    XRevxTimestamp:
      in: header
      name: X-Revx-Timestamp
      required: true
      description: "Current timestamp in Unix epoch milliseconds. \nUsed to prevent replay attacks and construct the signature.\nProvided with other authentication headers."
      schema:
        type: integer
        example: 1746007718237
    XRevxSignature:
      in: header
      name: X-Revx-Signature
      required: true
      description: "The Ed25519 signature of the request. \nProvided with other authentication headers.\n\n:::tip\nSee **Authentication headers: Signing a request** for details on how to generate this.\n:::"
      schema:
        type: string
        example: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-Revx-API-Key
      description: "The [API key](https://developer.revolut.com/docs/api/revolut-x-crypto-exchange#api-key) obtained from the [Revolut X web app](https://exchange.revolut.com/).\nIt takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.\n\nA sample API key might look like this: \n```sh\nM1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy\n```\n\nEach API key directly maps to the user account (either Business or Retail)."