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

# List rates (production)

> **Switched off.** Production trading is implemented but not available: orders are refused with `403 production_trading_disabled`. Once it opens, Bullionwale enables production access per account (see Production access requirements).

Your live Buy and Sell rates for every active symbol, sorted by symbol code. The same prices on test and production.



## OpenAPI

````yaml /openapi.json get /api/trading/v1/rates
openapi: 3.1.0
info:
  description: >-
    Place and read bullion orders with an API key. The test environment
    (`/api/trading/test/v1`) simulates orders; the production environment
    (`/api/trading/v1`) books real orders. **Test: available on request.
    Production: switched off.** See the availability notice in the
    documentation.
  title: Bullionwale API
  version: 1.0.0
servers:
  - description: Once the API is available
    url: https://api.bullionwale.com
security: []
tags:
  - description: >-
      The account and API key behind a request, the key's scopes, and whether
      production trading is available to the account.
    name: Account
  - description: >-
      Your live Buy and Sell rates per symbol, with freshness and trading flags.
      The same prices on test and production.
    name: Market data
  - description: >-
      The symbols you can trade: metal, price and quantity units, the sizes you
      may order and which sides are offered.
    name: Symbols
  - description: >-
      Whether trading is halted, which symbols are frozen, the market clock and
      your rates at the latest official close.
    name: Market status
  - description: >-
      Your weight allocation per metal and how much of it your open position
      uses.
    name: Trading limits
  - description: >-
      Realized profit and loss from your closed orders, in total, per symbol and
      per day.
    name: Profit & loss
  - description: >-
      Place market orders, list them and read one. Test orders are simulated;
      production orders are real.
    name: Orders
  - description: >-
      Place a buy or sell limit that waits for a price, list your limits, read,
      edit and cancel one. Test limits are simulated and never execute;
      production limits are real.
    name: Limit orders
  - description: Your net position per metal against your weight allocation.
    name: Positions
  - description: Your physical-delivery requests and their status.
    name: Deliveries
  - description: >-
      Your API keys in the calling environment: ids, names, scopes, state. Never
      a secret.
    name: API keys
  - description: >-
      Register HTTPS endpoints that receive signed order and limit-order events,
      test them and rotate their signing secret. Not yet available.
    name: Webhooks
paths:
  /api/trading/v1/rates:
    get:
      tags:
        - Market data
      summary: List rates (production)
      description: >-
        **Switched off.** Production trading is implemented but not available:
        orders are refused with `403 production_trading_disabled`. Once it
        opens, Bullionwale enables production access per account (see Production
        access requirements).


        Your live Buy and Sell rates for every active symbol, sorted by symbol
        code. The same prices on test and production.
      operationId: rates_live_api_trading_v1_rates_get
      parameters:
        - in: query
          name: limit
          required: false
          schema:
            default: 50
            maximum: 200
            minimum: 1
            title: Limit
            type: integer
        - in: query
          name: offset
          required: false
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateList'
          description: Successful Response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: >-
            `missing_credential`: No X-API-Key header.

            `malformed_credential`: The key is not shaped like an API key.

            `wrong_tenant`: The key belongs to a different broker.

            `wrong_environment`: A test key on the production API, or the
            reverse.

            `invalid_credential`: Unknown key or wrong secret.

            `credential_revoked`: The key was revoked.

            `credential_rotated`: The key was replaced and its overlap period
            ended.

            `credential_expired`: The key expired.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: |-
            `api_access_disabled`: API access is switched off for this account.
            `account_inactive`: The account is not active.
            `insufficient_scope`: The key lacks the scope this route needs.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: >-
            `invalid_request`: The request body or parameters are invalid; see
            `detail.errors`.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: >-
            `auth_throttled`: Too many failed authentications from this address;
            see Retry-After.

            `rate_limited`: This key (or, for orders, this account) exhausted
            its budget; see Retry-After.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: '`pricing_unavailable`: The group price could not be computed.'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    RateList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/Rate'
          title: Items
          type: array
        total:
          title: Total
          type: integer
      required:
        - items
        - total
      title: RateList
      type: object
    ApiError:
      description: Every refusal on the trading API.
      properties:
        detail:
          $ref: '#/components/schemas/ApiErrorDetail'
      required:
        - detail
      title: ApiError
      type: object
    Rate:
      properties:
        buy:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Your Buy rate in rupees per `unit`, 2 decimals, as a string; null
            when the symbol has no buy price.
          title: Buy
        display_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Display Name
        frozen:
          description: >-
            The price has not moved for the freeze window, so trading on it is
            paused until it moves.
          title: Frozen
          type: boolean
        is_trading:
          description: >-
            Whether the symbol accepts orders right now: its trading switch is
            on, trading is not halted and its price is not frozen.
          title: Is Trading
          type: boolean
        metal:
          description: '`gold` or `silver`.'
          title: Metal
          type: string
        quantity_unit:
          description: 'The measure an order''s `quantity` is in: `g` or `kg`.'
          title: Quantity Unit
          type: string
        sell:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Your Sell rate in rupees per `unit`, 2 decimals, as a string; null
            when the symbol has no sell price.
          title: Sell
        stale:
          description: >-
            The rate cannot be traded on: the live feed has not confirmed it
            recently (or it is unpriced). An order would be refused with
            `stale_rate` or `unpriced`.
          title: Stale
          type: boolean
        symbol_code:
          title: Symbol Code
          type: string
        unit:
          description: What the price is quoted per, e.g. `10 gram` or `kg`.
          title: Unit
          type: string
        updated_at:
          anyOf:
            - type: string
            - type: 'null'
          description: When this rate was last published (ISO 8601).
          title: Updated At
      required:
        - symbol_code
        - metal
        - unit
        - quantity_unit
        - buy
        - sell
        - updated_at
        - is_trading
        - frozen
        - stale
      title: Rate
      type: object
    ApiErrorDetail:
      additionalProperties: true
      properties:
        code:
          description: Stable machine code; branch on this, not on `message`.
          title: Code
          type: string
        message:
          description: Human-readable text; may change.
          title: Message
          type: string
      required:
        - code
        - message
      title: ApiErrorDetail
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: X-API-Key
      type: apiKey

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.