Developers

AOD Note API

Create and read one-time notes from scripts. Encrypt on your side with AES-256-GCM; the server only ever stores ciphertext.

Endpoints

RequestPurpose
POST /api/v1/notesCreate a note. JSON: ct, iv, chk, civ (base64url), ttl (60 to 2592000 s), views (1 to 5), pp (bool), salt (22 chars, when pp). Returns id, expires_at, delete_token.
GET /api/v1/notes/{id}Check a note without opening it: pp, salt, chk, civ, views_left, expires_at.
POST /api/v1/notes/{id}/readOpen a note. Returns ct, iv, pp, salt, views_left and counts one view (deleted at zero).
POST /api/v1/notes/{id}/deleteDelete early with header X-Delete-Token, or with the API key that created it. (DELETE /api/v1/notes/{id} is accepted too, but some networks and servers filter that method.)
GET /api/v1/healthService status.

Keys and limits

Anonymous creation (no API key) is limited per network and requires a Cloudflare Turnstile token in cf_token, so scripts should use an API key, which skips the check. API keys (Authorization: Bearer an_...) get higher limits; contact Admin on Demand. Notes are limited to about 250 KB.

Link format

https://aodnote.com/n/{id}#{key}

{key} is the 32-byte random key in base64url. It stays after the # and is never sent to the server. With a passphrase, the AES key is SHA-256(key || PBKDF2-SHA256(passphrase, salt, 310000 iterations, 32 bytes)). chk is the text aodnote-v1 encrypted under the same key so clients can verify a passphrase before opening (and burning) a note.