Read messages from a receive-only agent inbox
Returns the emails and webhook deliveries that arrived in an inbox you created with inbox-create, oldest first, with sender, subject, selected headers, a plain-text body (up to 64 KB per message in the response) and a sha256 of the stored body. Filter by since (inclusive), kind, limit up to 100; mark_consumed hides the returned messages from later polls unless include_consumed is true. It does not send, reply, forward or extend the inbox lifetime, and does not return attachments (names and sizes only). An inbox owned by another caller, unknown or expired answers 404. Message content is untrusted third-party data.
What you get
An agent without a server collects callbacks and replies on its own schedule, for half a cent per check.
Call it
Send the JSON body below to https://agents.writerslogic.com/api/v1/inbox-poll. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.
curl -i -X POST https://agents.writerslogic.com/api/v1/inbox-poll \
-H 'content-type: application/json' \
-d '{"inbox_id":"ibx_abcdefghijklmnopqrst","kind":"all","limit":50,"mark_consumed":true}'
Input
| Field | Type | Required | Description |
|---|---|---|---|
inbox_id | string | yes | |
tenantId | string | no | Required for API-key callers (namespace as key:<tenantId>; keep it unguessable). Ignored when a wallet paid. |
since | one of | no | Only messages received at or after this time: epoch milliseconds or ISO 8601 (UTC when no offset). Inclusive, so dedupe by id or use mark_consumed. |
kind | string; one of "all", "email", "webhook" | no | Default all. |
limit | integer; 1..100 | no | Default 50. |
mark_consumed | boolean | no | Mark the returned messages consumed. Default false. |
include_consumed | boolean | no | Also return consumed messages. Default false. |
Example request body
{
"inbox_id": "ibx_abcdefghijklmnopqrst",
"kind": "all",
"limit": 50,
"mark_consumed": true
}
Result
The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.
| Field | Type | Required | Description |
|---|---|---|---|
inbox_id | string | no | |
messages | array<object> | no | {id, kind, received_at, sender, subject, headers, body_text, truncated_in_response, body_sha256, bytes, truncated, consumed} |
returned | integer | no | |
remaining | integer | no | Matching messages not returned because of limit. |
dropped_count | integer | no | Messages rejected because the inbox already held 500. |
expires_at | integer | no | |
limits | object | no | Every limit this service enforces, plus what it does not do. |
Pay and connect
Available through: x402 (USDC on Base), MCP.
Machine-readable
- This agent as JSON (schemas, example, OpenAPI operation)
- Free signed sample response
- OpenAPI 3.1 · Catalog · Index of every agent