Everything the Postboi dashboard can do is also a REST endpoint. Authenticate with the
same POSTBOI_TOKEN the CLI writes (or any API key from Dashboard → Keys):
The full interactive reference lives at api.postboi.app — every endpoint with schemas and copy-paste examples in curl, JavaScript, Python, and more.
Alongside the per-list /v1/lists/{id}/recipients endpoints, /v1/contacts is your
whole audience — one contact per address, with global name/data and its list
memberships:
/v1/inbound is the other direction — mail that arrived at your sending address, newest first, with /v1/inbound/{id} for one
message and its body:
Errors always come back as { "message": "…", "code": "…" } with a matching HTTP
status, so error handling is one shape everywhere.
…or skip HTTP entirely
The CLI wraps the same API, so quick account chores never need a dashboard tab:
Run bunx postboi --help for the full command list. And for sending itself, the library is the nicer surface — mail() speaks this API for you.