Open Exchange Rates Usage API

Account plan and usage statistics.

OpenAPI Specification

openexchangerates-usage-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Open Exchange Rates Convert Usage API
  description: 'The Open Exchange Rates API provides live and historical foreign exchange (forex) rates for 200+ world currencies as plain-text JSON over HTTPS. Endpoints cover the latest rates, end-of-day historical rates back to January 1st, 1999, bulk time-series, currency conversion, OHLC candles, and account usage. Every data request requires an App ID, passed as the app_id query parameter or an "Authorization: Token YOUR_APP_ID" header. Feature access is tiered by plan - changing the base currency requires a paid plan, time-series requires Enterprise or Unlimited, convert requires Unlimited, and OHLC requires the VIP Platinum tier. Requests to currencies.json and usage.json do not count against your monthly quota.'
  version: '1.0'
  contact:
    name: Open Exchange Rates
    url: https://openexchangerates.org
  termsOfService: https://openexchangerates.org/terms
servers:
- url: https://openexchangerates.org/api
  description: Production
security:
- appIdQuery: []
- appIdHeader: []
tags:
- name: Usage
  description: Account plan and usage statistics.
paths:
  /usage.json:
    get:
      operationId: getUsage
      tags:
      - Usage
      summary: Get account plan and usage statistics
      description: Returns basic plan information and usage statistics for the given App ID - account status, plan name, quota, update frequency, enabled features, requests made this month, requests remaining, days elapsed and remaining, and daily average. Requests to this endpoint do not count against your usage volume.
      parameters:
      - $ref: '#/components/parameters/PrettyPrint'
      responses:
        '200':
          description: Plan and usage details for the App ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Usage'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    Usage:
      type: object
      properties:
        status:
          type: integer
          example: 200
        data:
          type: object
          properties:
            app_id:
              type: string
              description: The App ID the statistics relate to.
            status:
              type: string
              description: Account status, such as active or access_restricted.
            plan:
              type: object
              properties:
                name:
                  type: string
                  description: The current subscription tier.
                quota:
                  type: string
                  description: Monthly request allowance in display format.
                update_frequency:
                  type: string
                  description: How often rates refresh on this plan.
                features:
                  type: object
                  description: Feature flags enabled on this plan.
                  properties:
                    base:
                      type: boolean
                    symbols:
                      type: boolean
                    experimental:
                      type: boolean
                    time-series:
                      type: boolean
                    convert:
                      type: boolean
            usage:
              type: object
              properties:
                requests:
                  type: integer
                  description: Requests made in the current month.
                requests_quota:
                  type: integer
                  description: The monthly request limit.
                requests_remaining:
                  type: integer
                  description: Requests remaining this month.
                days_elapsed:
                  type: integer
                  description: Days since the current billing month began.
                days_remaining:
                  type: integer
                  description: Days until the next billing cycle.
                daily_average:
                  type: integer
                  description: Average daily request volume this month.
    Error:
      type: object
      properties:
        error:
          type: boolean
        status:
          type: integer
          description: The HTTP status code.
        message:
          type: string
          description: A machine-readable error code such as invalid_app_id or access_restricted.
        description:
          type: string
          description: A human-readable explanation of the error.
  responses:
    Unauthorized:
      description: The App ID was missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: true
            status: 401
            message: invalid_app_id
            description: Invalid App ID provided - please sign up at https://openexchangerates.org/signup
  parameters:
    PrettyPrint:
      name: prettyprint
      in: query
      required: false
      description: Set to true for human-readable response formatting.
      schema:
        type: boolean
        default: false
  securitySchemes:
    appIdQuery:
      type: apiKey
      in: query
      name: app_id
      description: Your unique App ID, passed as a query parameter.
    appIdHeader:
      type: apiKey
      in: header
      name: Authorization
      description: 'Your unique App ID, passed as a header: Authorization: Token YOUR_APP_ID.'