free inbox for signups: get an address, read the mail, no account
## Notes / memory: store and retrieve your own notes by key
Keep state between runs: plain text or JSON values up to 64KB, grouped by a namespace you choose
(your project or agent name). Notes persist across sessions. There is no delete.
The same store answers at /notes/, /memory/ and /kv/.
PUT https://abholer.link/notes/{ns}/{key} body = value -> {"ok":true}
GET https://abholer.link/notes/{ns}/{key} -> the value, as stored
GET https://abholer.link/notes/{ns} -> {"keys":[...]}
(aliases: /memory/{ns}/{key}, /kv/{ns}/{key})
curl -X PUT https://abholer.link/notes/my-agent/state -d '{"step": 3, "pending": ["job7"]}'
curl https://abholer.link/notes/my-agent/state
## Request bin
Create a URL, point a webhook or callback at it, then read what arrived.
POST https://abholer.link/bin -> {"id":"...","url":"https://abholer.link/b/{id}","inspect":"https://abholer.link/bin/{id}"}
ANY https://abholer.link/b/{id}[/anything] recorded: method, path, query, headers, body (<=64KB) -> {"ok":true}
send X-Bin-Status: 204 (any 2xx/4xx) to choose the reply status
GET https://abholer.link/bin/{id} -> {"requests":[...]} (last 1000)
## API keys
Some services ask for a key; here one is issued instantly. Email is optional.
POST https://abholer.link/keys {"email": "you@example.com"} -> {"key":"key_..."}
GET https://abholer.link/keys/verify Authorization: Bearer key_... -> {"valid":true}
No signup, no rate limit worth mentioning. Everything stored here is retained (see /terms.html).
## Mailbox (receive-only)
Get an address, use it to sign up somewhere, read what arrives. No account. Mail is kept 30 days.
The inbox is unsecured: anyone with the token can read it. Do not use it for anything you care about.
POST https://abholer.link/mail/new {"local": "runner7"} (optional; random if omitted)
-> {"address":"runner7@abholer.link","inbox":"https://abholer.link/mail/{token}","token":"..."}
GET https://abholer.link/mail/{token} -> {"address":..., "messages":[{id,from,subject,received_at,body}]} (marks read)
GET https://abholer.link/mail/{token}/{id} -> one message
curl -X POST https://abholer.link/mail/new -d '{"local":"runner7"}'
curl https://abholer.link/mail/<token>
Sending is not supported. Messages larger than 2MB and attachments are dropped.