{"schema":"qazvision-integration/v1","contract_version":"2026-08-09.1","service":{"name":"Qaz.Vision","base_url":"https://qaz.vision","api_base_url":"https://qaz.vision/api","legacy_api_base_url":"https://qaz.vision/api","canonical_api_base_url":"https://qaz.vision/api/v1","api_v1_base_url":"https://qaz.vision/api/v1","openapi":"https://qaz.vision/openapi.json","status":"https://qaz.vision/status.json"},"api_versioning":{"current":"v1","canonical_prefix":"/api/v1","legacy_prefix":"/api","legacy_status":"supported","lifecycle":"https://qaz.vision/api/v1/lifecycle.json","schemas":"https://qaz.vision/api/v1/schemas.json","changelog":"https://qaz.vision/api/v1/changelog.json"},"access":{"public_read":{"authentication":"none","cors":true,"published_records_only":true},"workspaces":{"authentication":"owner key","owner_header":"X-QazVision-Workspace-Owner","edit_header":"X-QazVision-Workspace-Token"},"public_write_api":false},"formats":["application/json","application/x-ndjson","application/tei+xml","application/atom+xml","application/ld+json","text/markdown","text/html"],"sync":{"bootstrap":{"manifest":"https://qaz.vision/api/snapshots/latest.json","payload":"https://qaz.vision/api/bulk/corpus.ndjson","verify_with":["revision","record_count","provenance.checksum","changes.cursor"]},"incremental":{"endpoint":"https://qaz.vision/api/changes.ndjson?cursor={cursor}","cursor_parameter":"cursor","next_cursor_header":"X-QazVision-Next-Cursor","operations":["upsert","unpublish","delete"],"tombstones_are_explicit":true},"cache":{"request_headers":["If-None-Match","If-Modified-Since"],"response_headers":["ETag","Last-Modified","X-QazVision-Corpus-Version","X-QazVision-Next-Cursor"]}},"endpoints":[{"id":"documents","method":"GET","path":"/api/documents","purpose":"Paged published document records","content_type":"application/json","v1_path":"/api/v1/documents"},{"id":"atoms","method":"GET","path":"/api/atoms","purpose":"Paged published thesis atoms with evidence fields","content_type":"application/json","v1_path":"/api/v1/atoms"},{"id":"quote_citation","method":"GET","path":"/api/atoms/{id}/citation.json","purpose":"One citation-ready quote passport with provenance and stable links","content_type":"application/json","v1_path":"/api/v1/atoms/{id}/citation.json"},{"id":"quote_markdown","method":"GET","path":"/api/atoms/{id}/citation.md","purpose":"Markdown attribution package for editorial systems","content_type":"text/markdown","v1_path":"/api/v1/atoms/{id}/citation.md"},{"id":"quote_embed","method":"GET","path":"/api/atoms/{id}/embed.html","purpose":"Standalone HTML quote block for preview and CMS workflows","content_type":"text/html","v1_path":"/api/v1/atoms/{id}/embed.html"},{"id":"corpus_bulk","method":"GET","path":"/api/bulk/corpus.ndjson","purpose":"Full corpus export; use include_text=true for RAG ingestion","content_type":"application/x-ndjson","v1_path":"/api/v1/bulk/corpus.ndjson"},{"id":"language_bulk","method":"GET","path":"/api/bulk/{ru|kk|en}/corpus.ndjson","purpose":"Language-specific corpus export with verified text","content_type":"application/x-ndjson","v1_path":"/api/v1/bulk/{ru|kk|en}/corpus.ndjson"},{"id":"changes","method":"GET","path":"/api/changes.ndjson","purpose":"Cursor-based incremental changes and tombstones","content_type":"application/x-ndjson","v1_path":"/api/v1/changes.ndjson"},{"id":"temporal_events","method":"GET","path":"/api/temporal/events.json","purpose":"Compact event stream for editorial CMS timelines","content_type":"application/json","v1_path":"/api/v1/temporal/events.json"},{"id":"tei","method":"GET","path":"/api/interop/tei.xml","purpose":"TEI/Parla-CLARIN aligned corpus","content_type":"application/tei+xml","v1_path":"/api/v1/interop/tei.xml"},{"id":"followthemoney","method":"GET","path":"/api/interop/followthemoney.ndjson","purpose":"Persons, positions, occupancies and document entities","content_type":"application/x-ndjson","v1_path":"/api/v1/interop/followthemoney.ndjson"},{"id":"status","method":"GET","path":"/status.json","purpose":"Freshness, pipeline health and bounded operational status","content_type":"application/json"},{"id":"catalog","method":"GET","path":"/api/catalog.json","purpose":"DCAT/JSON-LD catalog of datasets, distributions and revision links","content_type":"application/ld+json","v1_path":"/api/v1/catalog.json"},{"id":"source_registry","method":"GET","path":"/api/sources/catalog.json","purpose":"Registered source owners, canonical URLs, language coverage and freshness state","content_type":"application/json","v1_path":"/api/v1/sources/catalog.json"},{"id":"content_revisions","method":"GET","path":"/api/revisions/{entity_type}/{entity_code}.json","purpose":"Immutable content history, hashes and optional public payload for document or atom verification","content_type":"application/json","v1_path":"/api/v1/revisions/{entity_type}/{entity_code}.json"},{"id":"quality","method":"GET","path":"/api/quality.json","purpose":"Public-safe assistant regression status and measured quality-gate contract","content_type":"application/json","v1_path":"/api/v1/quality.json"},{"id":"typed_knowledge_graph","method":"GET","path":"/api/knowledge-graph.json","purpose":"Bounded typed graph of people, role periods, documents, statements, topics and sources with evidence-backed edges","content_type":"application/json","v1_path":"/api/v1/knowledge-graph.json"},{"id":"topic_trajectory","method":"GET","path":"/api/analytics/topic-trajectory.json","purpose":"Bounded topic-by-period aggregates for newsroom charts; descriptive counts only","content_type":"application/json","v1_path":"/api/v1/analytics/topic-trajectory.json"},{"id":"topic_trajectory_csv","method":"GET","path":"/api/analytics/topic-trajectory.csv","purpose":"Flat CSV export of the bounded topic trajectory with revision and methodology fields","content_type":"text/csv","v1_path":"/api/v1/analytics/topic-trajectory.csv"},{"id":"corpus_comparison","method":"GET","path":"/api/analytics/corpus-comparison.json","purpose":"Bounded comparison of two to four configured corpus slices with density and coverage fields","content_type":"application/json","v1_path":"/api/v1/analytics/corpus-comparison.json"},{"id":"corpus_comparison_csv","method":"GET","path":"/api/analytics/corpus-comparison.csv","purpose":"Flat CSV export of corpus comparison slices and leading topics","content_type":"text/csv","v1_path":"/api/v1/analytics/corpus-comparison.csv"},{"id":"api_lifecycle","method":"GET","path":"/api/lifecycle.json","v1_path":"/api/v1/lifecycle.json","purpose":"Version support, migration and deprecation policy","content_type":"application/json"},{"id":"api_schemas","method":"GET","path":"/api/schemas.json","v1_path":"/api/v1/schemas.json","purpose":"Stable core JSON Schemas and consumer examples","content_type":"application/json"},{"id":"api_changelog","method":"GET","path":"/api/changelog.json","v1_path":"/api/v1/changelog.json","purpose":"Non-breaking API contract changes and migration notes","content_type":"application/json"},{"id":"api_slo","method":"GET","path":"/api/slo.json","v1_path":"/api/v1/slo.json","purpose":"Public SLO, RPO, RTO targets with separated operational evidence","content_type":"application/json"},{"id":"translation_quality","method":"GET","path":"/api/translation-quality.json","v1_path":"/api/v1/translation-quality.json","purpose":"Pinned QazStack translation-quality vocabulary and QMT candidate-only boundary","content_type":"application/json"},{"id":"qazstack_consumer_contract","method":"GET","path":"/.well-known/qazstack-consumer.json","purpose":"Platform-compatible QazStack consumer receipt","content_type":"application/json"}],"data_policy":{"corpus_scope":"curated public corpus; not an exhaustive legal archive","citation_fields":["canonical_url","source_urls","doc_code","event_date","speaker","citation_passport"],"identity_fields":["person_speaker","role_corpus","role_period_id"],"evidence_rule":"editorial_fact is not a speaker position"},"documentation":{"api_page":"https://qaz.vision/api-i-dannye","publisher_page":"https://qaz.vision/dlya-redaktsiy","llms_guide":"https://qaz.vision/llms-full.txt","codebook":"https://qaz.vision/api/codebook.json","coverage":"https://qaz.vision/coverage.json","catalog":"https://qaz.vision/api/catalog.json","source_registry":"https://qaz.vision/api/sources/catalog.json","content_revisions":"https://qaz.vision/api/revisions/{entity_type}/{entity_code}.json","quality":"https://qaz.vision/api/quality.json","typed_knowledge_graph":"https://qaz.vision/api/knowledge-graph.json","topic_trajectory":"https://qaz.vision/api/analytics/topic-trajectory.json","topic_trajectory_csv":"https://qaz.vision/api/analytics/topic-trajectory.csv","corpus_comparison":"https://qaz.vision/api/analytics/corpus-comparison.json","corpus_comparison_csv":"https://qaz.vision/api/analytics/corpus-comparison.csv","lifecycle":"https://qaz.vision/api/v1/lifecycle.json","schemas":"https://qaz.vision/api/v1/schemas.json","changelog":"https://qaz.vision/api/v1/changelog.json","slo":"https://qaz.vision/api/v1/slo.json","qazstack_consumer_contract":"https://qaz.vision/.well-known/qazstack-consumer.json","translation_quality":"https://qaz.vision/api/v1/translation-quality.json"}}