---
title: "Run a public document verification"
method: POST
path: "/v1/demo/verify"
tags: ["demo"]
---

# Run a public document verification

`POST /v1/demo/verify`

## Request

- Base URL: `https://api.hyperresearch.ai`
- URL: `https://api.hyperresearch.ai/v1/demo/verify`
- Auth: none required

Queue a free citation check of a short document, gated by a single-use Cloudflare Turnstile token and a per-network daily limit. Returns the job id and a `receipt_token`; send it as `X-Demo-Receipt` to poll.

## Request body

- DemoVerifyBody
  - `turnstile_token` string, required
  - `document_md` string, required
  - `sources` object[]
    - `n` integer
    - `text` string
    - `url` string, uri
    - `title` string
    - `author` string
    - `year` integer
    - `doi` string
  - `dois` string[]

## Response `202`

Demo verification queued

- DemoVerificationCreated
  - `id` string, required
  - `status` 'queued', required
  - `receipt_token` string, required
  - `expires_at` string, required
  - `checks` string[], required
  - `created_at` string, required

## Other responses

- `400`: Invalid request
- `401`: Authentication failed
- `403`: Insufficient scope or plan
- `404`: Not found
- `429`: Rate limited or over quota
- `500`: Internal error

---

[API](https://skmtc.dev/hyperresearch/apis/hyperresearch-cloud-api.md) · [All operations](https://skmtc.dev/hyperresearch/apis/hyperresearch-cloud-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hyperresearch/apis/hyperresearch-cloud-api/revisions/726ef831ebf4?raw)
