FCS Forex API

FCS Forex API v4 — supported by multiple live forex data sources. FCS API delivers live rates for 170+ countries and 4,000+ currency pairs. It provides real-time and historical FX prices, endpoints for selected or all currency pairs, and technical indicators from 1-minute to 1-month intervals. Whether you need a free API for testing or a reliable feed for trading, FCS API offers accurate and dependable forex data and market insights.

API Request Credit Usage

Most API endpoints cost 1 credit per request. Some endpoints (Latest, Profile, History) count credits per 100 records returned. The Basic plan includes 10,000 requests per month. Credits are charged only for successful (HTTP 200) responses.

🚀 New to FCS API?

Start with our Quick Start to get up and running in minutes.

Notes:
  • Only Latest price API, Candle API, Profile API count 1 credit per 100 record return.
  • Request count only when response code is {200} and return some record.
  • If API endpoints that return an error or empty responses are not count in request.
  • You can login in your dashboard to check your usage.
  • Credit refresh each month of your billing date.
  • Use bulk requests (multiple symbols) to optimize credit usage
  • Cache responses for non-critical applications
  • Handle rate limits gracefully with exponential backoff
  • Always check the status field before processing data
  • Send API request in POST method

Get Started

Quickly integrate the FCS Forex API for real-time and historical rates. Use any language (PHP, JavaScript, Java, C#, etc.). Responses are JSON for easy parsing; try the cURL example below to fetch the latest EURUSD rate.

Follow these 3 quick steps to start using the FCS Forex API.

Step 1: Get Your API Key

Sign up and get your API key instantly. Free plans available for testing.

Step 2: Try a Simple cURL Request

Run this command (replace YOUR_API_KEY):

curl "https://api-v4.fcsapi.com/forex/latest?symbol=EURUSD&access_key=YOUR_API_KEY"

Step 3: Integrate in Your App

Use the JSON response in your application. Toggle parameters like symbol, period, and exchange to fetch the data you need.

🔑 Your API Key Location:

After registration, find your API key in the dashboard under "API Keys" section. Keep it secure and never expose it in client-side code.


Parameters List

ParameterTypeDescription
access_key*requiredstringAuthentication API KEY
This is a required parameter for all API requests. It's your unique access key used to authenticate and authorize your request. You can find your API key in your dashboard after registration.

Alternative Authentication: If you have a static IP address, you can whitelist it in your Account → Profile → IP Whitelist section to make requests without the access_key parameter.
typeoptionalstringData type filter: forex, commodity
Filter results by specific asset type. When you want data for a specific type of financial instrument, use this parameter to narrow down results.

Default: null (returns all types)
Valid Values: forex, crypto, coin, futures,dex, commodity

Example: If you set type=forex, the API will only return forex currency pairs. If type=crypto, only cryptocurrency pairs will be returned.

Use Case: Perfect for applications that focus on specific markets or when you want to avoid mixing different asset types in your results.
sub_typeoptionalstringDefault:spot, Filter: spot,synthetic
Spot are normal symbols driven from exchanges
synthetic It is self generated symbol that is not listed on any exchange by using formula
symboloptionalstringCurrency pairs or asset symbols (comma-separated for multiple)
Specify which currency pairs or financial instruments you want data for. You can request single or multiple symbols in one API call.

Formats Supported:
• Standard: EURUSD, GBPJPY, BTCUSD
• Exchange-specific: ONA:EURUSD, SFO:GBPUSD
• Multiple symbols: EURUSD,GBPUSD,USDJPY

Finding Valid Symbols: Use our Symbols List API to get all available symbols for your data.
periodoptionalstringDefault:1D, Candle Time Period
Specifies the timeframe for Lates / historical data, candlestick charts, and technical analysis.
Default: 1D (daily)
Valid Values (Minutes): 1, 5, 15, 30, 60, 120, 240, 300, 1440, 10080, 43200
Valid Values (Text Format): 1m, 5m, 15m, 30m, 1h, 2h, 4h, 5h, 1d, 1w, 1M

Data Availability: Shorter timeframes have limited historical depth (typically 1-24 months), while daily and higher timeframes go back several years. Maximum previous 10K candles in history
exchangeoptionalstringSpecific exchange or data feed source name
Filter results to show data from a specific exchange or price feed provider. Useful when you need prices from a particular source for consistency.

Popular Exchanges:
• Forex: ONA, SFO, FCM and see 10+ more Get List
• Crypto: Binance, Coinbase, Kraken, Bitfinex (used in crypto API)

Default Behavior: When not specified, returns aggregated data from multiple sources Or First Available exchange.

Use Cases: Regulatory compliance, specific broker integration, price comparison across exchanges.
searchoptionalstringSearch within currency pair names or symbols
Search within currency pair names or symbols. Accepts partial matches for quick symbol lookup.
Examples:
search=EUR → Find all EUR pairs (EURUSD, EURGBP, EURJPY)
search=USD → Find all USD pairs (USDJPY, USDCAD, GBPUSD)
search=gold → Find gold-related instruments
Note: Use either `search` OR `symbol`, not both.
get_profileoptionalbooleanFALSE|TRUE (0|1) (return symbols extra details)
Controls whether to include detailed profile information about each financial instrument in the API response.

Default: 0
Valid Values: 0, 1

Profile Information Includes:
• Full instrument name
• Country/region information
• Asset type classification
• Trading specifications
• Decimal precision

Performance Tip: Set to false if you only need price data to reduce response size and improve speed, especially for bulk requests.
countryoptionalstringFilter by country code (ISO 2-letter format)
Used in Economy calendar. Filter results to show only instruments from specific countries or regions. Useful for compliance, regional focus, or regulatory requirements.

Format: ISO 3166-1 alpha-2 country codes
Examples: US, GB, DE, JP, AU, CA

Use Cases:
• Regulatory compliance (showing only domestic instruments)
• Regional market analysis
• Tax jurisdiction filtering
• Time zone-based trading strategies
amountoptionalnumericAmount to convert (for currency conversion endpoints)
Specifies the amount of currency to convert when using conversion endpoints.

Default: 1
Valid Range: 0.01 to 999,999,999
Decimal Support: Up to 8 decimal places

Examples:
• amount=100 (convert 100 units)
• amount=1000.50 (convert 1000.50 units)
• amount=0.01 (convert 0.01 units for crypto)

Use Cases: Currency conversion calculators, payment processing, international transfers, portfolio valuation.
fromoptionalunixTimeStart date/time for historical price data
Defines the start date and time for historical data requests. Used in conjunction with the "to" parameter to specify date ranges.

Supported Formats:
• Date only: 2025-01-01, 2025-12-31
• Date with time: 2025-01-01T09:30, 2025-12-31T16:00
• Unix timestamp: 1735689600 (10 digit only)

Time Zone: All times are in UTC

Default Behavior: When not specified, returns the most recent available history data

Historical Limits:
• Forex: Up to 20+ years of daily data
• Intraday: 1-24 months depending on timeframe
• Crypto: Varies by exchange, typically 2-5 years
• Maximum Recent 5-12K candles in any time period
tooptionalunixTimeEnd date/time for historical data queries
Defines the end date and time for historical data requests. Must be used together with the "from" parameter to create a valid date range.

Supported Formats:
• Date only: 2025-01-31, 2025-12-31
• Date with time: 2025-01-31T17:00, 2025-12-31T23:59
• Unix timestamp: 1738281600

Important Notes:
• Must be after the "from" date
• Cannot be in the future
• Maximum range varies by timeframe

Default: Current date/time when not specified

Performance: Smaller date ranges return faster and use fewer API credits.
is_chartoptionalstringHistory Response for chart format
If you want to use history api directly in JS chart, Mostly JS chart support simple candle data format
is_chart=0 response ["t":1738281600,"o":1.1,"h":1.2,"l":1.0","c":1.1,"v":150]
is_chart=1 response [1738281600,1.1,1.2,1.0,1.1,150],
Use is_chart=1 when you need specific JS chart history
mergeoptionalstringMerge multiple API in 1 respones values(latest, perf, tech, profile, meta)
We have different API endpoints, You can access all at one. Use in advance API endpoint.
merge=latest,tech To get Active/Prev candle prices and technical indicators
merge=latest,tech,perf To get Active/Prev candle prices and technical indicators with symbol performance
filtersoptionaljsonAdvanced filtering using JSON object
Advanced JSON object for range-based filtering. Format: {"column_operator": value}.
Operators:
  • _eq → Equal to
  • _gt → Greater than
  • _lt → Less than
  • _gte → Greater than or equal to
  • _lte → Less than or equal to
  • _between → Range between two values ("min,max")
Forex Examples:
{"active.c_gt":1.1,"active.chp_between":"0.5,2"} → Currency pairs with price > 1.1 and change % between 0.5–2%
{"active.v_gt":10000} → Pairs with volume > 10,000
{"profile.exchange_eq":"ONA"} → Only from ONA exchange
Response also includes "filters" → {"applied": {...}, "ignored": [...]} for debugging.
sort_byoptionalcolumn_nameSort results by specific field or metric
Column name + direction to sort results. Format: {column_name}_{asc|desc}.
Forex Examples:
sort_by=active.chp_desc → Top gaining currency pairs (by % change)
sort_by=active.v_desc → Most active pairs (by volume)
sort_by=active.c_desc → Highest priced pairs
sort_by=profile.name_asc → Alphabetical by currency pair name

Note: Sorting works across merged APIs; use full path (active., profile., etc.) when columns overlap.
pageoptionalnumberPagination page number
Pagination page number (default: 1)
per_pageoptionalnumberNumber of records per page
Number of records per page. Default: 200 | Max: 5000
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array)
Specifies the format of the API response. Choose the format that best fits your application's needs.

Default: json
Available Formats:
• json - Standard JSON format (recommended)
• jsonp - JSON with padding for cross-domain requests
• serialize - Serialized string for legacy systems
• csv - Comma-separated values for data analysis
• array - PHP array format

Content-Type Headers:
• json: application/json
• csv: text/csv

Recommendation: Use JSON for modern applications, CSV for data analysis and Excel imports.

Symbols List

You can access the complete list of supported currency short names and symbols using the API below. These symbols will allow you to fetch indicator values, historical trends, and real-time exchange rates. Our forex API endpoint is regularly updated, guaranteeing you always have the most up-to-date forex currencies in real time.

•API Return All symbols, You need to use these symbols in Latest Price API, Price conversation, Historical and for Technical signals.
•type=Forex to get all forex symbols.
•type=commodity to get all commodity symbols.

API Credit Usage: 1 credit count for each 1000 symbols returned (rounded up).
POST/forex/list
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
typeoptionalstringData type filter: forex, commoditymore
sub_typeoptionalstringDefault:spot, Filter: spot,syntheticmore
exchangeoptionalstringSpecific exchange or data feed source name more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more

API EXAMPLE

Get All Forex Support Symbols
https://api-v4.fcsapi.com/forex/list?type=forex&access_key=API_KEY
Return all forex symbols supported.
Symbols By Exchange
https://api-v4.fcsapi.com/forex/list?access_key=API_KEY&exchange=SFO,ONA
Get all Exchanges name here Exchanges

Latest Prices

The Latest Currency Rate API is extremely beneficial, ensuring you stay informed with up-to-date currency prices. Our Currency Conversion API enables you to retrieve one or multiple currency rates at once. You can get active/current candle OHLC and previous closed candle prices.

📊Real-time Updates:

•We update the prices of each currency in every 30-60 seconds in JSON API.
•Support All Time periods.
•Support Active and Previous candle OHLC in all time frame.

API Credit Usage: 1 credit count for each 100 record returned (rounded up).
POST/forex/latest
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symboloptionalstringCurrency pairs or asset symbols (comma-separated for multiple) more
periodoptionalstringDefault:1D, Candle Time Period more
exchangeoptionalstringSpecific exchange or data feed source name more
get_profileoptionalbooleanFALSE|TRUE (0|1) (return symbols extra details) more
searchoptionalstringSearch within currency pair names or symbols more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more
moreoptionalstringAlso support sort_by, pagination,etc check our Advance api

API EXAMPLE

Multiple Currency Pairs
https://api-v4.fcsapi.com/forex/latest?symbol=EURUSD,USDJPY&access_key=API_KEY
Symbols without exchange, It will Return latest prices of EURUSD,USDJPY from all available exchanges
Tickers Data EXCHANGE:SYMBOL
https://api-v4.fcsapi.com/forex/latest?
symbol=ONA:EURUSD,FX:USDJPY,NZDJPY
&period=1D&access_key=API_KEY
Return EURUSD from ONA and USDJPY from FX and NZDJPY from all exchanges
Specific Exchange (Return all symbols from selected exchange)
https://api-v4.fcsapi.com/forex/latest?exchange=SFO,ONA&period=1h&access_key=API_KEY
Return all latest prices from specific exchanges with 1-hour candle prices.
Multiple Symbol
https://api-v4.fcsapi.com/forex/latest?
symbol=ONA:EURUSD,ONA:USDJPY,FX:EURUSD,FX:USDJPY
period=1D
&get_profile=1
&access_key=API_KEY
Multiple Symbol2 (Different approach but same result)
https://api-v4.fcsapi.com/forex/latest
POST Request / JSON Body:
We accept all methods GET/POST/JSON
{
    "type": "forex",
    "sub_type": "spot",
    "symbol":"EURUSD,USDJPY",
    "exchange": "ONA,FX",
    "period": "1d",
    "get_profile": 1,
    "per_page": "20",
    "access_key": "API_KEY"
}

Response Format

Response Fields

  • o - Open price
  • h - High price
  • l - Low price
  • c - Current/Close price
  • t - Candle Open Unix timestamp
  • a - Ask Price
  • b - Bid Price
  • v - Volume
  • vw - Volume weighted average price
  • ch - Change amount
  • chp - Change percentage
  • update - Last Price update time
  • base_id - if base_id is same for multiple symbols. They are belong to same group

Mini Sample Response

{
    "active": {
        "o": 1.16153,
        "h": 1.16256,
        "l": 1.16128,
        "c": 1.16192,
        "v": 3182,
        "t": 1756155600,
        "vw": 1.16808,
        "ch": 0.00039,
        "chp": 0.034
    },
    "profile": {
        "id": "165558",
        "symbol": "EURUSD",
        "exchange": "FX",
        "name": "EURO / U.S. DOLLAR",
        "type": "forex",
        "sub_type": "",
        "currency": "USD",
        "country": "",
        "base_id": "EU"
    },
    "more": {
        ".....": "4000+ more currency prices"
    }
}
✅ Best Practices::
  • If you need to use Multiple API at same time, Use bulk requests (multiple/parallel)
  • Cache responses for non-critical applications
  • Handle rate limits gracefully with exponential backoff
  • Always check the status field before processing data

Commodities

We provide commodity market data for precious metals, energies, and base metals. To request commodities from any endpoint, pass type=commodity. Example symbols include Gold (XAUUSD), Silver (XAGUSD), Crude Oil (USOIL / WTI), Brent (BRENT), Natural Gas (NGAS), Copper, and Platinum. Use the Symbols List API to find exact tickers available on the platform.

Requesting commodities

Add type=commodity to any existing endpoint (Latest, History, Profile, etc.) to filter results to commodity symbols. Examples below show common commodity requests — there is no separate commodities-only endpoint.

API Credit Usage: Same credit rules as other Latest/History endpoints.
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symboloptionalstringCurrency pairs or asset symbols (comma-separated for multiple) more
periodoptionalstringDefault:1D, Candle Time Period more
typeoptionalstringData type filter: forex, commoditymore
exchangeoptionalstringSpecific exchange or data feed source name more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more

API EXAMPLE

Gold (XAUUSD) Latest
https://api-v4.fcsapi.com/forex/latest?symbol=XAUUSD&type=commodity&access_key=API_KEY
Latest gold price (XAUUSD)
Silver (XAGUSD) Latest
https://api-v4.fcsapi.com/forex/latest?symbol=XAGUSD&type=commodity&access_key=API_KEY
Latest silver price (XAGUSD)
Crude Oil (WTI) Latest
https://api-v4.fcsapi.com/forex/latest?symbol=USOIL&type=commodity&access_key=API_KEY
Latest WTI crude oil price
Multiple Commodities
https://api-v4.fcsapi.com/forex/latest?symbol=XAUUSD,XAGUSD,USOIL&type=commodity&access_key=API_KEY
Fetch multiple commodity prices in one request
History Example
https://api-v4.fcsapi.com/forex/history?symbol=XAUUSD&period=1D&type=commodity&access_key=API_KEY
Use the History endpoint to retrieve long-range OHLC data for commodities.

Response Format

Response Fields

  • o - Open price
  • h - High price
  • l - Low price
  • c - Current/Close price
  • t - Candle Open Unix timestamp

Mini Sample Response

{
    "ticker": "XAUUSD",
    "update": 1765318304,
    "active": {
        "o": 2500,
        "h": 2530,
        "l": 2498.5,
        "c": 2523.1,
        "t": 1765317600
    }
}
✅ Quick Tips::
  • Use type=commodity when requesting commodities from any endpoint
  • Check the Symbols List API for exact commodity tickers and exchange coverage
  • Use History API for multi-day OHLC analysis of commodity prices
  • Cache commodity quotes for dashboards to reduce credit usage

Currency Converter

In our Currency API, price conversion is an essential function that enables you to exchange between two chosen currencies. To achieve this, simply include the symbols parameter along with the amount you wish to convert. Our Currency Exchange API ensures a seamless and efficient conversion process.

Note:

This endpoint accepts only one currency pair per request — use pair1 and pair2 (e.g., pair1=EUR&pair2=USD).

API Credit Usage: Requires Starter plan or higher — 1 credit per request.
POST/forex/converter
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
pair1*requiredstringCurrency From (e.g. EUR)
pair2*requiredstringCurrency To (e.g. USD)
amountoptionalnumericAmount to convert (for currency conversion endpoints) more
typeoptionalstringData type filter: forex, commoditymore
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more

API EXAMPLE

Converter Example
https://api-v4.fcsapi.com/forex/converter?pair1=EUR&pair2=USD&amount=10&access_key=API_KEY

Response Format

Response Fields

  • total - Total 10 EUR convert to USD
  • price_1x_EUR - 1 USD price to EUR
  • price_1x_USD - 1 EUR price to USD

Mini Sample Response

{
    "total": "11.7362",
    "price_1x_EUR": "0.85206",
    "price_1x_USD": "1.17362",
    "more": "10 EUR into USD"
}
⚠️ Important Notes::
  • Some symbols exist in both Forex and Crypto (e.g. PKRUSD same symbol in forex and crypto = Pakistani Rupee/USD and Polker/USD).
  • Use type=forex to get currency data, or type=crypto to get token data.
  • Do not use type — When converting between crypto and fiat (e.g. pair1=BTC&pair2=JPY), the system will auto-detect and convert.

Base Currency

Single base currency, it will return all quote prices of all currencies. If direct currency pair not available e.g: we not have a INRBDT, system automatic derive from intermediate pairs (e.g., BDTUSD and INRUSD → INRBDT). Only last close price returned. For OHLC data please use our Latest Price API or Cross API.
e.g: You set USD and API will return USDEUR, USDNZD, USDBTC....

Note:

Symbol Only accept Currency name,
Correct Values: USD, JPY Wrong Values: USDJPY, USDNZD
response: If Enter symbol=USD, then return all currencies start with USD*

Quote: By default, we return the selected symbol with the base currency first. If you need the reverse pair (where your currency is the quote instead), you can calculate it manually. For example: if the API returns USDEUR, you can invert it to get 1/USDEUR =>EURUSD.

API Credit Usage: Requires Professional plan or higher — 1 credit per 500 record returned (rounded up)
POST/forex/base_latest
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symbol*requiredstringSingle currency code (e.g. USD) more
type*requiredstringAccepts: forex or crypto more
exchangeoptionalstringComma-separated exchange names; if not available, other exchanges may be used more
fallbackoptionalstring0|1 — 0: default, return only selected exchange symbols; 1: fallback to other exchanges when missing.

API EXAMPLE

USD to All forex currency
https://api-v4.fcsapi.com/forex/base_latest?symbol=USD&type=forex&access_key=API_KEY
JPY to All forex currency
https://api-v4.fcsapi.com/forex/base_latest?symbol=JPY&type=forex&access_key=API_KEY
Use symbol=JPY to get all pairs starting with JPY (JPYUSD, JPYEUR,JPYNZD...)

Response Format

Response Fields

  • USDxxx - Price of currency pair with USD as base

Mini Sample Response

{
    "base": "USD",
    "USDAUD": 1.5343,
    "USDBRL": 5.4736,
    "USDCAD": 1.38208,
    "USDCHF": 0.8055,
    "USDEUR": 0.8587,
    "more": "all prices with Base USD",
    "info": {
        "credit_count": 1
    }
}

Cross Currency

Return OHLC (open, high, low, close) and bid/ask data for all cross pairs of the given currency. For example, if you set symbol=USD, the API will return USDJPY, USDEUR, USDGBP, USDPKR, USDxxx and more.
•By default, the API returns pairs with the base currency first (e.g., USDEUR). To get the reverse pair (EURUSD), calculate it manually as 1/USDEUR.
•When using multiple symbols with crossrates=1, the API returns all pairwise cross rates between them (both directions). With crossrates=0 (default), it returns pairs starting with each provided currency.

About crossrates parameter: When crossrates=1 and you pass multiple single-currency symbols (for example symbol=USD,EUR,JPY), the API returns all pairwise cross rates between those currencies (both directions). Example pairs returned: USDEUR, EURUSD, USDJPY, EURJPY, JPYUSD, JPYEUR. When crossrates=0 (default), the API returns symbols that start with each provided currency (e.g. all symbols beginning with USD*, EUR*, JPY*).

Note:

•Cross Currency API provides derived OHLC data and may be less accurate compared to History and Latest endpoints. For most accurate prices, prefer Latest or History APIs when available.
•Symbol must be a single currency code, e.g. USD or EUR.

API Credit Usage: Requires Professional plan or higher — 1 credit/100 records.
POST/forex/cross
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symbol*requiredstringSingle Currency Name (USD,EUR,JPY) more
type*requiredstringIn this API, Accept forex/crypto only more
period*requiredstringTime period for OHLC data, e.g., 1D for 1 day more
exchangeoptionalstringmultiple exchange name,
If symbol not available auto choose other exchange more
crossratesoptionalstring0|1 (default 0). When 1 and multiple single-currency symbols provided, return all pairwise cross rates between them (both directions). When 0 returns symbols that start with each provided currency.
fallbackoptionalstring0|1 => Work with exchange,
If 0: (default) return only selected exchanges symbols,
If 1: if currency in selected exchange not found, it will be return from other exchange.

API EXAMPLE

USD to All forex currency
https://api-v4.fcsapi.com/forex/cross?symbol=USD&type=forex&period=1D&access_key=API_KEY
By FX,SFO Exchange (E.g: If USDEUR from FX and SFO not found will return from other exchange )
https://api-v4.fcsapi.com/forex/cross?
symbol=USD
&type=forex
&period=1D
&exchange=FX,SFO
&access_key=API_KEY

Historical Price API

If you're looking to compare current exchange prices with past rates to watch the market trends, our Forex History API offers comprehensive historical exchange data for all supported symbols. For most symbols, historical prices are available starting from 1995, with data in 1-day or higher time frames.

100% symbol support from symbol list. All symbols work with History API but 1 symbol in single history API request.
Data Coverage:

Historical data available from 1999 for major pairs. Intraday data (1m, 5m, etc.) available for up to 2 years. You can also access 1-minute, 5-minute, and other short-term data for up to 6 months. Smaller time periods have less data (typically up to 8-10K candles).

History limits by plan
Free: up to 300 candles (when using length without from/to).
Starter: up to 1000 candles (no from/to).
Professional: up to 3500 candles (no from/to).
Advanced & Corporate: up to 10000 candles

Note: These limits apply to simple length-based requests (no explicit from/to). Date-range queries may be further limited per plan. Requests that exceed your plan limits will return an informative error — contact support to upgrade or request bulk access.

API Credit Usage: 1 credit count for each 300 candles returned (rounded up).
POST/forex/history
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symbol*requiredstringSingle symbol only,(exchange_name:Symbol) E.g: NZDJPY or FCM:EURUSD more
periodoptionalstringDefault:1D, Candle Time Period more
fromoptionalunixTimeStart date/time for historical price data more
tooptionalunixTimeEnd date/time for historical data queries more
lengthoptionalnumberdefault: 300, 1-10000, If set 500, Will return 500 candles
pageoptionalnumberDesign to use in live chart when scroll more candles on chart more
is_chartoptionalstringMostly JS chart support candle data in this format, [1756893600,1.16, 1.17,1.13,1.16,0]
To get similar response, set is_chart=1 more

API EXAMPLE

Latest 300 Candles
https://api-v4.fcsapi.com/forex/history?symbol=EURUSD&period=1h&access_key=API_KEY
More Candles (900) - Period 1D
https://api-v4.fcsapi.com/forex/history?symbol=EURUSD&period=1D&length=900&access_key=API_KEY
Date Range Query
https://api-v4.fcsapi.com/forex/history?
symbol=EURUSD
&from=2025-12-01
&to=2026-01-07
&period=1D
&access_key=API_KEY
Live Chart
https://api-v4.fcsapi.com/forex/history?
symbol=EURUSD
&length=300&page=1
&access_key=API_KEY
In live chart:when user scroll back to view historical data, Request new API with increment page number for previous candles. E.g:Page=2

Response Format

Response Fields

  • o - Opening price
  • h - Highest price
  • l - Lowest price
  • c - Closing price
  • v - Volume
  • vw - Volume weighted average price
  • t - Unix timestamp
  • tm - Human readable time

Mini Sample Response

{
    "1748815200": {
        "o": 1.13479,
        "h": 1.14495,
        "l": 1.13476,
        "c": 1.14363,
        "v": 434204,
        "vw": 1.144,
        "t": 1748815200,
        "tm": "2025-06-01 22:00:00"
    }
}
✅ Best Practices::
  • Use appropriate time periods for your use case
  • Limit date ranges to avoid large responses and time
  • Cache historical data as it doesn't change
  • Use length parameter to get more data in single request

Currency Profile Details

In our API, You can get all the details about Forex currencies. Details like its name, country name, bank name, currency unit, type of notes and more details.

Note:

This API provides detailed information about individual currencies, not currency pairs. Use currency codes like EUR, USD, GBP.

API Credit Usage: 1 credit count for each 200 record returned (rounded up).
POST/forex/profile
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symbol*requiredstringCurrency codes: EUR,USD,GBP more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more

API EXAMPLE

Single Currency Profile
https://api-v4.fcsapi.com/forex/profile?symbol=EUR&access_key=API_KEY
Multiple Currencies
https://api-v4.fcsapi.com/forex/profile?symbol=EUR,USD,GBP,JPY&access_key=API_KEY

Response Format

Response Fields

  • short_name - Currency code (EUR, USD)
  • name - Full currency name
  • country - Country/region
  • code_n - ISO numeric code
  • subunit - Smallest currency unit
  • website - Central bank website
  • symbol - Currency symbol
  • bank - Central bank name
  • banknotes - Available banknotes
  • coins - Available coins

Mini Sample Response

{
    "short_name": "EUR",
    "name": "Euro",
    "country": "Belgium",
    "code_n": "978",
    "subunit": "cent",
    "website": "ecb.europa.eu",
    "symbol": "€",
    "bank": "European Central Bank",
    "banknotes": "€5, €10, €20, €50, €100",
    "coins": "1c, 2c, 5c, 10c, 20c, 50c, €1, €2"
}

Exchange Coverage & Data Sources

Our Forex API aggregates data from 10+ premium exchanges and data feed providers worldwide. Get real-time coverage statistics and exchange details to choose the best data sources for your application.

Loading exchange data...
💡 Understanding Exchange Data:

View all forex exchanges and data providers we support.
• Exchange The exchange or data provider code
• Sub_type Additional classification or market type (if applicable)
• Total Symbols Number of currency pairs available from this exchange

POST/forex/exchanges
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
typeoptionalstringData type filter: forex, commoditymore
sub_typeoptionalstringDefault:spot, Filter: spot,syntheticmore
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more

Exchange Report Examples

All Forex Exchanges
https://api-v4.fcsapi.com/forex/exchanges?type=forex&sub_type=spot&access_key=API_KEY
All Data Types
https://api-v4.fcsapi.com/forex/exchanges?access_key=API_KEY

Response Format

Response Fields

  • by_type - Summary statistics by data type
  • by_exchange - Detailed breakdown per exchange
  • total_symbols - Total number of symbols available
  • no_of_exchanges - Total number of exchanges
✅ Exchange Benefits::
  • Real-time Data: Socket-supported provide real time price updates
  • Global Coverage: 10+ exchanges across different regions and time zones
  • Quality Assurance: All data sources are institutional-grade providers
  • Redundancy: Multiple sources ensure high availability
  • Specialized Markets: Regional exchanges offer unique currency pairs

Advanced Query API

(ALL IN ONE) The Advanced Query API is a powerful endpoint that combines multiple data sources and provides flexible filtering, sorting, and pagination capabilities. This unified API allows you to retrieve forex data with advanced customization options, making it perfect for complex trading applications and data analysis.

🚀 Advanced Features:

•Flexible column selection and filtering
•Multi-API data merging (latest, profile,meta, performance, technical indicators)
•Advanced search and symbol combination
•Pagination and sorting capabilities
•Dynamic exchange-symbol mapping, Sort and Filter

API Credit Usage: 1 credit per 100 records. Additional credits: +1 per API merged (latest, perf, tech,profile,meta). Example: merge="latest,perf,tech" = 3 credits per 100 records.
Extra: Sort_by, filter, search required Professional plan or higher.
POST/forex/advance
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
columnsoptionalstringComma-separated column names to return (empty = all columns)(case-sensitive)
keep_parent_colmoptionalstring0|1 - Work with columns parameter. 0: flatten array, 1: keep nested structure
symboloptionalstringCurrency pairs or asset symbols (comma-separated for multiple) more
typeoptionalstringData type filter: forex, commoditymore
sub_typeoptionalstringDefault:spot, Filter: spot,syntheticmore
periodoptionalstringDefault:1D, Candle Time Period more
exchangeoptionalstringSpecific exchange or data feed source name more
filtersoptionaljsonJSON/Array object for range filtering. Format: {"column_operator": value} more
sort_byoptionalcolumn_nameSort format: column_asc or column_desc, Colum name is case sensitive more
mergeoptionalstringMerge APIs: latest,perf, tech,profile, meta (comma-separated) more
pageoptionalnumberPage number for pagination (default: 1) more
per_pageoptionalnumberRecords per page (default: 200, max: 5000) more
searchoptionalstringSearch in names, Please check search api below for details more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more

API EXAMPLE

POST/RAW Query (All fields)
https://api-v4.fcsapi.com/forex/advance
POST/RAW JSON both accepted
{ 
    "symbol":"FX:EURUSD,SFO:JPYUSD",  // EXCHANGE:SYMBOL
    "exchange":"", // return data from specific exchange 
    "type":"forex", // forex 
    "sub_type":"spot", // spot,synthetic 
    "period":"1d", // 1m,5m, to 1month 
    "columns":"", // return specific columns/All
    "keep_parent_colm":0, //(0|1) work with columns
    "filters":{"active.c_gt":1}, // range filter 
    "sort_by":"active.chp_desc", // columnname_asc /desc 
    "merge" :"latest,perf,tech,profile,meta", // merge other api
    "page":1, 
    "per_page":"50", //  
    "search":"", // search and symbol will not work together 
    "access_key":"API_KEY"
}
We have mention all support fileds, Just Copy N paste in raw methods or PostMan for quick testing. You can play with param values to see different results.
📋 Filter Operators::
  • _gt: Greater than | _lt: Less than
  • _gte: Greater than or equal | _lte: Less than or equal
  • _eq: Equal to | _between: Between two values "min,max"
  • Example: {"c_gte": 1.15, "chp_between": "1,50", "volume_gt": 1000}
Does this filter work?
To confirm your filters are applied correctly, check the "filters" field in the API response. It displays which filters were applied and which were ignored.
Example: "filters":{"applied":{"active.c_gt":"1.10"},"ignored":[]} means the filter active.c_gt ≥ 1.10 was successfully applied.

Additionally, the "sort_by" field shows if sorting was applied (e.g. "sort_by":"active.chp_desc" for top gaining pairs).

Sorting API Guide (Top Gainers, Losers, Movers)

The Gainer/Loser API is built on our Advanced API framework, specifically optimized for identifying top-performing and worst-performing currency pairs. You can sort results of by using Advanced API by using simple sorting parameters. This allows you to fetch Top Gainers, Losers, Most Active by Volume, or Highest by Value without a separate endpoint. Just append the column name with `_asc` or `_desc`.

Sort Parameter Guide:
Format: {column_name}_{direction} where direction is asc (ascending) or desc (descending).
• Column names are case-sensitive and must match exactly as they appear in the API response
• Only columns present in the response can be used for sorting
• Examples: chp_desc (top gainers), chp_asc (top losers), v_desc (highest volume), c_asc (lowest price)

🔎 How Sorting / Gainers / Losers Works

Attach `sort_by` parameter with column name + `_asc` (ascending) or `_desc` (descending).
Example: `sort_by=chp_desc` will give you the highest gainers first.
What is chp_desc?: In our latest price api we return change % column name as "chp" so you need to use column name that is "chp" in our case, and extend with "_desc" = chp_desc.

Similar if you want to get High price currency first use "?sort_by=c_desc" here c is "close" price

API Credit Usage: Sorting does not cost extra credits — it works with the same request credits.
POST/forex/advance
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
typeoptionalstringData type filter: forex, commoditymore
symboloptionalstringCurrency pairs or asset symbols (comma-separated for multiple) more
exchangeoptionalstringSpecific exchange or data feed source name more
sort_byoptionalcolumn_namecolumn name with "_desc"/"_asc" to sort any column more
moreoptionalstringAll forex/advance filters supported. Combine `sort` with conditions like `limit=20` for best results.

API EXAMPLE

Top Gainers (by % change)
https://api-v4.fcsapi.com/forex/advance?type=forex&sort_by=active.chp_desc&per_page=20&merge=latest&access_key=API_KEY
Fetches the top 20 gainers by percentage change.
Top Losers (by % change)
https://api-v4.fcsapi.com/forex/advance?type=forex&sort_by=active.chp_asc&per_page=20&merge=latest&access_key=API_KEY
Fetches the top 20 losers by percentage change.
Most Active by Volume
https://api-v4.fcsapi.com/forex/advance?type=forex&exchange=FX&sort_by=active.v_desc&per_page=30&merge=latest&access_key=API_KEY
Returns the most traded symbols on FX ranked by volume. (Note volume is self generated in small time frame only, because forex does not have volume it self compare to stock/crypto"
Highest by Price
https://api-v4.fcsapi.com/forex/advance?type=forex&sort_by=active.c_desc&per_page=15&merge=latest&access_key=API_KEY
Shows forex ranked by price.
Sort By Name Z->A
https://api-v4.fcsapi.com/forex/advance?type=forex&sort_by=profile.symbol_desc&per_page=15&merge=latest,profile&access_key=API_KEY
Need to merge profile API, because symbol return with profile. Show Last symbols first in DESC alphabet orders
POST /RAW method - Top Gainers - 1 Hour Performance
https://api-v4.fcsapi.com/forex/advance
POST Request - JSON Body:
Get top performing forex pairs from FX exchange in the last hour, and return only active candle not previous
{
    "type": "forex",
    "sub_type": "spot",
    "symbols":"",
    "exchange": "FX", 
    "period": "1h",
    "columns": "",
    "keep_parent_colm": 0,
    "sort_by": "active.chp_desc",  // Sort by Change % DESC
    "filters": {}, 
    "merge": "latest,profile", // return latest prices and profile
    "per_page": "20", // limit reponse by 20 result only.
    "access_key": "API_KEY"
}
✅ Tips for Sorting::
  • Use `sort_by=chp_desc` for Top Gainers and `chp_asc` for Top Losers.
  • Use `sort_by=v_desc` to get most active symbols.
  • Always pair sorting with `per_page` to optimize API usage.
Does this sort work?
To check if your sorting is applied correctly, you can look at the "sort_by" field in the API response. It shows which column was used for sorting and the direction (asc or desc).
Example: "sort_by":"chp_desc" means the results are sorted by change percentage in descending order. and also check "sort_result":"success" means sort applied successfully.

Moving Average API (EMA & SMA)

The Moving Average API provides calculated Exponential Moving Average (EMA) and Simple Moving Average (SMA) values for multiple time periods. This helps traders and developers analyze short-term and long-term market trends using reliable forex technical indicators. You can easily integrate these signals into trading bots, charting tools, or algorithmic strategies.

📈 Key Features:

• Get both EMA (Exponential Moving Average) and SMA (Simple Moving Average) values.
• Multiple intervals supported: 10, 25, 100, 200 (default).
• Includes signal strength, score, and market sentiment summary.

API Credit Usage: Requires Enterprise plan or higher — 1 credit counts for each 100 records returned (rounded up).
POST/forex/ma_avg
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symboloptionalstringCurrency pairs or asset symbols (comma-separated for multiple) more
periodoptionalstringDefault:1D, Candle Time Period more
exchangeoptionalstringSpecific exchange or data feed source name more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more
moreoptionalstringSupports bulk queries, pagination, and advanced filtering. Check our Advanced API.

API EXAMPLE

Single Pair (Default Exchange)
https://api-v4.fcsapi.com/forex/ma_avg?symbol=EURUSD&period=1h&access_key=API_KEY
Returns moving averages (EMA & SMA) for EURUSD in 1-hour timeframe from all exchanges.
Specific Exchange + Pair
https://api-v4.fcsapi.com/forex/ma_avg?symbol=FX:USDJPY&period=1D&access_key=API_KEY
Retrieve SMA & EMA calculations for USDJPY only from the FX exchange (daily candles).
Multiple Symbols
https://api-v4.fcsapi.com/forex/ma_avg?symbol=EURUSD,GBPUSD,USDJPY&period=1D&access_key=API_KEY
Get moving averages for multiple symbols in a single request.
POST JSON Example
https://api-v4.fcsapi.com/forex/ma_avg
POST Request - JSON Body:
{
    "type": "forex",
    "symbols": "EURUSD,USDJPY",
    "exchange": "FX",
    "period": "1d",

    "access_key": "API_KEY"
}

Response Format

Response Fields

  • signal - Summary of overall MA trend
  • signal.summary - WEAK_BUY/STRONG_BUY/BUY and same for SELL
  • signal.score - Numeric score showing strength of trend (-100 to 100)
  • signal.trend - WEAK,MODERATE, STRONG
  • signal.confidence - Signal confidence: HIGH, MEDIUM, LOW
  • ma_avg - Contains all (EMA & SMA)
  • ema10.v - EMA Value
  • ema10.s - EMA Signal
  • ema10.n - EMA Name
  • ema10.score - EMA Signal strength score -100 to 100

Mini Sample Response

{
    "signal": {
        "summary": "WEAK_SELL",
        "score": -23,
        "confidence": "LOW",
        "trend": "WEAK",
        "volatility": "LOW"
    },
    "ma_avg": {
        "ema10": {
            "v": 1.16496,
            "s": "Neutral",
            "n": "EMA 10",
            "score": 0
        },
        "ema25": {
            "v": 1.16524,
            "s": "Neutral",
            "n": "EMA 25",
            "score": 0
        }
    }
}
✅ Best Practices::
  • Use higher period (100, 200) for trend analysis and smaller (10, 25) for entry/exit signals.
  • Combine EMA & SMA values with other technical indicators (RSI, MACD) for stronger signals.
  • Cache results for heavy requests to reduce API usage.
  • Always validate confidence & score before executing trades.

Technical Indicators API

The Technical Indicators API provides a comprehensive set of popular technical indicators and Oscillator indicators including RSI, MACD, Stochastic, and more. Get precise indicator values for your trading strategies and analysis.

📊 What You Get:

• Real-time calculation of top oscillators (RSI, MACD, Stochastic, ADX, ATR, Ultimate Oscillator, PSAR).
• Volatility insights including ATR % and Bollinger Band squeeze detection.
• Price action metrics such as candlestick body/shadow sizes and bullish/bearish pattern detection.
• Unified signal summary with trend, score, volatility, and confidence.

API Credit Usage: Requires Enterprise plan or higher — 1 credit counts for each 100 records returned (rounded up).
POST/forex/indicators
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symboloptionalstringCurrency pairs or asset symbols (comma-separated for multiple) more
periodoptionalstringDefault:1D, Candle Time Period more
exchangeoptionalstringSpecific exchange or data feed source name more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more
moreoptionalstringSupports bulk queries, pagination, and advanced filtering. Check our Advanced API.

API EXAMPLE

Multiple Symbols
https://api-v4.fcsapi.com/forex/indicators?symbol=EURUSD,GBPUSD,USDJPY&period=1D&access_key=API_KEY
Fetch indicators for multiple symbols in one request (daily candles).
POST JSON Example
https://api-v4.fcsapi.com/forex/indicators
POST Request - JSON Body:
{
    "type": "forex",
    "symbols": "EURUSD,USDJPY",
    "exchange": "FX",
    "period": "1d",
    "access_key": "API_KEY"
}

Response Format

Response Fields

  • summary - WEAK_BUY/STRONG_BUY/BUY and same for SELL
  • score - Strength score (-100 to 100)
    -100:StrongSell,+100 StrongBuy
  • confidence - HIGH, MEDIUM, LOW
  • trend - (Strong, Weak, Neutral)
  • volatility - Volatility metrics
  • volatility.atr_per - ATR % of price
  • volatility.true_range - ATR
  • volatility.level - Volatility classification
  • bollinger - Bollinger Bands analysis
  • bollinger.width_per - Band width %
  • bollinger.pos_per - Position band %
  • bollinger.middle - Middle line value
  • bollinger.squeeze - Squeeze detection
  • price_action - Candle/Pattern metrics
  • p.body_size - Candle body size
  • p.shadow_u - Upper shadow
  • p.shadow_l - Lower shadow
  • p.body_range_per - Body-to-range percentage
  • p.c_type - Type (Bullish/Bearish)
  • p.pattern - Pattern (Normal, Doji, etc.)
  • oscillators.rsi - Relative Strength Index (RSI)
  • rsi.v - Indicator Value
  • rsi.s - Indicator Signal
  • rsi.n - Indicator Name
  • rsi.scrore - Signal Strength
  • more - Same For all oscillators

Mini Sample Response

{
    "ticker": "FCM:EURUSD",
    "signal": {
        "summary": "BUY",
        "score": 48.6,
        "confidence": "LOW",
        "trend": "WEAK",
        "volatility": "LOW"
    },
    "indicators": {
        "volatility": {
            "atr_per": 0.663,
            "true_range": 0.00739,
            "level": "Low"
        },
        "bollinger": {
            "width_per": 1.097,
            "pos_per": 50.78,
            "middle": 1.16502,
            "squeeze": "Squeeze"
        },
        "price_action": {
            "body_size": 0.00203,
            "shadow_u": 0.00213,
            "shadow_l": 0.00323,
            "body_range_per": 27.47,
            "c_type": "Bullish",
            "pattern": "Normal"
        }
    },
    "oscillators": {
        "rsi": {
            "v": 49.2919,
            "s": "Neutral",
            "n": "RSI",
            "score": 0
        },
        "stoch": {
            "v": 43.9802,
            "s": "Sell",
            "n": "STOCH K%",
            "score": -25
        },
        "macd": {
            "v": 0.0008076,
            "s": "Sell",
            "n": "MACD Level",
            "score": -25
        }
    }
}
✅ Best Practices::
  • Use multiple indicators together (RSI + MACD + Bollinger) for stronger signals.
  • Do not rely on a single indicator for trading decisions.
  • Cache responses where possible to reduce credit usage.
  • Always check the signal confidence before applying indicators to live strategies.

Pivot Points API

The Pivot Points API delivers key support and resistance levels calculated from multiple pivot point methods. These levels are widely used in forex and stock markets for intraday trading, trend confirmation, and setting stop-loss or take-profit targets. Supported methods include Classic, Fibonacci, Camarilla, Woodie, and Demark.

📌 Features:

• Provides multiple pivot calculation methods in a single API call.
• Returns support (S1, S2, S3) and resistance (R1, R2, R3) levels.
• Includes Demark pivots (different calculation method).
• Useful for day traders and strategy automation.

API Credit Usage: Requires Enterprise plan or higher — 1 credit counts for each 100 records returned (rounded up).
POST/forex/pivot_points
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symboloptionalstringCurrency pairs or asset symbols (comma-separated for multiple) more
periodoptionalstringDefault:1D, Candle Time Period more
exchangeoptionalstringSpecific exchange or data feed source name more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more
moreoptionalstringSupports bulk queries, pagination, and advanced filtering. Check our Advanced API.

API EXAMPLE

Single Pair Pivot Points
https://api-v4.fcsapi.com/forex/pivot_points?symbol=EURUSD&period=1D&access_key=API_KEY
Returns daily pivot levels for EURUSD using all supported methods.
Specific Exchange Symbol
https://api-v4.fcsapi.com/forex/pivot_points?symbol=FX:GBPUSD&period=4h&access_key=API_KEY
Get 4-hour pivot levels for GBPUSD from FX exchange.
POST JSON Example
https://api-v4.fcsapi.com/forex/pivot_points
POST Request - JSON Body:
{
    "type": "forex",
    "symbols": "EURUSD,USDJPY",
    "exchange": "FX",
    "period": "1d",
    "access_key": "API_KEY"
}
✅ Best Practices::
  • Use pivot points for intraday support and resistance zones.
  • Combine pivot levels with oscillators (RSI, MACD) for confirmation.
  • Check multiple methods (Classic + Fibonacci + Camarilla) for stronger levels.
  • Always align pivot calculations with your trading timeframe (1h, 4h, 1D).

Performance Analysis API

Comprehensive performance analytics for currency pairs including historical highs/lows, percentage changes across multiple timeframes, and volatility metrics. Essential for fundamental analysis, portfolio management, and risk assessment of forex instruments.

📊 Performance Metrics:

•Historical Highs/Lows: 1M, 3M, 6M, 52W periods
•Performance Changes: 1W, 1M, 3M, 6M, YTD, 1Y, 5Y, All-time
•Volatility Analysis: Daily, Weekly, Monthly calculations
•All-time Records: Highest and lowest historical prices

API Credit Usage: Requires Enterprise plan or higher — 1 credit count for each 100 records returned (rounded up).
POST/forex/performance
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symboloptionalstringCurrency pairs or asset symbols (comma-separated for multiple) more
periodoptionalstringDefault:1D, Candle Time Period more
exchangeoptionalstringSpecific exchange or data feed source name more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more

API EXAMPLE

Complete Performance Analysis
https://api-v4.fcsapi.com/forex/performance?symbol=EURUSD&access_key=API_KEY
Get comprehensive performance data including all timeframe highs/lows, percentage changes, and volatility metrics
Exchange-Specific Performance
https://api-v4.fcsapi.com/forex/performance?exchange=FCM&access_key=API_KEY
Performance analysis from specific exchange data source
Multiple Symbols Analysis
https://api-v4.fcsapi.com/forex/performance?symbol=EURUSD,USDJPY,GBPUSD&access_key=API_KEY
Compare performance metrics across multiple currency pairs

Response Format

Response Fields

  • H1M/L1M - 1-month high / low prices
  • H3M/L3M - 3-month high / low prices
  • H6M/L6M - 6-month high / low prices
  • H52/L52 - 52-week high / low prices
  • HIGHEST/LOWEST - All-time high/low
  • PW - Performance - 1 week (%)
  • P1M - Performance - 1 month (%)
  • P3M - Performance - 3 months (%)
  • P6M - Performance - 6 months (%)
  • PY - Performance - year (%)
  • PYTD - Performance - Year to date
  • P5Y - Performance - 5 years (%)
  • PAll - Performance - All time (%)
  • voltD - Daily volatility %
  • voltW - Weekly volatility %
  • voltM - Monthly volatility %

Mini Sample Response

{
    "H1M": 1.17428,
    "L1M": 1.15276,
    "H3M": 1.18299,
    "L3M": 1.13717,
    "H6M": 1.18299,
    "L6M": 1.07332,
    "H52": 1.18299,
    "L52": 1.01775,
    "HIGHEST": 1.60381,
    "LOWEST": 0.95361,
    "PW": 0.0360736,
    "P1M": 0.527797,
    "P3M": 2.00122,
    "P6M": 8.00406,
    "PYTD": 12.489,
    "PY": 5.19943,
    "P5Y": -1.72676,
    "PAll": -1.78973,
    "voltD": 0.418582,
    "voltW": 0.567319,
    "voltM": 0.664304
}

Economic Calendar API

Get real-time economic events and indicators as they are announced. See the immediate impact of global markets, including past, forecast, and actual figures for major economic events.

Global Coverage:

Economic events from major economies including US, EU, UK, Japan, Canada, Australia and more. Events include GDP, inflation, employment, central bank decisions.

API Credit Usage: Requires Enterprise plan or higher — 1 credit count for each 50 events returned (rounded up).
POST/forex/economy_cal
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
symboloptionalstringFilter by currency: USD,EUR,GBP more
countryoptionalstringFilter by country: US,GB,DE more
fromoptionalunixTimeStart date/time for historical price data more
tooptionalunixTimeEnd date/time for historical data queries more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more

API EXAMPLE

Today's Events
https://api-v4.fcsapi.com/forex/economy_cal?access_key=API_KEY
USD Events Only
https://api-v4.fcsapi.com/forex/economy_cal?symbol=USD&access_key=API_KEY
Date Range
https://api-v4.fcsapi.com/forex/economy_cal?from=2025-01-01&to=2025-01-31&access_key=API_KEY
US Events Only
https://api-v4.fcsapi.com/forex/economy_cal?country=US&access_key=API_KEY

Response Format

Response Fields

  • event - Event code identifier
  • title - Event title/name
  • indicator - Economic indicator name
  • country - Country code
  • currency - Currency affected
  • importance - Event importance (0-3)
  • actual - Actual released value
  • forecast - Forecasted value
  • previous - Previous period value
  • date - Event date and time

Mini Sample Response

{
    "id": 326627,
    "event": "JPRSMM",
    "title": "Retail Sales MoM",
    "country": "JP",
    "currency": "JPY",
    "importance": 0,
    "actual": "",
    "forecast": "",
    "previous": -0.4,
    "date": "2023-08-30 23:50:00"
}

Search API

This API is like website search. You can search all currencies with similar names. It will search in currency full name and short name.

Search Features:

Search by symbol name, full name, exchange, or currency type. Supports pagination and filtering by exchange or type.

POST/forex/search
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
search*requiredstringSearch term more
exchangeoptionalstringFilter by exchange more
typeoptionalstringFilter by type: forex,crypto more
metaoptionalstring(0|1), Return profile meta info, It will call profile meta info api inside and +1 credit
pageoptionalnumberPage number for pagination more
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more

API EXAMPLE

Search EUR pairs
https://api-v4.fcsapi.com/forex/search?search=EUR&per_page=20&access_key=API_KEY
Search with Exchange Filter
https://api-v4.fcsapi.com/forex/search?search=USD&per_page=20&exchange=ONA&access_key=API_KEY

Response Format

Response Fields

  • id - Unique symbol ID
  • symbol - Symbol name
  • name - Full instrument name
  • type - Asset type (forex, crypto,coin,stock)
  • exchange - Exchange/provider name
  • country - Country code
  • bulk_support - Bulk API support (1/0)

Mini Sample Response

{
    "id": "1292",
    "symbol": "AUDCNH",
    "name": "Australian Dollar / Chinese Yuan",
    "type": "forex",
    "sub_type": "-",
    "currency": "CNH",
    "exchange": "CAPITALCOM",
    "country": "CN",
    "base_id": "AU",
    "bulk_support": "1"
}

Multiple URL Requests

When you need to access multiple API endpoints simultaneously, it can be time-consuming. You can write custom code to send parallel API requests or simply use this API for a faster solution. For example, if you're calling 10 APIs and each takes 2 seconds, that adds up to 20 seconds. This API can retrieve all 10 results in just 2 seconds!

Performance Boost:

Execute multiple API calls in parallel instead of sequential requests. Significantly reduces total response time for multiple endpoint calls.

API Credit Usage: Credit usage = sum of all individual API calls
POST/forex/multi_url
ParameterTypeDescription
access_key*requiredstringAuthentication API KEY more
baseoptionalstringCommon URL base
url[]*requiredstringArray of API endpoints
outputoptionalstringResponse format type (json, jsonp, serialize, csv, array) more

API EXAMPLE

Multiple Different APIs (get Latest/technical and history in 1 request)
https://api-v4.fcsapi.com/forex/multi_url
?url[1]=forex/latest?symbol=EURUSD
&url[2]=forex/history?symbol=EURUSD
&url[3]=forex/signals?symbol=EURUSD
&access_key=API_KEY
Multiple History
https://api-v4.fcsapi.com/forex/multi_url
?url[1]=/forex/history?symbol=USDJPY
&url[2]=/forex/history?symbol=EURUSD
&url[3]=/forex/history?symbol=NZDJPY
&period=1D
&access_key=API_KEY
With Base URL
https://api-v4.fcsapi.com/forex/multi_url?base=forex/latest?&url[eur]=symbol=EURUSD&url[gbp]=symbol=GBPUSD&access_key=API_KEY

Response Format

Response Fields

  • array_key - Response indexed by your provided array keys
  • status - Individual API call status
  • response - Individual API response data

Mini Sample Response

{
    "url1": [
        {
            "status": true,
            "response": []
        }
    ],
    "url2": [
        {
            "status": true,
            "response": []
        }
    ]
}
💡 Use Cases::
  • Dashboard data loading (prices + history + indicators)
  • Portfolio tracking (multiple symbols at once)
  • Comparative analysis (same data from different sources)
  • Bulk data processing for applications

Error Codes & Troubleshooting

Understanding API error responses and how to handle them properly. All errors include a status code, error message, and helpful details for debugging.

Common HTTP Status Codes

CodeMessageDescription
200SuccessRequest completed successfully
400Bad RequestInvalid parameters or malformed request
401UnauthorizedInvalid or missing API key
403ForbiddenAPI key doesn't have permission
429Rate LimitedToo many requests, slow down
500Server ErrorInternal server error
101Key ErrorRequired API KEY
102Account ErrorAccount not active/expire
112Data ErrorData not found
Error Response Format:

All errors return JSON with status:false, error code, descriptive message, and additional details when available.

🔧 Troubleshooting Tips::
  • Check API key is valid and active
  • Verify parameter names and values
  • Ensure you're not exceeding rate limits
  • Check symbol names are correctly formatted
  • Validate date formats in historical requests

Rate Limits & Usage

Understanding API usage limits, credit system, and best practices for efficient API usage. Different endpoints have different credit costs based on data complexity.

Plan Limits

PlanMonthly API requestsRequests per minute
Free5003
Starter15,00015
Professional40,00040
Enterprise500,000150
Corporate1,200,000250
Credit System:

Most endpoints cost 1 credit per request. Some endpoints (Latest, Profile, History) cost 1 credit per 100/300 records returned.

💡 Optimization Tips::
  • Use bulk requests for multiple symbols
  • Cache static data like profiles and symbol lists
  • Implement exponential backoff for rate limit errors
  • Monitor your usage in the dashboard
  • Use webhooks for real-time data when available

Code Examples & SDKs

Ready-to-use code examples in popular programming languages. Copy and paste these examples to quickly integrate FCS API into your application.

Choose your preferred programming language and copy the example code to get started quickly.

Available Languages

  • JavaScript: Fetch API, Axios, jQuery examples
  • Python: Requests library, asyncio examples
  • PHP: cURL, file_get_contents examples
  • Java: HttpURLConnection, OkHttp examples
  • C#: HttpClient examples
  • Node.js: HTTP, Axios examples
SDKs Available:

Official SDKs available for Python, JavaScript/Node.js, and PHP. Download from our GitHub repository or install via package managers.

curl  "https://api-v4.fcsapi.com/forex/latest?symbol=EURUSD&access_key=API_KEY"
✅ Best Practices::
  • Always handle API errors gracefully
  • Implement proper rate limiting in your code
  • Cache responses when appropriate
  • Use environment variables for API keys
  • Validate API responses before processing

Disclaimer & Terms of Use

Important information about data usage, accuracy, and limitations of the FCS API service.

Data Accuracy & Usage

Prices, Market trends and signals are not designed for trading purposes. These signals are only for educational or non-commercial purpose use. Data contained in this application/website is not necessarily real-time nor accurate and so prices may not be accurate and may differ from the actual market price, meaning prices are indicative and not appropriate for trading purposes.

Trading Disclaimer

Therefore we don't bear any responsibility for any trading losses you might incur as a result of using this data. Latest price minimum refresh rate is 30 seconds.

Data Sources

Our data is sourced from multiple financial institutions and exchanges. While we strive for accuracy, we cannot guarantee 100% accuracy or completeness of the data.

Important Notice:

This API is for informational and educational purposes only. Always consult with financial advisors before making investment decisions.

⚠️ Key Points::
  • Data is for informational purposes only
  • Not suitable for high-frequency trading
  • Prices may differ from real market prices
  • No liability for trading losses
  • Terms of service apply to all usage