Forex

Read this page to know everything you need to know about using the various Forex HTTP endpoints.

See Async Support for REST endpoints for asynchronous use cases.

Docs below assume you have already read getting started page and know how to create the client. If you do not know how to create the client, first see General guide for clients and create client as below. As always you can have all 5 different clients together.

import polygon

forex_client = polygon.ForexClient('KEY')  # for usual sync client
async_forex_client = polygon.ForexClient('KEY', True)  # for an async client

Note that most endpoints require you to specify the currency pairs as separate symbols (a from_symbol and a to_symbol).

however a few endpoints require you to supply them as one combined symbol. An example would be the get_aggregates_bars method. In those methods, the symbol is expected to have a prefix C: before the currency symbol names. but the library allows you to specify the symbol with or without the prefix. See the relevant method’s docs for more information on what the parameters expect.

Get Historic forex ticks

ForexClient.get_historic_forex_ticks(from_symbol: str, to_symbol: str, date, offset: Optional[Union[str, int]] = None, limit: int = 500, raw_response: bool = False) Union[requests.models.Response, dict]

Get historic trade ticks for a forex currency pair. Official Docs

Parameters
  • from_symbol – The “from” symbol of the forex currency pair.

  • to_symbol – The “to” symbol of the forex currency pair.

  • date – The date/day of the historic ticks to retrieve. Could be datetime, date or string YYYY-MM-DD

  • offset – The timestamp offset, used for pagination. This is the offset at which to start the results. Using the timestamp of the last result as the offset will give you the next page of results. I’m thinking about a good way to implement this type of pagination in the lib which doesn’t have a next_url in the response attributes.

  • limit – Limit the size of the response, max 10000. Default 500

  • raw_response – Whether or not to return the Response Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.

Returns

A JSON decoded Dictionary by default. Make raw_response=True to get underlying response object

Get Last Quote

ForexClient.get_last_quote(from_symbol: str, to_symbol: str, raw_response: bool = False) Union[requests.models.Response, dict]

Get the last trade tick for a forex currency pair. Official Docs

Parameters
  • from_symbol – The “from” symbol of the forex currency pair.

  • to_symbol – The “to” symbol of the forex currency pair.

  • raw_response – Whether or not to return the Response Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.

Returns

A JSON decoded Dictionary by default. Make raw_response=True to get underlying response object

Get Aggregate Bars (Candles)

ForexClient.get_aggregate_bars(symbol: str, from_date, to_date, multiplier: int = 1, timespan='day', adjusted: bool = True, sort='asc', limit: int = 5000, raw_response: bool = False) Union[requests.models.Response, dict]

Get aggregate bars for a forex pair over a given date range in custom time window sizes. For example, if timespan = ‘minute’ and multiplier = ‘5’ then 5-minute bars will be returned. Official Docs

Parameters
  • symbol – The ticker symbol of the forex pair. eg: C:EURUSD. You can supply with or without prefix C:

  • from_date – The start of the aggregate time window. Could be datetime, date or string YYYY-MM-DD

  • to_date – The end of the aggregate time window. Could be datetime, date or string YYYY-MM-DD

  • multiplier – The size of the timespan multiplier

  • timespan – The size of the time window. Defaults to day candles. see polygon.enums.Timespan for choices

  • adjusted – Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to False to get results that are NOT adjusted for splits.

  • sort – Sort the results by timestamp. see polygon.enums.SortOrder for available choices. Defaults to asc which is oldest at the top.

  • limit – Limits the number of base aggregates queried to create the aggregate results. Max 50000 and Default 5000.

  • raw_response – Whether or not to return the Response Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.

Returns

A JSON decoded Dictionary by default. Make raw_response=True to get underlying response object

Get Grouped Daily Bars (Candles)

ForexClient.get_grouped_daily_bars(date, adjusted: bool = True, raw_response: bool = False) Union[requests.models.Response, dict]

Get the daily open, high, low, and close (OHLC) for the entire forex markets. Official Docs

Parameters
  • date – The date for the aggregate window. Could be datetime, date or string YYYY-MM-DD

  • adjusted – Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to False to get results that are NOT adjusted for splits.

  • raw_response – Whether or not to return the Response Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.

Returns

A JSON decoded Dictionary by default. Make raw_response=True to get underlying response object

Get Previous Close

ForexClient.get_previous_close(symbol: str, adjusted: bool = True, raw_response: bool = False) Union[requests.models.Response, dict]

Get the previous day’s open, high, low, and close (OHLC) for the specified forex pair. Official Docs

Parameters
  • symbol – The ticker symbol of the forex pair.

  • adjusted – Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to False to get results that are NOT adjusted for splits.

  • raw_response – Whether or not to return the Response Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.

Returns

A JSON decoded Dictionary by default. Make raw_response=True to get underlying response object

Get Gainers & Losers

ForexClient.get_gainers_and_losers(direction='gainers', raw_response: bool = False) Union[requests.models.Response, dict]

Get the current top 20 gainers or losers of the day in forex markets. Official docs

Parameters
  • direction – The direction of the snapshot results to return. See polygon.enums.SnapshotDirection for available choices. Defaults to Gainers.

  • raw_response – Whether or not to return the Response Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.

Returns

A JSON decoded Dictionary by default. Make raw_response=True to get underlying response object

Real Time currency conversion

ForexClient.real_time_currency_conversion(from_symbol: str, to_symbol: str, amount: float, precision: int = 2, raw_response: bool = False) Union[requests.models.Response, dict]

Get currency conversions using the latest market conversion rates. Note than you can convert in both directions. For example USD to CAD or CAD to USD. Official Docs

Parameters
  • from_symbol – The “from” symbol of the pair.

  • to_symbol – The “to” symbol of the pair.

  • amount – The amount to convert,

  • precision – The decimal precision of the conversion. Defaults to 2 which is 2 decimal places accuracy.

  • raw_response – Whether or not to return the Response Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.

Returns

A JSON decoded Dictionary by default. Make raw_response=True to get underlying response object