{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"69c37426-3c42-4c8d-ac62-a653189be7cb","name":"NCFX Data Services – API Documentation Overview","description":"Welcome to the documentation for **NCFX’s data services**. This guide is your central reference for everything you need to understand, authenticate, and integrate with our APIs. You can execute all APIs **(excluding FIX and WebSockets)** directly in Postman.\n\n---\n\n## 🔒 Access & Permissions\n\n- **Services are licensed per customer**, based on your agreement.\n    \n- Usage may be limited by:\n    \n    - Allowed instruments or groups\n        \n    - Monthly call quotas\n        \n    - Bulk data volume caps (in GB)\n        \n    - Time window limits for time-series APIs\n        \n    - Earliest available date for historical queries\n        \n- **Contact your account manager** for details about your limits.\n    \n\nAccess is granted per:\n\n- **Organization** (shared pool)\n    \n- **Individual or machine accounts** (personal quotas)\n    \n\nNote: **Personal usage** consumes individual quotas before organizational ones.\n\n---\n\n## 🔐 Authentication & Authorization\n\nAll data APIs (except general reference endpoints) require authentication. Supported methods vary by service:\n\n| Service Type | Authentication Method |\n| --- | --- |\n| **Fiat & Crypto APIs** | OAuth 2.0 (preferred) |\n| **API & Fiat WebSockets** | OAuth 2.0 |\n| **FIX Services** | Username/password |\n| **Crypto WebSockets** | Username/password challenge on connect |\n| **SFTP** | Username/password → PEM file |\n\nA single set of NCFX credentials grants access to all services (including visualizations).\n\nFor **TCA services**, additional **MFA or enterprise SSO** may apply.\n\n---\n\n### OAuth 2.0 (API & Fiat / Crypto)\n\n1. Use your **username/password** to obtain an `access_token` (+ `refresh_token`) via the Token API.\n    \n2. **Access tokens** last 1 hour; **refresh tokens** are valid for 1 year.\n    \n3. makefileCopyEditAuthorization: Bearer\n    \n4. Refresh expiring tokens using the `refresh_token` endpoint.\n    \n\nFor simpler workflows, NCFX supports **API keys** as an alternative to OAuth. To note, these are:\n\n- Tied to your username/password\n    \n- Invalidated upon password reset\n    \n\nRequest an API key via your account manager\n\n---\n\n### API Keys\n\nIdeal for systems that cannot manage OAuth tokens. You can authenticate using **either** of:\n\n```\nAuthorization: Apikey <your-api-key>\n\n ```\n\nor\n\n```\nx-api-key: <your-api-key>\n\n ```\n\nIf you need an API key, please reach out to your account manager.\n\n---\n\n### Basic Authentication (Username/Password)\n\nSupported for services like FIX and SFTP, also supported (as below) for APIs.\n\nTo use for API access:\n\n1. Encode `username:password` in Base64.\n    \n2. `Authorization: Basic`\n    \n\n---\n\n### 🔐 Important Security Notes\n\n- NCFX does **not enforce forced password rotation**—change your password if you suspect a security issue.\n    \n- Changing your password **automatically invalidates your API key**.\n    \n- Credentials should **never be shared** or exposed publicly.\n    \n\n---\n\n## 🧪 Using APIs in Postman\n\nNCFX APIs can be imported and executed in Postman:\n\n**Getting started:**\n\n1. Sign in or sign up at [postman.com](https://www.postman.com).\n    \n2. Click **“Run in Postman”** in this documentation.\n    \n3. Select a workspace (e.g. _My Workspace_) and import the collection.\n    \n\n**Configure credentials:**\n\n1. In **NCFX data services** collection, open the **Variables** tab:\n    \n    - Set `username` & `password` —or— `apikey` in the **Current Value** column.\n        \n2. Under the **API** folder, open the **Authorization** tab:\n    \n    - **OAuth 2.0**: Click **Get New Access Token**, then **Use Token**\n        \n    - `x-api-key: {{apikey}}`\n        \n\nYou're now ready to interact with licensed APIs.\n\n**Making a request:**\n\n1. Navigate the API tree to your endpoint (e.g. `fiat → live → midrate → v1 → strict`)\n    \n2. Click **Params**, enter your parameter values (helpful examples appear on the right)\n    \n3. Click **Send** to run the request\n    \n\n---\n\n## 🔧 Using APIs in Other Tools\n\nWhen building your own integration, remember:\n\n- **OAuth 2.0 APIs** require valid `Authorization: Bearer`\n    \n- **API Key** use `Authorization: Apikey` or `x-api-key:`\n    \n- **Basic Auth** uses `Authorization: Basic`\n    \n\nAuthentication examples are in **Authentication → Authenticating to an API**.\n\n> ⚠️ Most other code samples omit authentication headers for readability—you must include them in real requests. \n  \n\n---\n\n### ⚙️ Platform Considerations\n\n- You can switch the language displayed in examples using the language selector, and change OS settings using the gear icon to tailor the examples.\n    \n\n---\n\n## 🧱 Documentation Structure\n\n1. **API**\n    \n    - Organized by **Crypto / Fiat** and **Live / Historic**\n        \n    - All endpoints work directly in Postman\n        \n    - Returns JSON, except Bulk APIs (CSV delivered via GZIP + SFTP)\n        \n2. **FIX**\n    \n    - Protocol-level descriptions only\n        \n3. **WebSockets**\n    \n    - Live-streaming setup for Crypto and Fiat (documentation only)\n        \n\nAuthentication configured at the collection level applies to all API requests.\n\n---\n\n## ⏰ Time Formats & URL Styles\n\n- `yyyy-mm-ddHH:mm:ss.000`\n    \n- **Query string routes** support:\n    \n    - ISO-8601, RFC 2822, ATOM, COOKIE, Unix Epoch\n        \n    - `yyyy-mm-dd hh:mm:ss.000 (UTC)`\n        \n- All data uses **UTC timestamps**\n    \n    - Daily OHLC values are calculated at **5 PM New York** (as the reference cutoff)\n        \n\n---\n\n## 📈 Defining a Fiat Currency Instrument\n\nTo request FX rates, specify these fields:\n\n- `pair` (e.g. `USDJPY`)\n    \n- `tenor` or specific date\n    \n- `type` (`Deliverable` or `NDF`)\n    \n- `route` (`Observed` or `Crossed`)\n    \n\nUse the **Fiat Reference API** (found under `API → fiat → general`) to:\n\n- Discover available pairs and NDF flags\n    \n- Learn which currencies are observed vs crossed\n    \n- Understand rate deliverability\n    \n\nMost APIs annotate each rate with **deliverable status** and **route**.\n\nSome endpoints don’t require `type` or `route`—they assume the most common/“default” type and return annotated data accordingly.\n\n---\n\n## 🔁 Cross Rates & Spot Date Conventions\n\n- **Crosses**: Used for currency pairs lacking direct market liquidity; calculated via liquid paths (e.g. through USD/EUR).\n    \n- **Spot date calculations**:\n    \n    - Based on settlement conventions of the later-settling currency\n        \n    - NDF deliverable pairs may have different adjustments\n        \n\n---\n\n## 🏛️ Benchmarks & Benchmark Windows\n\n- NCFX is a regulated Benchmark Administrator.\n    \n- Some data types are defined as **benchmarks**, flagged in responses.\n    \n- **Benchmark windows** indicate reliability duration (usually daily windows).\n    \n- Windows are defined in local timezones.\n    \n- Details are available in the **Fiat Reference API**.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"45195119","collectionId":"69c37426-3c42-4c8d-ac62-a653189be7cb","publishedId":"2sB2qai1it","public":true,"publicUrl":"https://docs.newchangefx.com","privateUrl":"https://go.postman.co/documentation/45195119-69c37426-3c42-4c8d-ac62-a653189be7cb","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2025-05-22T14:00:25.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[{"name":"Prod","id":"f2b51c3e-9900-4581-b7d3-be69ef75928e","owner":"26896378","values":[{"key":"TCA_API_ENDPOINT","value":"https://tca.api.newchangefx.com","enabled":true,"type":"default"},{"key":"FIAT_API_ENDPOINT","value":"https://fiat.api.newchangefx.com","enabled":true,"type":"default"},{"key":"FIAT_WS_ENDPOINT","value":"wss://fiat.ws.newchangefx.com","enabled":true,"type":"default"},{"key":"CRYPTO_API_ENDPOINT","value":"https://cryptofeed.api.newchangefx.com","enabled":true,"type":"default"},{"key":"CRYPTO_WS_ENDPOINT","value":"wss://cryptofeed.ws.newchangefx.com","enabled":true,"type":"default"},{"key":"AUTH_ENDPOINT","value":"https://auth.newchangefx.com","enabled":true,"type":"default"},{"key":"AUTH_USERNAME","value":"","enabled":true,"type":"default"},{"key":"AUTH_PASSWORD","value":"","enabled":true,"type":"default"},{"key":"AUTH_APIKEY","value":"","enabled":true,"type":"default"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":"https://newchangefx.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"Prod","value":"26896378-f2b51c3e-9900-4581-b7d3-be69ef75928e"}],"canonicalUrl":"https://docs.newchangefx.com/view/metadata/2sB2qai1it"}