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 1 credits per 100 records returned. The Basic plan includes 15,000 credit 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.
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
Parameter
Type
Description
access_key
*required
string
Authentication 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.
type
optional
string
Data 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.
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
exchangeoptional
string
Specific 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.
searchoptional
string
Search term for filtering symbols or assets
Search within currency pair names or symbols. Accepts partial matches for quick symbol lookup. Supports MySQL FULLTEXT BOOLEAN MODE syntax. 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.
Supported Operators:
usd → finds any record contains "usd"
usd* → finds words starting with "usd"
USD +NZD → "USD" is optional, but "NZD" must be present
USD -NZD → find "USD" but exclude "NZD"
+USD +NZD → both "USD" and "NZD" must be present
USD|JPY|EUR → matches any of these words (OR search)
Operators mean:
+ → word must be present in the record (AND search)
- → word must NOT be present in the record (exclude)
* → wildcard, matches words starting with the given letters
| → OR search, matches any of the words separated by |
space → default is OR, matches any of the words
Note: In GET request or in browser url + symbol not work, use %2B instead
Use Case: Ideal for implementing an advanced search box (with autocomplete, filtering by keywords, or exclusions).
Performance Note: Ensure FULLTEXT index find search term from (symbol, name, currency).
get_profileoptional
boolean
FALSE|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.
countryoptional
string
Filter 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
amountoptional
numeric
Amount 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.
fromoptional
unixTime
Start 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 • Only can used by corporate plan, lower plan can use length parameter to control how many candles return
tooptional
unixTime
End 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. • Only can used by corporate plan, lower plan can use length parameter to control how many candles return
is_chartoptional
string
History 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
mergeoptional
string
Merge 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
filtersoptional
json
Advanced filtering using JSON object
Advanced JSON object for range-based filtering. Format: {"column_operator": value}. Operators:
_eq → Equal to (supports arrays/string)
_neq → Not equal to (supports arrays)
_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")
_contains → Partial match (supports arrays/string)
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 {"meta.type_neq":"cfd"} → Exclude CFD type pairs {"meta.name_contains":"USD"} → Pairs containing "USD" in name Response also includes "filters" → {"applied": {...}, "ignored": [...]} for debugging.
sort_byoptional
column_name
Sort 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.
pageoptional
number
Pagination page number
Pagination page number (default: 1)
per_pageoptional
number
Number of records per page
Number of records per page. Default: 200 | Max: 5000
outputoptional
string
Response 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
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).
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).
Response format type (json, jsonp, serialize, csv, array) more
syntheticoptional
string
0|1 - Enable synthetic/reverse pair lookup. If a symbol is not found in exchanges (e.g : EURUSD), the API will try the reverse pair (USDEUR) and return inverted prices. Default: 0
moreoptional
string
Also support sort_by, pagination,etc check our Advance api
LYDUSD does not exist in exchanges. With synthetic=1, the API finds USDLYD, inverts the prices (1/price), and returns it as LYDUSD. The response includes converted_from field showing the original source ticker.
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 (SILVER), Crude Oil (OSX / 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.
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.
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)
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.
Time period for OHLC data, e.g., 1D for 1 day more
exchangeoptional
string
multiple exchange name, If symbol not available auto choose other exchange more
crossratesoptional
string
0|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.
fallbackoptional
string
0|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.
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).
default: 300, 1-10000, If set 500, Will return 500 candles
pageoptional
number
Design to use in live chart when scroll more candles on chart more
is_chartoptional
string
Mostly 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
syntheticoptional
string
0|1 - Enable synthetic/reverse pair lookup. If symbol not found (e.g. LYDUSD), tries reverse pair (USDLYD) and returns inverted historical candles. Default: 0
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. Request specific currencies, or use symbol=all to download the complete currency profile list.
Note:
This API provides detailed information about individual currencies, not currency pairs. Use currency codes like EUR, USD, GBP.
Full List Mode: Leave symbol empty or set symbol=all to get every profile. In this mode type is required (forex or crypto, one type per request) and the response is paginated via page / per_page, with details in info.pagination (total_records, total_pages, has_next). Full list responses are cached for 24 hours.
API Credit Usage: 1 credit count for each 100 record returned (rounded up).
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
(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.
Search in names, Please check search api below for details more
syntheticoptional
string
0|1 - Enable synthetic/reverse pair lookup. If a requested symbol is not found (e.g. LYDUSD), tries the reverse pair (USDLYD) and returns inverted prices. Filters, sorting, and pagination apply to inverted values. Default: 0
outputoptional
string
Response 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
"synthetic":0, // 1=try find reverse if not found
"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"
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.
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"
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).
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).
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).
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.
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).
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
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
Code
Message
Description
200
Success
Request completed successfully
400
Bad Request
Invalid parameters or malformed request
401
Unauthorized
Invalid or missing API key
403
Forbidden
API key doesn't have permission
429
Rate Limited
Too many requests, slow down
500
Server Error
Internal server error
101
Key Error
Required API KEY
102
Account Error
Account not active/expire
112
Data Error
Data 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
Plan
Monthly API requests
Requests per minute
Free
500
3
Starter
10,000
15
Enterprise
200,000
40
Pro
600,000
100
Corporate
1,200,000
200
Ultra
2,700,000
1000
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.
require 'net/http'
require 'json'
url = URI("https://api-v4.fcsapi.com/forex/latest?symbol=ONA:EURUSD,BINANCE:BTCUSD&access_key=API_KEY")
res = Net::HTTP.get_response(url)
data = JSON.parse(res.body)
data["response"].each do |item|
puts "Symbol: #{item["symbol"]}"
end
✅ 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
Drive Back to last position
Ask FCSAPI AI
FCSAPI AI Beta
I build your FCS API for you — ask for an endpoint, code, or full integration.
Endpoints
Get Started
Code Examples
Build & Integrate
Docs & Help
Ask for any endpoint — I build the full request URL with parameters for you
Need code? I write ready-to-use PHP, JavaScript, Python & Node.js examples
I explain every response field and parameter so your integration just works
Enable Thinking mode for complex integrations — switch AI models anytime