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

# Get an exchange rate

> The rate your organization would get right now for converting `origin` into `destination`. It already includes your organization's spread — this is the effective rate applied when a cross-currency payout or conversion executes, not the mid-market rate. Rates refresh every minute; for a rate held for a fixed window, create a conversion quote instead. Supported currencies: USD, NGN, GHS, UGX, RWF, ZMW, TZS, KES, ZAR, INR, USDC, USDT, PYUSD, RLUSD, UGXC, BTC, ETH, SOL, XLM.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/rates/{origin}/{destination}
openapi: 3.1.0
info:
  title: Chipper Platform API
  version: '2026-02-20'
  description: >-
    Payouts, collections, and FX across African rails — bank, mobile money, and
    stablecoins — through one API.
servers:
  - url: https://sandbox-api.platform.chipper.ai
    description: Sandbox (sk_test_ keys — simulated rails, no real money)
  - url: https://api.platform.chipper.ai
    description: Production (sk_live_ keys)
security:
  - bearerAuth: []
paths:
  /v1/rates/{origin}/{destination}:
    get:
      tags:
        - Rates
      summary: Get an exchange rate
      description: >-
        The rate your organization would get right now for converting `origin`
        into `destination`. It already includes your organization's spread —
        this is the effective rate applied when a cross-currency payout or
        conversion executes, not the mid-market rate. Rates refresh every
        minute; for a rate held for a fixed window, create a conversion quote
        instead. Supported currencies: USD, NGN, GHS, UGX, RWF, ZMW, TZS, KES,
        ZAR, INR, USDC, USDT, PYUSD, RLUSD, UGXC, BTC, ETH, SOL, XLM.
      parameters:
        - schema:
            type: string
            description: Currency you are converting from.
            example: USD
          required: true
          name: origin
          in: path
        - schema:
            type: string
            description: Currency you are converting to.
            example: GHS
          required: true
          name: destination
          in: path
      responses:
        '200':
          description: The effective rate. Same-currency pairs return `1`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  rate:
                    $ref: '#/components/schemas/Rate'
                required:
                  - rate
        '400':
          description: Unsupported currency.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: bad_request
                message: 'Unsupported currency: XYZ. Supported: BTC, ETH, GHS, …'
                requestId: req_q7vei435zifs51ia0lqr
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: unauthorized
                message: Invalid API key
                requestId: req_q7vei435zifs51ia0lqr
        '503':
          description: No live rate and nothing cached — retry shortly.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: rate_unavailable
                message: Exchange rate is temporarily unavailable
                requestId: req_q7vei435zifs51ia0lqr
      security:
        - bearerAuth: []
components:
  schemas:
    Rate:
      type: object
      properties:
        from:
          type: string
          description: Origin currency.
          example: USD
        to:
          type: string
          description: Destination currency.
          example: GHS
        rate:
          type: string
          description: >-
            Destination units per 1 origin unit, as a decimal string: `to.amount
            = from.amount × rate`.
          example: '15.62'
      required:
        - from
        - to
        - rate
    Error:
      type: object
      properties:
        error:
          type: string
          description: Stable machine-readable code.
        message:
          type: string
          description: Human-readable explanation.
        requestId:
          type: string
          description: Echoed in the x-request-id response header — quote it to support.
      required:
        - error
        - message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key: `sk_test_…` (sandbox) or `sk_live_…` (production).'

````