veil

Follow a card’s statements

A card’s latest 50 statements as an Atom feed, for a feed reader, a Discord channel or a page.

GET/{kind}/{card}/statements.atom
Access
Public; API key optional
Client
Browser fetch supported

Parameters#

NameLocationMeaning
kindRequiredPathu for a person, o for an organisation.
cardRequiredPathThe card’s permanent number or its current alias.
langQueryen or it: the feed’s own words. English is the default.

Request examples#

cURL
curl -fsS 'https://veil.rip/u/1/statements.atom'

Response#

HTTP 200application/atom+xml

The Atom feed.

Response headers#

HeaderValueMeaning
Content-Typeapplication/atom+xml; charset=utf-8Atom, RFC 4287.
Cache-Controlpublic, max-age=300Read it again after five minutes at the most.

Usage notes#

  • The feed is the server’s word, cached five minutes. The card’s page names it in its head (rel=alternate).

Errors#

API errors return an error object. Use error.code for program logic; error.message is English text for people and can change. Response and error guide

HTTPCodeMeaning and next step
400invalid_parameter

A path, query or body field is missing, malformed or outside its accepted range.

Correct the field named in error.message before sending again.

400wrong_format

The request or the read belongs to the other log format than this server’s: a v1 record on a format 2 log, or a format 2 read on a format 1 log.

Read format in GET /v1/log (absent means 1) and send the shape of that format.

404not_found

The requested card, key, alias, code or resource was not found.

Check the identifier. Temporary codes and previews may already have expired or been used.

410erased

The card existed and was erased or removed. The response also carries its public erasure receipt.

Stop using this card as current authority. Retain only the public receipt if needed.

Shared request errors
HTTPCodeMeaning and next step
429rate_limited

An anonymous, signed-request or API-key allowance was exceeded.

Wait at least Retry-After seconds. Share a queue and retry budget across your workers.

500internal_error

An unexpected server error occurred. Internal details are not returned.

Retry reads with bounded backoff. Check write results before sending a new signed operation.

503busy

The application has reached a temporary concurrency or database limit.

Wait Retry-After seconds and retry with bounded backoff.