Endpoints

GET https://veruscite-data.com/api/v1/health

No auth. Returns {"status":"ok"}.

GET https://veruscite-data.com/api/v1/me

Your user id, email, and credit balance.

POST https://veruscite-data.com/api/v1/documents

Upload a file (multipart/form-data, field name file). Returns 202 with a document id and poll URLs.

Errors: 400 bad file, 401 bad key, 402 no credits, 413 too large.

GET https://veruscite-data.com/api/v1/documents/{id}

Poll job status. Check status and finished.

GET https://veruscite-data.com/api/v1/documents/{id}/results

Document summary plus full citation list. Each citation has a version field: original (as extracted / before website edit) or edited (current values after a website edit). Citations never edited appear once as original; edited ones appear as two rows (original, then edited). citation_count is the number of unique citations; row_count is the length of the citations array.

GET https://veruscite-data.com/api/v1/jobs

Active jobs only (pending or in-process).

GET https://veruscite-data.com/api/v1/documents

List all of your documents (newest first): filename, status, created_at, page/citation counts.

Query params: limit (default 50, max 200), offset, optional status (pending | in-process | completed | failed).

curl -sS "https://veruscite-data.com/api/v1/documents?limit=50" \
  -H "Authorization: Bearer $VERUSCITE_API_KEY" | jq .

Document fields

  • id, filename, status, finished
  • page_count, total_citations, verified_citations, hallucinations
  • created_at

When status is failed, also:

  • error — one of: not_enough_credits, too_many_pages, file_too_large, failed
  • error_message — short generic message (no internal details)