Everything you need to integrate CCPAtlas into your analytics, risk, or research systems.
CCPAtlas is a REST API providing structured, queryable access to the CPMI-IOSCO Public Quantitative Disclosures (PQD) published every quarter by central counterparties (CCPs). It replaces the manual process of downloading Excel files from each CCP's website with a single, consistent, filterable interface across every major clearing house globally.
The API is designed for consumption by risk analytics platforms, credit systems, research teams, regulatory reporting engines, and internal dashboards. All data is normalised to a common schema, all monetary values can be converted at historical exchange rates, and every response is stable and versioned.
CCPAtlas serves a broad range of institutions that need reliable, comparable CCP disclosure data:
The Public Quantitative Disclosures (PQDs) are a standardised set of quantitative data points that central counterparties publish about their financial resources, risk exposures, margin, default funds, liquidity, and operational performance. They are the closest thing the cleared-derivatives market has to a common, comparable "financial statement" for CCPs.
In the aftermath of the 2007–09 financial crisis, global regulators moved large parts of the derivatives market into central clearing to reduce counterparty risk. That concentration made CCPs systemically important — and made transparency about their resilience essential. The foundations were laid by the CPSS-IOSCO Principles for Financial Market Infrastructures (PFMI), published in April 2012, which set out (in Principle 23) that CCPs should make relevant information publicly available.
To turn that principle into concrete, comparable numbers, the Committee on Payments and Market Infrastructures (CPMI) and the International Organization of Securities Commissions (IOSCO) published the Public quantitative disclosure standards for central counterparties on 26 February 2015. CCPs were encouraged to begin publishing the minimum set of disclosures by 1 January 2016 at the latest, updated quarterly. In November 2017, the industry body CCP Global released a harmonised PQD template that CCPs around the world adopted, further improving standardisation and comparability.
The framework continues to evolve. Following the March 2020 market turmoil and the subsequent review of margining practices, CPMI-IOSCO consulted during 2026 on additional disclosures relating to initial-margin transparency and responsiveness — meaning the PQD dataset is set to deepen further.
The PQDs are public — but they are scattered across dozens of CCP websites, published as individual spreadsheets in differing layouts, with inconsistent naming and no common query interface. Assembling a single, clean, comparable time series across every major CCP is a significant and recurring data-engineering task. CCPAtlas does exactly that: it consolidates, normalises, and serves the entire PQD universe through one consistent, versioned API — turning a fragmented public dataset into an analysis-ready resource.
Once you have an API key, you can query CCPAtlas in three steps:
X-API-Key header on every request.curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.ccpatlas.com/v1/data?ccp=ICC&disclosure=6.2&limit=5"
Prefer to explore without writing code? Try the Data Explorer — a web interface with cascading dropdowns and CSV export.
CCPAtlas provides complete coverage of the CPMI-IOSCO Public Quantitative Disclosure framework, spanning:
Every quarter, new disclosures published by CCPs are ingested, validated, and made available typically within two weeks of publication.
The 72 CCPs currently in CCPAtlas span every major clearing house globally. This includes derivatives clearing (LCH SwapClear, ICE Clear Credit, CME Clearing), equity and futures clearing (LCH Ltd, Eurex, Japan Securities Clearing), commodity clearing (ICE Clear Europe, EEX), and regional operators across all three regions.
Searchable, sortable table of every CCP with code, group, region, country, and city.
Programmatic access via GET /v1/ccps — see the API Reference for the full response schema.
Each of the 205 disclosure references maps to a specific quantitative measurement defined by the CPMI-IOSCO framework — for example, initial margin held by the CCP, default fund contributions, or liquid resources by tenor. References are organised into sections (4.x margin, 5.x collateral, 6.x default resources, 7.x credit risk, 15.x liquidity risk, 20.x collateral, etc).
Each reference includes:
6.2)6.2.15)All 205 references with titles, descriptions, and data types. Full-text search included.
Programmatic access via GET /v1/disclosures supports plain-English search by title or description.
Under the CPMI-IOSCO framework, CCPs publish PQD data quarterly with report dates on 31 March, 30 June, 30 September, and 31 December. Publications typically appear on each CCP's website 6-8 weeks after the reporting quarter.
Our data operations team runs the following process every quarter:
Typical end-to-end lead time from CCP publication to CCPAtlas availability is 10-14 days. If a CCP subsequently reissues a corrected quarter, we reload that quarter and notify affected clients.
Every /v1/data response includes the latest report_date per CCP in meta. You can also call GET /v1/periods for a summary of what quarters are available per CCP.
All endpoints live under a versioned path:
https://api.ccpatlas.com/v1/
The v1 version prefix is the API contract you integrate against.
Within v1, we never introduce breaking changes: new
endpoints, new response fields, and new optional parameters may be added, but
existing behaviour is stable. When we make breaking changes, they land under a
new prefix (v2) and v1 continues to serve as-is for
at least 12 months.
This is different from the service version (currently 1.0.0),
which identifies the deployed build. You can see the current service version by
calling GET /v1/health.
Every request to a /v1/ data endpoint must include your API key in
the X-API-Key HTTP header.
X-API-Key: YOUR_API_KEY
Sandbox keys are scoped for evaluation: they see a limited set of CCPs and a fixed
historical window, are restricted to JSON (no data export), and are subject to
lower usage caps. Responses carry meta.evaluation_only: true. They are
intended for assessing the API's shape and data quality, not for production or
commercial use.
Never commit them to git, never share them publicly, never expose them in browser-based client code. Use environment variables in server-side code and a secrets manager in production. If a key is exposed, contact us and we will revoke and reissue it immediately.
Your API key is provisioned against a tier that determines what data you can access and at what rate. CCPAtlas offers a free evaluation Sandbox tier alongside the paid Professional and Enterprise tiers.
| Feature | Sandbox (evaluation) | Professional | Enterprise |
|---|---|---|---|
| Purpose | 7-day trial / evaluation | Research teams & smaller institutions | Banks, regulators & central banks |
| Historical lookback | A fixed 2-quarter window (~1 year ago) | 3 years | 10 years |
| CCP coverage | Up to 5 selected CCPs | All 72 CCPs | All 72 CCPs |
| Disclosure granularity | High-level only | High-level only | High-level + detailed |
| Output formats | JSON only (no export) | JSON, CSV | JSON, CSV |
| Rate limit | 10 req/min | 60 req/min | 300 req/min |
| Usage caps | 100/day, 300 over the trial | 100,000 / month | Unmetered |
| Commercial use | No — evaluation only | Yes | Yes |
| Support | Best effort | Email support | Priority + SLA |
The API enforces tier restrictions server-side. If you request data outside
your tier's window or scope, the response is clamped (or narrowed to your
permitted CCPs) and a warning is returned in meta.warnings — you can
see exactly what was restricted. Sandbox responses are additionally marked with
meta.evaluation_only: true.
The Sandbox tier lets prospective clients try the API against a limited, representative slice of the data — a handful of CCPs across two historical quarters — before committing to a paid plan. It's approved on request for institutional evaluators. Contact ccpatlas@altairalang.com to arrange one.
The Professional and Sandbox tiers return high-level disclosures: the headline figures and aggregate totals for each CCP. The Enterprise tier additionally returns detailed disclosures: the granular breakdowns beneath those totals — per-clearing-service splits, per-currency and per-counterparty decompositions, model internals, back-testing distributions, and stress detail.
Aggregate totals remain visible at every tier. For example, a Professional client sees the total initial margin held by a CCP (the aggregate row); an Enterprise client additionally sees that total broken down by each individual clearing service. The headline is never hidden — only the decomposition is Enterprise-only.
The table below summarises, by PQD disclosure area, how many references are classified high-level (all tiers) versus detailed (Enterprise only). Every reference's exact classification is returned in the API and shown in the Data Explorer's column tools.
| Disclosure area | High-level (all tiers) | Detailed (Enterprise) |
|---|---|---|
| 4 — Default resources & credit risk | 16 | 20 |
| 5 — Collateral & haircuts | 0 | 6 |
| 6 — Margin | 3 | 39 |
| 7 — Liquidity risk | 17 | 2 |
| 12 — Settlement | 6 | 0 |
| 13 — Default management | 0 | 5 |
| 14 — Client positions | 4 | 0 |
| 15 — General business risk | 11 | 0 |
| 16 — Custody & investment | 22 | 4 |
| 17 — Operational risk | 2 | 3 |
| 18 — Participant & concentration | 9 | 9 |
| 19 — Tiered participation | 6 | 0 |
| 20 — FMI links | 5 | 9 |
| 23 — Volumes & values | 1 | 7 |
In short: Professional gives you the complete set of headline figures across all CCPs and disclosure areas; Enterprise adds the full granular decomposition for deep risk, margin, and financial analysis. To discuss which tier fits your use case, contact ccpatlas@altairalang.com.
/v1/data endpoint is where most work happens. Every filter is
an optional query parameter. Multiple filters combine with AND semantics.
| Parameter | Description | Example |
|---|---|---|
ccp | CCP code(s), comma-separated | ICC - Ice Clear Credit |
ccp_group | Parent group name | ICE |
region | Geographic region | Americas |
country | Country name | United States of America |
city | City | Chicago |
report_date_from | ISO date, inclusive | 2024-01-01 |
report_date_to | ISO date, inclusive | 2024-12-31 |
disclosure | Top-level section | 6.2 |
reference | Specific reference | 6.2.15 |
report_level | Reporting scope | Clearing_Service |
report_level_identifier | Sub reporting scope | ICC_CDS |
currency | Source currency of the value | USD |
search | Free-text search across disclosure titles/descriptions | default fund |
limit | Rows per page (max 10,000) | 500 |
offset | Rows to skip for pagination | 0 |
format | json (default) or csv | csv |
See the API Reference for the full parameter list and response schema.
Add output_currency=XXX to any /v1/data call to
convert monetary values in the response. This is one of CCPAtlas's core
analytical features.
GET /v1/data?ccp=ICC&disclosure=6.2&output_currency=USD
CCPAtlas uses the exchange rate as it stood on the row's report_date,
not today's rate. This matters more than it might look. If ICC reported EUR 10bn
of initial margin on 31 December 2020, the correct USD value is 10bn × the EUR/USD
rate on 31 December 2020, not today's rate. Using today's rate to convert
historical values silently produces wrong time-series and misleads regulatory
analysis.
Every converted row includes three additional fields alongside the original value:
converted_value — the value in your target currencyfx_rate — the exact rate used for that rowfx_rate_date — the date that rate was sourced from (usually equals report_date; may differ if that fell on a weekend)The original value and currency fields are preserved unchanged.
Some rows have no source currency to convert (a percentage, a text field, a date). These are returned unchanged with converted_value: null. The meta.warnings array will note this if it happens.
Call GET /v1/currencies to list every currency you can pass to output_currency. All ECB-published currencies are supported (~30 including USD, EUR, GBP, JPY, CHF, CAD, AUD, NZD, NOK, SEK, DKK, PLN, CZK, HUF, and more).
JSON responses have a consistent envelope:
{
"meta": {
"request_id": "abc-...",
"timestamp": "2026-07-17T12:00:00Z",
"tier": "enterprise",
"filters_applied": { ... },
"pagination": { "limit": 500, "offset": 0, "total": 1234, "returned": 500 },
"fx": { ... },
"warnings": []
},
"data": [
{
"ccp_code": "ICC",
"ccp_name": "ICE Clear Credit",
"report_date": "2026-03-31",
"reference": "6.2.15",
"value": 15234000000.00,
"currency": "USD",
...
},
...
]
}
The meta object gives you everything about how your query was processed — including any tier clamping or FX warnings. The data array contains the rows themselves.
Use limit (max 10,000) and offset to page through
large result sets. The response's meta.pagination.next_offset
tells you when to stop:
let offset = 0;
while (true) {
const r = await fetch(`${API}/v1/data?limit=1000&offset=${offset}`, ...);
const d = await r.json();
process(d.data);
if (d.meta.pagination.next_offset === null) break;
offset = d.meta.pagination.next_offset;
}
For bulk extractions, use format=csv with a large
limit instead — streaming CSV is much more efficient than
paged JSON.
Errors follow RFC 7807 (Problem Details for HTTP APIs). Every error response has this shape:
{
"type": "https://ccpatlas.com/errors/invalid-currency",
"title": "Invalid output_currency",
"status": 400,
"detail": "'ZZZ' is not a supported conversion currency. See /v1/currencies.",
"instance": "/v1/data"
}
Common status codes:
200 — Success400 — Bad request (invalid parameter)401 — Missing or invalid API key403 — Authenticated but tier restriction blocks the request404 — Endpoint or resource not found422 — Request validation failed (with a per-field breakdown)429 — Rate limit exceeded, retry after the delay in the header500 — Something went wrong on our endEvery response carries an X-Request-ID header. Include it when contacting support — we use it to trace the exact request in our logs.
Rate limits and usage caps are enforced per organisation, across all of that organisation's keys:
When you exceed a per-minute, daily, or monthly limit, the response is
429 Too Many Requests with a Retry-After header telling
you how long to wait. Well-behaved clients back off exponentially rather than
retrying immediately. On the Sandbox tier, once the total evaluation budget is
exhausted the response is 403 — at that point, contact us to move to
a paid plan.
Every response also carries rate-limit headers
(X-RateLimit-Limit, X-RateLimit-Remaining,
X-RateLimit-Reset) so you can track your usage programmatically.
CCPAtlas is built for institutions with strict information security requirements. Every layer of the stack has been designed with defensible controls, and we can support formal due diligence questionnaires from procurement and information security teams.
We can complete standard due diligence questionnaires (SIG, CAIQ, custom) for prospective enterprise clients. Contact ccpatlas@altairalang.com to request.
The full endpoint reference lives at API Reference. Here's the summary:
import os, requests
resp = requests.get(
"https://api.ccpatlas.com/v1/data",
headers={"X-API-Key": os.environ["CCPATLAS_KEY"]},
params={
"ccp_group": "ICE",
"disclosure": "6.2",
"report_date_from": "2024-01-01",
"output_currency": "USD",
"limit": 500,
},
timeout=30,
)
resp.raise_for_status()
data = resp.json()
print(f"{data['meta']['pagination']['total']} rows available")
for row in data["data"]:
print(row["ccp_code"], row["report_date"], row["reference"], row["converted_value"])
const params = new URLSearchParams({
ccp_group: "ICE",
disclosure: "6.2",
output_currency: "USD",
limit: "500",
});
const r = await fetch(`https://api.ccpatlas.com/v1/data?${params}`, {
headers: { "X-API-Key": process.env.CCPATLAS_KEY },
});
if (!r.ok) throw new Error(`${r.status} ${await r.text()}`);
const { meta, data } = await r.json();
console.log(`${meta.pagination.total} rows available`);
curl -H "X-API-Key: $CCPATLAS_KEY" \
"https://api.ccpatlas.com/v1/data?ccp_group=ICE&format=csv&limit=10000" \
-o ice_disclosures.csv
GET /v1/disclosures?search=default+fund
Returns every reference whose title or description mentions default fund, with data type and granularity metadata.
Questions, feature requests, or issues — email
ccpatlas@altairalang.com and
include the X-Request-ID from your response if reporting a problem.
Enterprise clients additionally have access to priority support with scheduled Microsoft Teams calls and named support contacts. Response-time targets and escalation details are set out in our Support & Service Level Statement and provided at onboarding.