openapi: 3.2.0 info: title: Tiingo Forex API version: 1.0.0 description: 'Tiingo''s REST API for financial market data: end-of-day equity prices, IEX intraday, BOATS overnight equity data, consolidated equity realtime snapshots, crypto, crypto yield, forex, fundamentals, mutual fund and ETF fees, corporate actions, curated news, and asset search. Most endpoints return JSON by default and support CSV via the format parameter. Generated by API Evangelist from Tiingo''s published documentation (https://www.tiingo.com/documentation/) - Tiingo does not publish an OpenAPI itself.' termsOfService: https://www.tiingo.com/about/terms contact: name: Tiingo Support url: https://www.tiingo.com/support email: support@tiingo.com x-apievangelist: generated: '2026-07-22' method: generated source: https://apimedia.tiingo.com/dist/src_app_api_documentation_documentation_module_ts-es2015.f5eea3d64917e26bb724.js servers: - url: https://api.tiingo.com security: - apiTokenHeader: [] - apiTokenQuery: [] tags: - name: Forex paths: /tiingo/fx/top: get: operationId: getForexTopOfBook summary: Get forex top-of-book quotes tags: - Forex externalDocs: url: https://www.tiingo.com/documentation/forex parameters: - name: tickers in: query required: false description: Ticker related to the asset. schema: type: string responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ForexTopOfBook' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /tiingo/fx/{ticker}/prices: get: operationId: getForexPrices summary: Get historical forex rates for a currency pair tags: - Forex externalDocs: url: https://www.tiingo.com/documentation/forex parameters: - name: ticker in: path required: true description: Ticker related to the asset. schema: type: string - name: startDate in: query required: false description: If startDate or endDate is not null, historical data will be queried. This filter limits metrics to on or after the startDate (>=). Parameter must be in YYYY-MM-DD format. schema: type: string format: date - name: endDate in: query required: false description: If startDate or endDate is not null, historical data will be queried. This filter limits metrics to on or before the endDate (<=). Parameter must be in YYYY-MM-DD format. schema: type: string format: date - name: resampleFreq in: query required: false description: 'his allows you to set the frequency in which you want data resampled. For example "1hour" would return the data where OHLC is calculated on an hourly schedule. The minimum value is "1min". Both units in minutes (min) and hours (hour) are accepted. Format is # + (min/hour); e.g. "15min" or "4hour". If no value is provided, defaults to 5min.' schema: type: string responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ForexPriceBar' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' components: schemas: ForexPriceBar: type: object properties: date: type: string format: date-time description: The date this data pertains to. ticker: type: string description: Ticker related to the asset. open: type: number description: The opening price for the asset on the given date. high: type: number description: The high price for the asset on the given date. low: type: number description: The low price for the asset on the given date. close: type: number description: The closing price for the asset on the given date. ForexTopOfBook: type: object properties: ticker: type: string description: Ticker related to the asset. quoteTimestamp: type: string format: date-time description: The timestamp the data was last refresh on. midPrice: type: number description: 'The mid price of the current timestamp when both "bidPrice" and "askPrice" are not-null. In mathematical terms: midPrice = (bidPrice + askPrice)/2.0' bidSize: type: number description: The amount of units at the bid price. bidPrice: type: number description: The current bid price. askSize: type: number description: The amount of units at the ask price. askPrice: type: number description: The current ask price. responses: Unauthorized: description: Missing or invalid API token. TooManyRequests: description: Usage limit exceeded. Tiingo limits by hourly requests (reset every hour), daily requests (reset at midnight EST), and monthly bandwidth (reset the first of every month at midnight EST); there is no per-minute or per-second rate limit. securitySchemes: apiTokenHeader: type: apiKey in: header name: Authorization description: 'Pass your API token in the Authorization header as: Authorization: Token .' apiTokenQuery: type: apiKey in: query name: token description: Pass your API token directly in the request URL via the token query parameter. externalDocs: description: Tiingo API documentation url: https://www.tiingo.com/documentation/general/overview