veil

Embed a verifying widget

Show a read-only card that verifies itself in the visitor’s browser.

GET/{kind}/{card}/embed
Access
Public access
Client
Embed in a frame

Parameters#

NameLocationMeaning
kindRequiredPathu or o.
cardRequiredPathA permanent card number or its current alias.
themeQuerydark or light.
langQueryen or it. English is the default.

Request examples#

cURL
curl -fsS 'https://veil.rip/o/veil/embed'

Response#

HTTP 200text/html

An HTML frame, 200 pixels high and up to 560 pixels wide. These widget pages allow framing. Normal card pages do not.

HTTP 302text/html

An alias widget redirects to its permanent numeric card URL. Follow Location.

Response headers#

HeaderValueMeaning
Content-Typetext/htmlUse the declared media type before choosing a parser.
DateHTTP dateServer time. Compare it with your clock when signing requests.
Locationrelative URLPublished card/proof address, or permanent widget redirect target.
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#

  • Use an iframe. An alias redirects to the numbered widget with an expected-alias check.

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.

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.