veil

Read the sitemap

The public pages and cards a search engine may list, each card at its canonical address.

GET/sitemap.xml
Access
Public access
Client
Local or server client

Other addresses#

  • /sitemaps/pages.xml
  • /sitemaps/{file}

Request examples#

cURL
curl -fsS 'https://veil.rip/sitemap.xml'

Response#

HTTP 200application/xml

A sitemaps.org urlset: the landing page, /verify, /canary, every page of /docs and every public card with lastmod from its current version. Past 50,000 addresses it is a sitemap index of /sitemaps/pages.xml and /sitemaps/cards-<k>.xml.

Response headers#

HeaderValueMeaning
Content-Typeapplication/xmlUse the declared media type before choosing a parser.
DateHTTP dateServer time. Compare it with your clock when signing requests.
Cache-Controlpublic, max-age=600A sitemap may be cached for ten minutes, as long as the server keeps it.
Retry-Afterinteger seconds, on rate_limited or busyWait at least this long before retrying. Other 429/503 codes do not necessarily include it.

Usage notes#

  • Suspended, removed, closed and name-hidden cards are never listed. Each file is rebuilt at most every 10 minutes; reads count against a budget of 30 a minute per IP.

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
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.

When using an optional API key
HTTPCodeMeaning and next step
401invalid_api_key

The bearer credential is malformed, unknown, expired or revoked.

Use an active key. To use anonymous public access, remove Authorization entirely. Invalid credentials never fall back automatically.

403api_key_scope

The API key lacks read or verify scope, or the endpoint does not accept bearer keys.

Use the correct scope. Identity writes and key management still require a device signature.

403api_key_suspended

This API key is suspended.

Ask staff to restore it; another key cannot lift an account suspension.

403developer_suspended

The owner’s API account is suspended or the owner card is unavailable.

Check the owner account and any staff restriction. Creating another key does not bypass suspension.

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.