---
title: "Any dataset in one layout: entity + fact + provenance."
method: GET
path: "/v1/shared/facts"
---

# Any dataset in one layout: entity + fact + provenance.

`GET /v1/shared/facts`

## Request

- Base URL: `https://api.certvas.com`
- URL: `https://api.certvas.com/v1/shared/facts`
- Auth: API key in header `X-API-Key`

The shared shape the Python SDK builds from the release (`certvas.shared`), served: each row is one fact (fact_id, entity_id, entity_name, country_iso3, dataset, measure, value, unit, period_end, period_type, available_at, vintage, provenance_id) with its provenance (source_ref, license_class, extraction_confidence, observed_at, method). Pass exactly one of `entity_id` or `country`. The latest vintage of each value is served; award facts and every macro vintage are in the bulk release. Column reference: https://github.com/KingMandase/dataco/blob/main/docs/data/SHARED_SHAPE.md

## Query parameters

- `entity_id` string
- `country` string
- `dataset` 'AF-FUND' | 'AF-TENDER' | 'AF-MACRO'
- `as_of` string, date
- `measure` string
- `limit` integer

## Response `200`

Shared-shape facts with their provenance.

- object

## Other responses

- `400`: A parameter is malformed or missing; the body names it.
- `401`: Missing or invalid API key.
- `402`: A sample-tier key asked for more than the sample tier serves: more rows than its cap, or a lookup in the paid crosswalk. The body and the X-Upgrade-URL header carry the upgrade link. Omit `limit` for the free preview.
- `429`: Rate limited: the per-minute burst limit or the monthly cap was reached.
- `503`: The key store is temporarily unavailable; retry.

---

[API](https://skmtc.dev/certvas/apis/certvas-api.md) · [All operations](https://skmtc.dev/certvas/apis/certvas-api/llms.txt) · [OpenAPI document](https://skmtc.dev/certvas/apis/certvas-api/revisions/f3711b28e0d5?raw)
