---
title: "Detect active censorship"
method: POST
path: "/hydra/v1/detect"
tags: ["Detection"]
---

# Detect active censorship

`POST /hydra/v1/detect`

Is a domain blocked in a country, right now? Grounded in real per-domain OONI + CensoredPlanet measurements. Returns status (blocked/accessible/unknown), evidence count, blocking method, and calibrated confidence. Unmeasured domains return status=unknown rather than a guess. For many domains use POST /hydra/v1/detect/batch. Requires an API key (free at /api-keys; hydra_demo_key works for testing).

## Request body

- DetectRequest
  - `country` string, required — ISO 3166-1 alpha-2 country code
  - `target` string, required — Domain to check

## Response `200`

Detection result

- DetectResponse
  - `country` string, required
  - `target` string, required
  - `status` 'blocked' | 'accessible' | 'unknown', required — unknown = no per-domain measurements (NOT confirmed-accessible)
  - `blocked` boolean, required — True only when status=blocked; check status for unknown
  - `confidence` number, required — 0 when unmeasured
  - `basis` 'measured' | 'known_list' | 'unmeasured', required
  - `measured` boolean
  - `evidenceCount` integer — underlying per-domain measurements
  - `blockingMethod` unknown
  - `methods` string[]
  - `sources` string[]
  - `lastChecked` string, date-time
  - `permalink` string

## Other responses

- `400` — Bad request
- `401` — Invalid or missing API key

---

[API](https://skmtc.net/voidly/apis/voidly-api.md) · [All operations](https://skmtc.net/voidly/apis/voidly-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voidly/voidly-api/revisions/decbe6fd40a8/schema)
