veil

Read a move

Whether a move is still open, and its key. Never its card, nor whether it was approved.

GET/v1/moves/{nonce}
Access
Public access
Client
Local or server client

Parameters#

NameLocationMeaning
nonceRequiredPathThe move's nonce: 22 characters of base64url.

Request examples#

cURL
curl -fsS 'https://veil.pub/v1/moves/MOVE_NONCE'

Response#

HTTP 200application/json

200 with nonce, key, open and expiresAt.

FieldTypeMeaning
noncestringThe move.
keystringThe new key.
openbooleanTrue until it is published or expires, approved or not.
expiresAtstringWhen it closes.

Response headers#

HeaderValueMeaning
Content-Typeapplication/jsonUse the declared media type before choosing a parser.
DateHTTP dateServer time. Compare it with your clock when signing requests.
Cache-Controlno-storeDo not persist private or temporary responses in a shared cache.
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#

  • Moving a browser from the directory's old address to its new one (since 6 November 2026): a key lives on the origin that made it, so the new address makes a key of its own and the card adds it with a version signed at the old address, in the same browser. The version is kept until the new key comes back with the secret.

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.

404no_move

This directory has one address, so there is no browser to move.

Make a card or log in at this address.

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.

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.