openapi: 3.2.0 info: title: Finage Market Data Forex API description: Finage is a real-time and historical market data provider covering US and global stocks, forex, cryptocurrencies, indices, ETFs, bonds, and company fundamentals. This OpenAPI was generated by API Evangelist from Finage's own machine-readable docs database (https://api.finage.co.uk/op/v1/endpoints/list — the same JSON the docs at https://finage.co.uk/docs/api render); every path, parameter, and example comes from that source. All endpoints are read-only GET requests authenticated with an apikey query parameter. Responses must be requested with gzip Accept-Encoding (the API returns 406 "GZip compression required" otherwise). version: 1.0.0 contact: name: Finage Support email: support@finage.co.uk url: https://finage.co.uk x-apievangelist: generated: '2026-07-22' method: generated source: https://api.finage.co.uk/op/v1/endpoints/list servers: - url: https://api.finage.co.uk security: - apiKey: [] tags: - name: Forex paths: /last/forex/{symbol}: get: operationId: forexLastQuote summary: Forex Last Quote description: You can get the last quote for a symbol with this endpoint. tags: - Forex parameters: - name: symbol in: path required: true description: Forex symbol that you want to get prices schema: type: string responses: '200': description: Forex Last Quote response. content: application/json: schema: type: object properties: symbol: type: string description: Symbol of the currency ask: type: number description: Ask price bid: type: number description: Bid price timestamp: type: integer format: int64 description: Last update (Defult is ms) example: symbol: GBPUSD ask: 1.36305 bid: 1.36292 timestamp: 1609875979000 '401': $ref: '#/components/responses/Unauthorized' /last/trade/forex/{symbol}: get: operationId: forexLastTrade summary: Forex Last Trade description: You can get the last trade price for a symbol with this endpoint. tags: - Forex parameters: - name: symbol in: path required: true description: Forex symbol that you want to get the last trade price schema: type: string responses: '200': description: Forex Last Trade response. content: application/json: schema: type: object properties: symbol: type: string description: Symbol of the currency price: type: number description: Last Price timestamp: type: integer format: int64 description: Last update (Defult is ms) example: symbol: GBPUSD price: 1.37 timestamp: 1618001940 '401': $ref: '#/components/responses/Unauthorized' /agg/forex/{symbol}/{multiply}/{time}/{from}/{to}: get: operationId: forexAggregates summary: Forex Aggregates description: With the Forex Aggregates API, you can get the tick bars of the forex symbol. tags: - Forex parameters: - name: symbol in: path required: true description: Symbol Name schema: type: string - name: multiply in: path required: true description: Time Multiplier schema: type: string - name: time in: path required: true description: Size of the time. [minute, hour, day, week, month, quarter, year] schema: type: string - name: from in: path required: true description: Start date schema: type: string - name: to in: path required: true description: End date schema: type: string - name: limit in: query required: false description: Limit of the results. Default is 100, maximum allowed limit is 50000. Please set a limit if you are using the API in the production. schema: type: string - name: sort in: query required: false description: You can sort the results by timestamp. asc will return ascending results oldest to newest, desc will return descending results newest to oldest. Default is asc. schema: type: string - name: dbt_filter in: query required: false description: Daily-based time filter. You can allow the time filters to filter daily based. Otherwise, the filter will only trim the start and end of the output. Default is false. schema: type: string - name: st in: query required: false description: Start time in UTC. (Eg. 17:30) schema: type: string - name: et in: query required: false description: End time in UTC. (Eg. 17:45) schema: type: string - name: date_format in: query required: false description: You can change the format of the date in the results. ts is timestamp, dt is datetime. [Default is dt] schema: type: string responses: '200': description: Forex Aggregates response. content: application/json: schema: type: object properties: symbol: type: string description: Symbol Name totalResults: type: integer description: Result Count o: type: number description: Open Price h: type: number description: Highest Price c: type: number description: Close Price l: type: number description: Lowest Price v: type: integer description: Volume t: type: integer format: int64 description: Timestamp example: symbol: GBPUSD totalResults: 4 results: - v: 254 o: 1.3642 c: 1.3667 h: 1.3677 l: 1.3642 t: 1609477200000 - v: 300 o: 1.367 c: 1.3685 h: 1.369 l: 1.366 t: 1609480800000 - v: 275 o: 1.3685 c: 1.37 h: 1.371 l: 1.368 t: 1609484400000 - v: 320 o: 1.37 c: 1.372 h: 1.373 l: 1.3695 t: 1609488000000 '401': $ref: '#/components/responses/Unauthorized' /agg/forex/prev-close/{symbol}: get: operationId: forexPreviousClose summary: Forex Previous Close description: With the Forex Previous Close API, you can get the previous day's last tick bar of the forex market. tags: - Forex parameters: - name: symbol in: path required: true description: Symbol of the currency schema: type: string responses: '200': description: Forex Previous Close response. content: application/json: schema: type: object properties: symbol: type: string description: Symbol of the currency totalResults: type: integer description: Total result size o: type: number description: Open price h: type: number description: Highest price l: type: number description: Lowest price c: type: number description: Close price v: type: integer description: Volume t: type: integer format: int64 description: Timestamp [ms] example: symbol: GBPUSD totalResults: 1 results: - o: 1.40456 h: 1.41105 l: 1.4034 c: 1.40948 v: 103566 t: 1621036799999 '401': $ref: '#/components/responses/Unauthorized' /convert/forex/{from}/{to}/{amount}: get: operationId: forexCurrencyConverterApi summary: Forex Currency Converter API description: With this endpoint, you can convert the currencies with the real-time prices. tags: - Forex parameters: - name: from in: path required: true description: '"From" symbol of the currency.' schema: type: string - name: to in: path required: true description: '"To" symbol of the currency.' schema: type: string - name: amount in: path required: true description: The amount to convert. schema: type: string responses: '200': description: Forex Currency Converter API response. content: application/json: schema: type: object properties: from: type: string description: '"From" symbol of the currency.' to: type: string description: '"To" symbol of the currency.' amount: type: integer description: The amount to convert. value: type: number description: Converted amount. timestamp: type: integer format: int64 description: Timestamp [ms] example: from: GBP to: USD amount: 3 value: 4.2285 timestamp: 1621027210000 '401': $ref: '#/components/responses/Unauthorized' /snapshot/forex: get: operationId: forexSnapshotApi summary: Forex Snapshot API description: The Finage Forex Signal API is an AI-powered forecasting tool that delivers real-time trading signals based on widely used technical indicators such as RSI, MACD, SMA, and Bollinger Bands. Each response includes a recommended signal (buy, sell, or hold), a confidence score, and the full set of indicators used to generate the result. tags: - Forex parameters: - name: quotes in: query required: true description: Enable or disable last quotes. Default is true. schema: type: string - name: trades in: query required: true description: Enable or disable last trades. Default is false. schema: type: string - name: symbols in: query required: true description: You can get the data from specific symbols by using this query. If you leave it empty, you will get the all available last data. (Separate symbols with commas.) schema: type: string responses: '200': description: Forex Snapshot API response. content: application/json: schema: type: object properties: s: type: string description: Forex Symbol p: type: number description: Last trade price a: type: number description: Last ask price b: type: number description: Last bid price asz: type: integer description: Ask size bsz: type: integer description: Bid size sz: type: integer description: Trade size t: type: integer format: int64 description: Timestamp (microseconds) totalResults: type: integer description: Total incoming symbol number. example: totalResults: 2 lastQuotes: - s: EURUSD a: 1.1284 b: 1.1283 asz: 9 bsz: 7 t: 1746698481786 - s: GBPUSD a: 1.3271 b: 1.327 asz: 15 bsz: 17 t: 1746698481974 lastTrades: - s: EURUSD p: 1.1283 sz: 17 t: 1746698481786 - s: GBPUSD p: 1.3271 sz: 7 t: 1746698481974 '401': $ref: '#/components/responses/Unauthorized' components: responses: Unauthorized: description: Missing or invalid API key, or your plan does not include this market. content: application/json: schema: $ref: '#/components/schemas/Error' example: error: Please use your APIKey to make a request. schemas: Error: type: object description: Finage error envelope — a single error string. properties: error: type: string description: Human-readable error message. securitySchemes: apiKey: type: apiKey name: apikey in: query description: Finage API key, passed as the apikey query parameter on every request. Get one at https://moon.finage.co.uk/register. externalDocs: description: Finage API documentation url: https://finage.co.uk/docs/api