Data and integrations
API and data
A working entry point for JSON, exports, and machine access.
JSON, snapshots, NDJSON, and working entry points
The public layer separates read routes, machine endpoints for integrations, and bulk exports for external indexes and RAG systems.
Full reference
Integration contract and formats
The complete working matrix of endpoints, bulk exports, fields, provenance, and formats.
Live sections and data entry points
API endpoint matrix
| Task | Endpoint | Format | When to use |
|---|---|---|---|
| Document list | /api/documents |
JSON | When you need a filterable material list by speaker, year, tag, or search |
| Document card | /api/documents/{id} |
JSON | When you need the full metadata layer for one document |
| Theses and quotes | /api/atoms |
JSON | When you need the atomized meaning layer with blocks and tags |
| Single-quote passport | /api/atoms/{id}/citation.json |
JSON | When a frontend or CMS needs a quote, source, evidence, and stable links in one record |
| Ready site block | /api/atoms/{id}/embed.html |
HTML | When an editorial team embeds a quote on an external frontend without manual markup |
| Text attribution | /api/atoms/{id}/citation.md |
Markdown | When a record moves into a note, newsletter, editorial draft, or Git environment |
| Timeline | /api/timeline |
JSON | When you need a chronological feed without the full corpus |
| Reference data | /api/tags, /api/theme-blocks, /api/sources |
JSON | When you need navigation, filters, and a matching layer |
| Aggregates and status | /api/stats, /status.json |
JSON | When you need a summary, status check, or external freshness check |
| Corpus comparison | /api/analytics/corpus-comparison.json, CSV |
JSON/CSV | When you need to compare volume, thesis density, coverage, and leading topics across two to four slices |
Bulk and AI exports
| Layer | Endpoint | Purpose | Note |
|---|---|---|---|
| AI manifest | /ai.json |
Entry point for agentic and language systems | Contains rules, freshness snapshot, bulk exports, and discovery metadata |
| Bulk corpus | /api/bulk/corpus.ndjson |
Full NDJSON corpus export | Preferred stream for RAG and reindexing |
| Language slices | /api/bulk/ru/corpus.ndjson, /api/bulk/kk/corpus.ndjson, /api/bulk/en/corpus.ndjson |
Language-specific slices | Useful when you do not need the full multilingual layer |
| Documents / theses | /api/bulk/documents.ndjson, /api/bulk/atoms.ndjson |
Separate streaming exports | Useful for selective processing pipelines |
| Snapshot | /api/snapshots/latest.json |
Corpus version control | Needed for safe reindexing without drift |
| Corpus freshness | /status.json |
The last published material date for each catalog view | catalog_freshness is separate from official-source completeness checks |
| Entities and annotation codebook | /api/identities.json, /api/codebook.json |
Semantics of people, roles, and evidence types | Use before merging periods and interpreting theses |
| Research standards | /api/interop/tei.xml, /api/interop/followthemoney.ndjson |
TEI P5 / Parla-CLARIN corpus and FollowTheMoney entities | For corpus linguistics, office-period analysis, and merging external research datasets |
| Release identifier | /api/release.json |
Verify the code and schema actually deployed | Check the commit, image identifier, and corpus revision before diagnosing |
Key fields
speaker, person_speaker, role_corpus, source_type, theme_block_code, tags, is_key_quote, event_date, canonical_url, source_urls.
Base speaker values in the API: TOKAEV, KARIN, ASHIMBAYEV, BEKTENOV, DADEBAY, KOSHANOV. Ministerial portfolios use separate role values such as ZHUMANGARIN-MINISTER; the current full list is published in ai.json and identities.json.
Common aliases are also accepted: tokayev, president, prezident, karin, ashimbaev, ashimbayev, bektenov, prime_minister, dadebay, ap, koshanov, mazhilis. The public frontend also provides role and personal corpus routes: premiery, bektenov, ap, dadebay, mazhilis, koshanov, plus the ministerstva catalog with 21 office and personal slices. In machine exports, speaker identifies a specific office period, person_speaker joins all offices of one person, and role_corpus identifies an institutional slice when one exists.
Latest confirmed documents
Data provenance and API boundaries
The API reflects the current published corpus snapshot. It is not a complete archive of all external mentions and interpretations.
Output formats
Use formatted JSON for browser viewing. JSON Use JSON download for a file export. JSON For AI indexing and RAG, use the bulk NDJSON corpus and language slices NDJSON, RU, KK, EN , separate document and thesis exports, or the snapshot manifest. Snapshot