{"data":{"name":"Cunicula research API","api_version":"1.3","openapi_url":"https://cunicula.com/api/v1/openapi.json","documentation_url":"https://cunicula.com/en/api-docs","research_connector":{"name":"cunicula","version":"1.0.0","url":"https://cunicula.com/api/mcp","documentation_url":"https://cunicula.com/en/api-docs#agent-connector","transport":"streamable_http","authentication":"none","read_only":true,"tools":["search","get_service","compare_services","get_article","get_sources"]},"machine_index_url":"https://cunicula.com/llms.txt","full_machine_index_url":"https://cunicula.com/llms-full.txt","machine_sitemap_url":"https://cunicula.com/api/sitemap-llm","endpoints":[{"id":"services","path":"/api/v1/services","shortLabel":"Provider records and scores","group":"directory","summary":"List provider data, including score inputs, card fees, and open measurements when recorded.","parameters":"category, kyc, country, jurisdiction, agentMoney, agentPrivacy, agentUsability, q, search, fields, limit, page, offset, sort, order","access":"public","kind":"dataset","dataset_ids":["service-records","card-fees"]},{"id":"service","path":"/api/v1/services/{slug}","shortLabel":"Single provider evidence record","group":"directory","summary":"Read one provider with score factors, citations, and field-level edit history.","parameters":"slug","access":"public","kind":"dataset","dataset_ids":["service-records","service-edit-history","card-fees"],"example_path":"/api/v1/services/privacy-com"},{"id":"articles","path":"/api/v1/articles","shortLabel":"Public article metadata list","group":"content","summary":"List public article metadata.","parameters":"tag, search, limit, offset, sort, order","access":"public","kind":"dataset","dataset_ids":["article-catalog"]},{"id":"article","path":"/api/v1/articles/{slug}","shortLabel":"Single public article record","group":"content","summary":"Read one public article record.","parameters":"slug","access":"public","kind":"dataset","dataset_ids":["article-catalog"],"example_path":"/api/v1/articles/agent-wallet-threat-model"},{"id":"search","path":"/api/v1/search","shortLabel":"Service and article search","group":"content","summary":"Search service fields and article titles, descriptions and tags","parameters":"q, type, fields, limit, page, offset","access":"public","kind":"derived","dataset_ids":["service-records","article-catalog"],"example_path":"/api/v1/search?q=monero"},{"id":"categories","path":"/api/v1/categories","shortLabel":"Category taxonomy and counts","group":"directory","summary":"Read the category taxonomy and provider counts.","parameters":"none","access":"public","kind":"derived","dataset_ids":["service-records"]},{"id":"stats","path":"/api/v1/stats","shortLabel":"Provider registry distributions","group":"directory","summary":"Read current provider registry distributions.","parameters":"none","access":"public","kind":"derived","dataset_ids":["service-records"]},{"id":"changes","path":"/api/v1/changes","shortLabel":"Dated provider data changes","group":"directory","summary":"Read dated KYC, provider and field-level edit-history changes.","parameters":"since, type","access":"public","kind":"dataset","dataset_ids":["kyc-changes","service-records","service-edit-history"]},{"id":"incidents","path":"/api/v1/incidents","shortLabel":"Service security and solvency incidents","group":"research-data","summary":"Read dated service security and solvency incidents.","parameters":"service, type, severity, status, corroboration, since","access":"public","kind":"dataset","dataset_ids":["service-incidents"]},{"id":"alpr","path":"/api/v1/alpr","shortLabel":"ALPR contract outcome records","group":"research-data","summary":"Read ALPR contract outcomes and their record basis.","parameters":"status, record_basis, since","access":"public","kind":"dataset","dataset_ids":["alpr-outcomes"]},{"id":"policy","path":"/api/v1/policy","shortLabel":"Policy measure status records","group":"research-data","summary":"Read dated legal status and present-day effects for tracked privacy measures.","parameters":"jurisdiction, topic, status, since","access":"public","kind":"dataset","dataset_ids":["policy-measures"]},{"id":"topics","path":"/api/v1/topics","shortLabel":"Privacy topics and articles","group":"content","summary":"Read practical privacy topics and their canonical public articles.","parameters":"id","access":"public","kind":"dataset","dataset_ids":["privacy-topics","article-catalog"]},{"id":"documents","path":"/api/v1/documents","shortLabel":"Provider legal document changes","group":"research-data","summary":"Read detected changes to provider legal documents with capture hashes.","parameters":"provider, doc_type, materiality, since, noteworthy, limit","access":"public","kind":"dataset","dataset_ids":["document-changes"]},{"id":"primary-sources","path":"/api/v1/primary-sources","shortLabel":"Claim passages and source records","group":"research-data","summary":"Read original documents and exact passages attached to published claims.","parameters":"none","access":"public","kind":"dataset","dataset_ids":["primary-sources"]},{"id":"glossary","path":"/api/v1/glossary","shortLabel":"Definitions and related articles","group":"content","summary":"Read house definitions and the public articles that apply them.","parameters":"slug, q, limit","access":"public","kind":"dataset","dataset_ids":["glossary"]},{"id":"map","path":"/api/v1/map","shortLabel":"Privacy map graph data","group":"research-data","summary":"Read the public privacy-map graph and its editorial relationships.","parameters":"type, node","access":"public","kind":"dataset","dataset_ids":["privacy-map"]},{"id":"acceptance","path":"/api/v1/acceptance","shortLabel":"Observed payment acceptance records","group":"directory","summary":"Read observed provider payment-acceptance records.","parameters":"slug, accepts","access":"public","kind":"dataset","dataset_ids":["payment-acceptance"]},{"id":"provider-analysis","path":"/api/v1/provider-analysis","shortLabel":"Sourced provider analysis records","group":"directory","summary":"Read sourced editorial provider analysis with review dates.","parameters":"slug, limit","access":"public","kind":"dataset","dataset_ids":["provider-analysis"]},{"id":"government-sources","path":"/api/v1/government-sources","shortLabel":"Normalized official publication records","group":"research-data","summary":"Read normalized official publications and connector evidence.","parameters":"jurisdiction, source, status, record_type, since","access":"public","kind":"dataset","dataset_ids":["government-sources"]},{"id":"ownership-graph","path":"/api/v1/ownership-graph","shortLabel":"Legal entity ownership links","group":"research-data","summary":"Read registry-sourced legal-entity ownership links.","parameters":"verification, kind, service","access":"public","kind":"dataset","dataset_ids":["ownership-graph"]},{"id":"agent-money-options","path":"/api/v1/agent-money/options","shortLabel":"Agent payment options and evidence","group":"agent-money","summary":"Read payment options with field-level evidence and canonical provider scores.","parameters":"provider, pathType, protocol, agentUsability, minPrivacyScore, fields","access":"public","kind":"dataset","dataset_ids":["agent-money-options","service-records"]},{"id":"agent-money-protocols","path":"/api/v1/agent-money/protocols","shortLabel":"Agent payment protocol risks","group":"agent-money","summary":"Read agent-payment protocol privacy and control risks.","parameters":"protocol, rail, loggingRisk, revocation, custody, minAutonomy, fields","access":"public","kind":"dataset","dataset_ids":["agent-money-protocols"]},{"id":"broker-fields","path":"/api/v1/data-broker-intelligence/fields","shortLabel":"Data broker field taxonomy","group":"research-data","summary":"Read the data-broker intelligence field taxonomy.","parameters":"field, publicSafe, fields","access":"public","kind":"dataset","dataset_ids":["data-broker-fields"]},{"id":"dataset","path":"/api/v1/dataset","shortLabel":"Dataset scope and release metadata","group":"meta","summary":"Read scope, public dataset owners, schema versions, licence, and signed-release metadata.","parameters":"none","access":"public","kind":"discovery","dataset_ids":[]},{"id":"current-dataset","path":"/api/v1/dataset/current","shortLabel":"Current canonical provider dataset","group":"meta","summary":"Read the current canonical provider dataset for signed-release comparison.","parameters":"none","access":"public","kind":"dataset","dataset_ids":["service-records"]},{"id":"capabilities","path":"/api/v1/capabilities","shortLabel":"API discovery and research guidance","group":"meta","summary":"Read API discovery and research guidance","parameters":"none","access":"public","kind":"discovery","dataset_ids":[]},{"id":"openapi","path":"/api/v1/openapi.json","shortLabel":"OpenAPI contract and schemas","group":"meta","summary":"Read the OpenAPI 3.1 contract.","parameters":"none","access":"public","kind":"discovery","dataset_ids":[]},{"id":"agent-money-export","path":"/api/v1/agent-money/export","shortLabel":"Licensed agent money buyer package","group":"agent-money","summary":"Download the licensed agent-money buyer package","parameters":"dataset, format, since","access":"licensed","kind":"dataset","dataset_ids":["service-records","agent-money-protocols"]}],"public_read_endpoints":["/api/v1/services","/api/v1/services/{slug}","/api/v1/articles","/api/v1/articles/{slug}","/api/v1/search","/api/v1/categories","/api/v1/stats","/api/v1/changes","/api/v1/incidents","/api/v1/alpr","/api/v1/policy","/api/v1/topics","/api/v1/documents","/api/v1/primary-sources","/api/v1/glossary","/api/v1/map","/api/v1/acceptance","/api/v1/provider-analysis","/api/v1/government-sources","/api/v1/ownership-graph","/api/v1/agent-money/options","/api/v1/agent-money/protocols","/api/v1/data-broker-intelligence/fields","/api/v1/dataset","/api/v1/dataset/current","/api/v1/capabilities","/api/v1/openapi.json"],"licensed_endpoints":[{"path":"/api/v1/agent-money/export","access":"request-only","checkout_available":false,"automatic_provisioning":false,"onboarding_url":"https://cunicula.com/en/disclosure#data-api-licensing","editorial_parity":"Licensed delivery changes packaging and limits only; public facts, warnings, evidence labels, risk labels, source links, and rankings remain identical."}],"public_compatibility_endpoints":[{"path":"/api/articles","methods":["GET","OPTIONS"],"summary":"Legacy unversioned public article metadata list.","status":"deprecated","replacement":"/api/v1/articles","removal":"no-removal-date","guarantees":"Existing response shape remains available until a separately announced migration."},{"path":"/api/directory","methods":["GET","OPTIONS"],"summary":"Directory hydration and legacy unversioned provider records.","status":"supported","replacement":"/api/v1/services","removal":"no-removal-date","guarantees":"The default full response and compact view remain stable while first-party directory pages depend on them."},{"path":"/api/logo","methods":["GET"],"summary":"Manifest-backed compatibility route for prepared local brand bytes.","status":"supported","replacement":"/brand-marks/{slug}.png or /brands/{slug}.{ext}","removal":"no-removal-date","guarantees":"Known domain and slug pairs resolve to the same prepared local asset bytes used by first-party pages."},{"path":"/api/score","methods":["GET","OPTIONS"],"summary":"Legacy unversioned provider score list.","status":"deprecated","replacement":"/api/v1/services","removal":"no-removal-date","guarantees":"The route remains available; deprecated numeric privacy and evidence fields keep their separately published sunset dates."},{"path":"/api/score/{slug}","methods":["GET","OPTIONS"],"summary":"Legacy unversioned single-provider score response.","status":"deprecated","replacement":"/api/v1/services/{slug}","removal":"no-removal-date","guarantees":"The route remains available; deprecated numeric privacy and evidence fields keep their separately published sunset dates."}],"score_contract":{"formula_version":"3.1","canonical":{"field":"canonical_score","version":"4.0","version_field":"score_version","status_field":"score_status","evidence_field":"score_evidence","breakdown_field":"score_breakdown","caps_field":"applied_caps","rationale_field":"score_rationale","scored_at_field":"last_scored","minimum":0,"maximum":100},"privacy":{"field":"privacy_score","version_field":"privacy_score_version","factors_field":"privacy_factors","minimum":0,"maximum":100,"status":"deprecated","deprecated_on":"2026-08-23","sunset_on":"2027-02-23","replacement_field":"privacy_observations","compatibility_only":true},"evidence":{"field":"evidence_confidence","version_field":"evidence_score_version","factors_field":"evidence_factors","minimum":0,"maximum":100,"status":"deprecated","deprecated_on":"2026-08-26","sunset_on":"2027-02-26","replacement_fields":["evidenceStatus","evidence_provenance","lastReviewed"],"compatibility_only":true},"risk":{"field":"riskLevel","values":["standard","caution","danger"],"numeric":false}},"public_datasets":[{"id":"service-records","source_paths":["data/services.json"],"schema_owner":"lib/service-schema.ts","endpoints":["/api/v1/services","/api/v1/services/{slug}","/api/v1/search","/api/v1/categories","/api/v1/stats","/api/v1/changes","/api/v1/dataset/current","/api/v1/agent-money/options","/api/v1/agent-money/export"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/directory","/en/provider/{slug}"],"reason":"Provider records are the primary reader product and need browsable collection and detail pages."},"feed":{"disposition":"not-applicable","paths":[],"reason":"The current snapshot is not an event stream; field-level changes are published by service-edit-history."}}},{"id":"service-edit-history","source_paths":["data/service-history.json"],"schema_owner":"lib/service-history.ts","endpoints":["/api/v1/services/{slug}","/api/v1/changes"],"reader_surfaces":{"page":{"disposition":"embedded","paths":["/en/provider/{slug}#record-history"],"reason":"History is useful alongside each provider’s evidence rather than as a duplicate catalog."},"feed":{"disposition":"dedicated","paths":["/edit-history/feed.xml"],"reason":"Dated field-level changes merit subscription without polling each provider page."}}},{"id":"card-fees","source_paths":["data/card-fees.json"],"schema_owner":"lib/card-fees.ts","endpoints":["/api/v1/services","/api/v1/services/{slug}"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/cards"],"reason":"Source-backed fee schedules power a checkable reader comparison with explicit unknown values."},"feed":{"disposition":"not-applicable","paths":[],"reason":"Fee schedules are point-in-time reviewed records, not a dated change log."}}},{"id":"article-catalog","source_paths":["data/article-catalog.json","data/articles","data/article-figures.json"],"schema_owner":"lib/articles.ts","endpoints":["/api/v1/articles","/api/v1/articles/{slug}","/api/v1/search","/api/v1/topics"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/articles"],"reason":"Article metadata owns a reader index and canonical article routes."},"feed":{"disposition":"dedicated","paths":["/feed.xml"],"reason":"New public articles are dated releases suitable for subscription."}}},{"id":"kyc-changes","source_paths":["data/kyc-changes.json"],"schema_owner":"lib/public-api/handlers/changes.ts","endpoints":["/api/v1/changes"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/kyc-tracker"],"reason":"Identity-policy changes need a dated, source-qualified tracker page."},"feed":{"disposition":"dedicated","paths":["/kyc-tracker/feed.xml"],"reason":"A service adding or dropping identity checks is a subscriber-relevant event."}}},{"id":"service-incidents","source_paths":["data/incidents.json"],"schema_owner":"lib/incidents.ts","endpoints":["/api/v1/incidents"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/incidents"],"reason":"Incident records need visible sourcing and corroboration context."},"feed":{"disposition":"dedicated","paths":["/incidents/feed.xml"],"reason":"Dated security and solvency incidents merit subscription."}}},{"id":"alpr-outcomes","source_paths":["data/alpr-tracker.json","data/alpr-legal-context.json"],"schema_owner":"lib/alpr-tracker.ts","endpoints":["/api/v1/alpr"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/alpr-tracker"],"reason":"Contract outcomes need a tracker that keeps primary-record and press-only bases visible."},"feed":{"disposition":"dedicated","paths":["/alpr-feed.xml"],"reason":"Dated contract outcomes merit subscription."}}},{"id":"policy-measures","source_paths":["data/policy-tracker.json"],"schema_owner":"lib/policy-tracker.ts","endpoints":["/api/v1/policy"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/policy-tracker"],"reason":"Legal status and present-day effect require a source-qualified tracker page."},"feed":{"disposition":"dedicated","paths":["/policy-tracker/feed.xml"],"reason":"Dated changes in legal status merit subscription."}}},{"id":"privacy-topics","source_paths":["lib/privacy-topics.ts"],"schema_owner":"lib/privacy-topics.ts","endpoints":["/api/v1/topics"],"reader_surfaces":{"page":{"disposition":"api-only","paths":[],"reason":"Topics are a machine grouping over canonical article pages, not a separate reader corpus."},"feed":{"disposition":"not-applicable","paths":[],"reason":"Topic definitions do not form a dated event stream."}}},{"id":"document-changes","source_paths":["data/doc-monitor.json","data/doc-sources.json"],"schema_owner":"lib/doc-changes.ts","endpoints":["/api/v1/documents"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/changes"],"reason":"Document diffs need visible capture coverage, hashes, and classifier limits."},"feed":{"disposition":"dedicated","paths":["/changes/feed.xml"],"reason":"Material dated document changes merit subscription."}}},{"id":"primary-sources","source_paths":["data/primary-sources.json"],"schema_owner":"lib/primary-sources.ts","endpoints":["/api/v1/primary-sources"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/primary-sources"],"reason":"Claim passages and document locators need a human-verifiable source index."},"feed":{"disposition":"not-applicable","paths":[],"reason":"Source records support claims but are not independently published events."}}},{"id":"glossary","source_paths":["data/glossary.json"],"schema_owner":"lib/glossary.ts","endpoints":["/api/v1/glossary"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/glossary","/en/glossary/{slug}"],"reason":"Definitions are reader content with collection and detail routes."},"feed":{"disposition":"not-applicable","paths":[],"reason":"Definitions are reference records rather than a dated event stream."}}},{"id":"privacy-map","source_paths":["data/privacy-map-nodes.json","data/privacy-map-edges.json"],"schema_owner":"lib/privacy-map.ts","endpoints":["/api/v1/map"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/map"],"reason":"The graph requires an interactive reader surface to make relationships inspectable."},"feed":{"disposition":"not-applicable","paths":[],"reason":"Editorial graph relationships are not a dated event stream."}}},{"id":"payment-acceptance","source_paths":["data/directory-acceptance.json"],"schema_owner":"lib/directory-acceptance.ts","endpoints":["/api/v1/acceptance"],"reader_surfaces":{"page":{"disposition":"embedded","paths":["/en/directory"],"reason":"Payment acceptance is a directory filter and record attribute, not a separate product."},"feed":{"disposition":"not-applicable","paths":[],"reason":"The evidence is one dated observation snapshot, not a sequence of acceptance events."}}},{"id":"provider-analysis","source_paths":["data/provider-analysis.json"],"schema_owner":"lib/provider-analysis.ts","endpoints":["/api/v1/provider-analysis"],"reader_surfaces":{"page":{"disposition":"embedded","paths":["/en/provider/{slug}"],"reason":"Editorial analysis belongs with the provider evidence record it interprets."},"feed":{"disposition":"not-applicable","paths":[],"reason":"Point-in-time analysis updates are covered by provider history rather than a duplicate feed."}}},{"id":"government-sources","source_paths":["data/government-sources.json"],"schema_owner":"lib/government-sources.ts","endpoints":["/api/v1/government-sources"],"reader_surfaces":{"page":{"disposition":"embedded","paths":["/en/policy-tracker#official-source-monitor"],"reason":"Connector receipts provide source context for the policy tracker instead of a duplicate page."},"feed":{"disposition":"dedicated","paths":["/government-sources/feed.xml"],"reason":"New complete records from official monitored sources merit subscription."}}},{"id":"ownership-graph","source_paths":["data/ownership-graph.json"],"schema_owner":"lib/ownership-graph.ts","endpoints":["/api/v1/ownership-graph"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/ownership-graph"],"reason":"Legal-entity links need a browsable graph with verification tiers visible."},"feed":{"disposition":"not-applicable","paths":[],"reason":"The graph is a reviewed snapshot rather than a dated filing stream."}}},{"id":"agent-money-options","source_paths":["data/agent-money-options.json"],"schema_owner":"lib/agent-money-options.ts","endpoints":["/api/v1/agent-money/options"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/agent-money"],"reason":"Option-level identity, control, and failure evidence needs a reader comparison surface."},"feed":{"disposition":"dedicated","paths":["/agent-money/feed.xml"],"reason":"Reviewed option changes and evidence links are already syndicated."}}},{"id":"agent-money-protocols","source_paths":["data/agent-payment-protocols.json"],"schema_owner":"lib/public-api/handlers/agent-money-protocols.ts","endpoints":["/api/v1/agent-money/protocols","/api/v1/agent-money/export"],"reader_surfaces":{"page":{"disposition":"embedded","paths":["/en/agent-money"],"reason":"Protocol risk records are one part of the wider agent-money decision surface."},"feed":{"disposition":"not-applicable","paths":[],"reason":"The protocol taxonomy is a reviewed reference table, not a dated event stream."}}},{"id":"data-broker-fields","source_paths":["data/data-broker-intelligence-fields.json"],"schema_owner":"lib/public-api/handlers/broker-fields.ts","endpoints":["/api/v1/data-broker-intelligence/fields"],"reader_surfaces":{"page":{"disposition":"dedicated","paths":["/en/articles/data-broker-intelligence-fields"],"reason":"The taxonomy has one canonical explanatory page with the field table in context."},"feed":{"disposition":"not-applicable","paths":[],"reason":"Taxonomy revisions are not event records; article publication remains on the article feed."}}}],"citation_guidance":"Cite the canonical details_url or article URL and inspect its source links before repeating time-sensitive claims. /api/v1/primary-sources resolves supported claims to exact document passages. /api/v1/services/{slug} returns a ready-made citation block; /en/cite and /api/v1/dataset carry the full licence and attribution terms.","license":{"id":"LicenseRef-Cunicula-Attribution-1.0","url":"https://cunicula.com/en/cite","dataset_descriptor_url":"https://cunicula.com/api/v1/dataset","signed_release_url":"https://cunicula.com/releases/2026-09-28/services.json","release_verification_url":"https://cunicula.com/en/methodology#signed-releases","schema_version":"1.1.0"},"freshness_guidance":"Use /api/v1/changes for dated KYC and provider changes. Check lastReviewed, changedAt, checkedAt, and kycLastChecked before using provider facts. Scores are editorial signals, not guarantees.","inventory":{"services":177,"articles":98,"article_lifecycle":{"public":98,"held":45,"retired":13,"route_bodies":156,"catalog_records":143},"latest_service_review":"2026-09-28","latest_article_review":"2026-09-21"}},"meta":{"total":1,"api_version":"1.3","powered_by":"cunicula.com","documentation_url":"https://cunicula.com/en/api-docs","machine_index_url":"https://cunicula.com/llms.txt","license":"LicenseRef-Cunicula-Attribution-1.0","license_url":"https://cunicula.com/en/cite","attribution":"Cunicula, \"{name}\", cunicula.com, reviewed {reviewed}, retrieved {retrieved}, {url}","cite_guide_url":"https://cunicula.com/en/cite","dataset_url":"https://cunicula.com/api/v1/dataset","schema_version":"1.1.0"}}