Forex Historical Prices | Intrinio

Forex Historical Prices

Provided by FXCM
Info
Pricing
Documentation
Resources
Data Explorer

Flexible Access

This data is available via Web API and CSV Download.

Forex Data on Demand

Forex, also known as foreign exchange, FX or currency trading, is a decentralized global market where all the world's currencies trade. The forex market is the largest, most liquid market in the world with an average daily trading volume exceeding $5 trillion. All the world's combined stock markets don't even come close to this. 

With Forex data from FXCM, you will have access to over 10 years of historical data for 39 currency pairs, including majors and exotics, making it possible to back-test your trading strategies. 

The majors and the commodity pairs are the most liquid and most widely traded currency pairs in the forex market. These pairs and their combinations (EUR/JPY, GBP/JPY, and EUR/GBP) make up the vast majority of all trading in the forex market. Because these pairs have the largest volume of buyers and sellers, they also typically have the tightest spreads.

  • Majors: EUR/USD, USD/JPY, GBP/USD, USD/CHF
  • Commodity Pairs: AUD/USD, USD/CAD, NZD/USD

There are however other currency pairs that allow you to take advantage of macroeconomic events in specific international markets, such as the exotic pair of USD/MXN (US Dollar/Mexican Peso).

Currency pairs included in this data feed are:

AUD/CAD, AUD/CHF, AUD/JPY, AUD/NZD, AUD/USD
CAD/CHF, CAD/JPY, CHF/JPY, EUR/AUD, EUD/CAD
EUR/CHF, EUR/GBP, EUR/JPY, EUR/NOK, EUR/NZD
EUR/SEK, EUR/TRY, EUR/USD, GBP/AUD, GBP/CAD
GBP/CHF, GBP/JPY, GBP/NZD, GBP/USD, NZD/CAD
NZD/CHF, NZD/JPY, NZD/USD, TRY/JPY, USD/CAD
USD/CHF, USD/CNH, USD/JPY, USD/MXN, USD/NOK
USD/SEK, USD/TRY, USD/ZAR, ZAR/JPY

Have Questions?
Features
  • Forex data dating back to 2002
  • 39 currency pairs including majors and exotics
  • Timing intervals of 1min (M1), 5min (M5), 15min (M15), 30min (M30), 1hour (H1), 2hour (H2), 3hour (H3), 4hour (H4), 6hour (H6), 8hour (H8), 1day (D1), 1week (W1), and 1month (M1)
  • Bid and Ask data

Custom Pricing with Intrinio

We offer custom pricing and plans for enterprises and start-ups because we don't think that you should pay an outrageous cost for data you don't use.
With Intrinio, you'll only pay for the data you need an an affordable rate.

Forex Historical Prices

Request a Quote

Request Sent! Thank You.
{{ submittedText }}
*
*
*
*
*
*
License
Non-Professional
define
Professional
define
Startup
define
Enterprise
define
Student/Military, 50% off
define
Usage
Non-Display
define
Display
define
Billing
Monthly
Yearly, Save 15%
Your Price
Questions?
Chat with Us
$
Request a Quote
The options you have selected require a custom quote.
Request Quote
Subscribe
Need to take a test drive?
1000 API calls, 7 days Free Trial
Looking for an enterprise solution?
High limits, custom terms, flexible licensing Contact Us

Frequently Asked Questions

Below you will find the most frequently asked questions about this data feed. We have also curated some resources to help you get started, listed on the right. As always, feel free to chat with us if you have any questions.
What data is included in the feed?

This feed contains historical market activity data, not sale data, so you will only see bids and asks. The bid/ask spreads are very low, so you can average them to get the close price.

For more helpful information, see the below from investopedia:

https://www.investopedia.com/ask/answers/05/forexclosingprice.asp

History is available at the 1min (M1), 5min (M5), 15min (M15), 30min (M30), 1hour (H1), 2hour (H2), 3hour (H3), 4hour (H4), 6hour (H6), 8hour (H8), 1day (D1), 1week (W1), and 1month (M1) levels.

How much history is available?

History is available back to the beginning of 2000 for all currency pairs.

What currency pairs are supported?

AUD/CAD, AUD/CHF, AUD/JPY, AUD/NZD, AUD/USD
CAD/CHF, CAD/JPY, CHF/JPY, EUR/AUD, EUD/CAD
EUR/CHF, EUR/GBP, EUR/JPY, EUR/NOK, EUR/NZD
EUR/SEK, EUR/TRY, EUR/USD, GBP/AUD, GBP/CAD
GBP/CHF, GBP/JPY, GBP/NZD, GBP/USD, NZD/CAD
NZD/CHF, NZD/JPY, NZD/USD, TRY/JPY, USD/CAD
USD/CHF, USD/CNH, USD/JPY, USD/MXN, USD/NOK
USD/SEK, USD/TRY, USD/ZAR, ZAR/JPY

- or -
Data Categories

Intrinio offers a variety of ways to access this data feed. Choose your preferred access method below:

API
CSV

API Documentation

There are two versions of our API. We recommend "v2". To learn which one may be right for you, click here.
API v1
API v2

{{ docSectionTitle }} Documentation

Welcome to the Intrinio Financial Data Platform! Through our Financial Data Marketplace, we offer a wide selection of financial data feeds sourced by our own proprietary processes as well as from many data vendors. The Intrinio API uses HTTPS verbs and a RESTful endpoint structure, which makes it easy to request data from Intrinio. Basic Authentication is administered over HTTPS. Responses are delivered in JSON format.

Getting Started

First, you'll need an Intrinio account for your API access credentials.

Sign Up for API Access

If you have an Intrinio account you can view your API access keys here.

For a quick-start guide to our API, please see the tutorial.

If you need additional help using the API, chat with us.

Authentication

Private

For private/trusted environments, use Basic Authentication over HTTPS.

You can find your API Username and API Password on your Account page. You must include these credentials with every request in order to receive access to the API.

To include the credentials in your HTTPS request, specify an Authorization header, with the value Basic (key) , replacing (key) with the Base-64 encoded string API_USERNAME:API_PASSWORD .

If your credentials are not authorized, a status code of 401 will be returned.

Public

For public/untrusted environments (such as client-side JavaScript), use our public key authentication over HTTPS.

You can create a Public Access Key on your Account page. Make sure to specify all domains from which this key may be used. Any domain not listed will be rejected by the API. For development purposes, localhost is listed as a domain by default. Make sure to delete this domain before going to production.

To include a public key in your HTTPS request, specify it as the value of an X-Authorization-Public-Key header.

If your public key is not authorized, a status code of 401 will be returned.

Response Codes

Intrinio uses normal HTTP response codes to indicate the success or failure of an API request. A response code of 200 indicates success and codes in the 4xx range indicate an error that failed given the information provided, and codes in the 5xx range indicate an error with Intrinio’s servers (these are rare).

The Intrinio API uses the following error codes:

Code Meaning
200 OK – Everything worked as expected
401 Unauthorized – Your User/Password API Keys are incorrect
403 Forbidden – You are not subscribed to the data feed requested
404 Not Found – The endpoint requested does not exist
429 Too Many Requests – You have hit a limit. See limits
500 Internal Server Error – We had a problem with our server. Try again later.
503 Service Unavailable – You have hit your throttle limit or Intrinio may be experiencing high system load.

Paging

Often there is too much information in our system to serve in a single request of reasonable size. Therefore we limit results to a certain number per request and provide you with paging information which can be used to retrieve the remaining pages of data.

In the Web API, you will notice that most requests contain paging information.

File Downloads may have paging information as well, listed in the first row.

In order to request the next page of data, append a page_number parameter to your request:

https://api.intrinio.com/companies
https://api.intrinio.com/companies?page_number=2
https://api.intrinio.com/companies?page_number=3

Limits

The Intrinio API employs several reasonable limits to ensure that stable, reliable service is provided to all users. These limits can vary based on which data feeds you are subscribed to, as well as which API call you are making. The limits are grouped as: daily calls, 10-minute calls, paging, throttling, and timeouts. If you hit an API limit, the response will contain a 429 code and an explanation of the limit.

Daily Call Limits

Most data feed subscriptions have limited daily usage. This means that you can make up to a certain number of API calls in a 24-hour period (resetting at midnight Eastern). To view the limits for a data feed subscription, go to your Account page, click on Subscriptions, click on the subscription in question, and click on Limits.

10-Minute Call Limits

Some data feed subscriptions have limited 10-minute usage. This means that you can make up to a certain number of API calls in a 10-minute period.

1-Minute Call Limits

As an alternative to Daily Call Limits, some data feeds employ a 1-minute call limit. This means that you can make up to a certain number of API calls in a 1-minute period.

Paging Limits

API endpoints that employ paging are limited by the maximum page size that you may request. This varies by endpoint:

Endpoint Maximum Page Size
/historical_data 1,000
All others 100

Throttle Limits

Users enjoying free data feed subscriptions only are limited to 100 requests-per-second.

Timeout Limits

Each request must be fulfilled within 25 seconds, otherwise it will be dropped with a 503 error. Given the flexibility of our endpoints and the complexity of potential API calls, we leave it to the users to fashion requests which can be satisfied in a reasonable time.

Usage & Limits

The following endpoints will help you to check your API access, limits, and usage:

Note: this is limited to data feeds with daily API call limits.

Endpoints

Below are all of the API endpoints available for this data feed:

Welcome to the Intrinio Financial Data Platform! Through our Data Marketplace, we offer a wide selection of financial data feeds sourced by our own proprietary processes as well as from many data vendors. All of our data is available for download in the CSV (comma-separated values) format.

If you need additional help, chat with us.

Getting Started

For a quick guide to getting started with our CSV Download functionality, please see the Tutorial.

Authentication

When using the download links, your browser will prompt you for a username and password. These credentials correspond to your access keys, which can be found in your Account page.

Limits

The CSV Download functionality is well-suited for human use or light programmatic use. Downloads are limited to 1 per second. If you exceed this limit, the system will return a 429 error. If you need to download larger dataset, we recommend browsing our Financial Data Downloads , which allow you to download massive datasets for a flat fee.

Paging

Sometimes there is too much information in our system to put into a single file of reasonable size. Therefore we limit file downloads to 10,000 rows. In order to retrieve the rest of the rows, you will have to request the second "page" of results. The first row of each file will contain paging information: RESULT_COUNT: 6342 , PAGE_SIZE: 10000 , CURRENT_PAGE: 1, TOTAL_PAGES: 1 , API_CALL_CREDITS: 1

  • RESULT_COUNT tells you how many total rows there are in our system
  • PAGE_SIZE tells you how many records you are fetching per page
  • CURRENT_PAGE tells you which page you are currently viewing
  • TOTAL_PAGES tells you how many total pages there are
  • API_CALL_CREDITS tells you how many API calls credits your request consumed

If the TOTAL_PAGES field in your file is greater than 1 and you want to see the other pages, append a page_number parameter to the URL:

https://api.intrinio.com/indices.csv?type=economic&page_number=1
https://api.intrinio.com/indices.csv?type=economic&page_number=2
https://api.intrinio.com/indices.csv?type=economic&page_number=3

To exclude the paging information from your file, include a hide_paging parameter in the URL:

https://api.intrinio.com/indices.csv?type=economic&page_number=1&hide_paging=true

URL Formatting

URLs must be formatted correctly in order for file downloads to be processed successfully. Here are examples of correct URLs:

https://api.intrinio.com/indices.csv
https://api.intrinio.com/indices.csv?type=economic
https://api.intrinio.com/indices.csv?type=economic&query=GDP
https://api.intrinio.com/data_point.csv?identifier=AAPL&item=marketcap,beta

Here are examples of incorrect URLs:

https://api.intrinio.com/indices.csv&type=economic
https://api.intrinio.com/indices.csv?type=economic?query=GDP
https://api.intrinio.com/data_point.csv?identifier=AAPL&item=marketcap/beta

Here is a key to the different parts of a URL:

https://api.intrinio.com /data_point.csv ? identifier = AAPL & item = marketcap,beta
1 2 3 4 5 6 7 8 9 10

  1. Intrinio's API web address.
  2. The location of the data you are trying to access.
  3. The separator between the URL address and the URL parameters.
  4. The name of the URL parameter.
  5. The separator between the name of the URL parameter and the value of the URL parameter.
  6. The value of the URL parameter.
  7. The separator between URL parameters.
  8. The name of the URL parameter.
  9. The separator between the name of the URL parameter and the value of the URL parameter.
  10. The value of the URL parameter. Note some parameters allow multiple values - separate them with a comma.

Functions

Below are all of the CSV file downloads available for this data feed:

Returns a list of currencies for which prices are available.

Parameters

expand collapse
Name Description Example
hide_paging
* required
Hide first row of paging information.
Options:
true
true

Output Fields

expand collapse
Name Description Example
code ISO 4217 currency code AUD
name Currency name Dollar
country Country in which currency is used Australia

Sample Data

expand collapse

Currency Master

Returns a list of currencies for which prices are available.
URL:

Currency Master

Returns a list of currencies for which prices are available.
URL:

Currency Master

Not available for this access method

Currency Pairs

Returns a list of currency pairs used to request foreign exchange market (forex) price data. The currency that is used as the reference is called quote currency and the currency that is quoted in relation is called the base currency. For example, in the pair code “EURGBP” with a price of 0.88, one Euro (base currency) can be exchanged for 0.88 British Pounds (quote currency).

Parameters

expand collapse
Name Description Example
hide_paging
* required
Hide first row of paging information.
Options:
true
true

Output Fields

expand collapse
Name Description Example
code The code of the currency pair used for the currency_prices endpoint EURUSD
base_currency ISO 4217 currency code of the base currency EUR
quote_currency ISO 4217 currency code of the quote currency USD

Sample Data

expand collapse

Currency Pairs Master

Returns a list of currency pairs used to request foreign exchange market (forex) price data.
URL:

Currency Pairs Master

Returns a list of currency pairs used to request foreign exchange market (forex) price data.
URL:

Currency Pairs Master

Not available for this access method

Currency Prices

Provides a list of price quotes for a given currency pair and timeframe.

Parameters

expand collapse
Name Description Example
pair
* required
The currency trading pair. EURUSD
timeframe
* required
The time interval for the quotes.
Options:
m1
m5
m15
m30
H1
H2
H3
H4
H6
H8
D1
W1
M1
D1
start_date
* required
Return quotes on or after this date. 2017-06-01
start_time
* required
Return quotes at or after this time (24-hour, UTC). -
end_date
* required
Return quotes on or before this date. 2017-06-30
end_time
* required
Return quotes at or before this time (24-hour, UTC). -
page_number
* required
An integer greater than or equal to 1 for specifying the page number for the return values. 3
page_size
* required
An integer greater than or equal to 1 for specifying the number of results on each page. 10
sort_order
* required
The order of the price quotes.
Options:
asc
desc
asc
hide_paging
* required
Hide first row of paging information.
Options:
true
true

Output Fields

expand collapse
Name Description Example
date The date and time of the beginning of the timeframe (in UTC). The open prices would be at this time, while close prices would be at this time plus the timeframe. 2018-07-19 21:00:00 UTC
open_bid Open bid 0.87962
high_bid High bid 0.88137
low_bid Low bid 0.87582
close_bid Close bid 0.87591
open_ask Open Ask 0.87972
high_ask High Ask 0.88151
low_ask Low Ask 0.87646
close_ask Close Ask 0.87733
total_ticks Total Ticks 199438

Sample Data

expand collapse

Currency Prices Lookup

Provides a list of price quotes for a given timeframe, currency pair, and optional start and end date.
URL:

Currency Prices Lookup

Provides a list of price quotes for a given timeframe, currency pair, and optional start and end date.
URL:

Currency Prices Lookup

Not available for this access method