veil

Open the snippet builder

Copy a card link, badge or widget with a live preview.

GET/embed
Access
Public access
Client
Embed in a frame

Parameters#

NameLocationMeaning
nQueryOptional permanent card number.
langQueryen or it. English is the default.

Request examples#

cURL
curl -fsS 'https://veil.rip/embed?n=2'

Response#

HTTP 200text/html

A page for selecting a card number, theme and language, with copyable snippets.

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.
Retry-Afterinteger seconds, on rate_limited or busyWait at least this long before retrying. Other 429/503 codes do not necessarily include it.

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

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.