---
title: "Citable country answer for fetching agents"
method: GET
path: "/v1/answers/country/{country}"
tags: ["Public Data"]
---

# Citable country answer for fetching agents

`GET /v1/answers/country/{country}`

## Request

- Base URL: `https://api.voidly.ai`
- URL: `https://api.voidly.ai/v1/answers/country/{country}`
- Auth: none required

A short, dated, citable answer for one country: the censorship index score with its data time, the latest citable incidents (up to 5, newest first by start time) with readable IDs and links, and what the answer does not know. Plain text by default; add ?format=json for JSON (schema voidly.answer.country.v1). It includes no per-domain check and no risk score (where Voidly publishes one, it is an experimental current-regime score; shutdown-onset timing is unproven). A complete answer is cached at the edge for up to 300 seconds, and Cache-Control max-age counts down from its build time; an answer with one source unavailable is served with no-store. Only a cold build (an edge-cache miss) counts toward the per-IP limit of 30 per minute. Send If-None-Match with a prior ETag to get 304.

## Path parameters

- `country` string, required

## Query parameters

- `format` 'text' | 'json'

## Headers

- `If-None-Match` string

## Response `200`

Country answer.

- CountryAnswer: voidly.answer.country.v1
  - `schema` 'voidly.answer.country.v1', required
  - `answeredAt` string, date-time, required: When this answer was built.
  - `permalink` string, required
  - `country` object, required
    - `code` string
    - `name` string, nullable
  - `index` object, required: The censorship index row for the country. available false: the index could not be read. covered false: the index has no row for the country.
    - `available` boolean
    - `covered` boolean
    - `score` integer, nullable: 0 to 100.
    - `scoreScale` '0-100'
    - `level` string, nullable
    - `rank` integer, nullable
    - `rankedCountries` integer, nullable
    - `samples` integer, nullable: OONI measurements behind the score.
    - `lowConfidence` boolean, nullable
    - `lowConfidenceBelowSamples` integer, nullable
    - `windowDays` integer, nullable
    - `method` string, nullable
    - `scoringVersion` string, nullable
    - `dataAsOf` string, nullable: This country's last ingestion time in the index, not a measurement observation time.
    - `dataAsOfMeaning` string
    - `indexDataAsOf` string, nullable
    - `meaning` string
    - `source` string
    - `license` string, nullable
  - `incidents` object, required
    - `available` boolean
    - `citableTotal` integer, nullable
    - `shown` integer
    - `order` string
    - `items` object[]
      - `id` string: Readable incident ID, for example IR-2026-0142.
      - `title` string: Upstream text, flattened to one printable line of at most 160 characters.
      - `startTime` string, nullable
      - `endTime` string, nullable
      - `status` string, nullable
      - `type` 'censorship' | 'mixed'
      - `sources` string[]
      - `page` string
      - `api` string
      - `evidence` string
    - `meaning` string
    - `source` string
  - `notKnown` string[], required
  - `riskScore` object, required
    - `included` false
    - `note` string
    - `onsetSkill` string
  - `citation` string, required
  - `howToUse` string, required

## Other responses

- `304`: If-None-Match matched the current ETag. Empty body.
- `400`: INVALID_FORMAT: format is not text or json (plain text).
- `404`: COUNTRY_NOT_COVERED: the index has no row for the country and no citable incident is recorded for it. Plain text, or JSON with format=json. A code that is not two letters returns 404 NOT_FOUND.
- `429`: More than 30 cold builds (edge-cache misses) per minute from this client IP. JSON with Cache-Control no-store.
- `503`: SOURCES_UNAVAILABLE: neither the index nor the incident list could be read. Cache-Control no-store. Plain text, or JSON with format=json.

## Changes

- **2026-10-19** `c9aabd44d077`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/voidly/apis/voidly-api/changes/v1/answers/country/:country/get.md)

---

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