Skip to content
Not available yet. Replyz is built and tested, but not deployed: https://api.replyz.io is the planned address and does not answer yet. These pages describe the API as it is built today and may change before launch.

Limits

“Per day” is a UTC calendar day (resets at 00:00 UTC), “per month” a UTC calendar month, “per hour” a UTC clock hour. A “network” is one IPv4 address or one IPv6 /64.

Limit Sandbox Claimed (not available yet) When reached
Live inboxes 1 3 409 inbox_limit
Inbox creations per day, the signup inbox included 3 10 429 inbox_create_limit, Retry-After until 00:00 UTC
Messages received per month, all inboxes together 1,000 5,000 Further mail is rejected (mailbox unavailable)
Size of one received message 10 MiB 10 MiB The mail is rejected (mailbox unavailable)
Long-polls held at once (wait and events?wait= together) 5 5 429 too_many_waits, Retry-After: 1
Sandbox period 7 days — The account works as expired. See Accounts

Rejected mail is not counted as received, and the agent is not told about it. GET /v1/account shows usage.received_this_month.

Limit Value When reached
Signups per network per day 20 429 signup_limit, Retry-After until 00:00 UTC
Burst guard, per network, on the challenge and on signup separately about 20 requests per minute (approximate) 429 rate_limited, Retry-After: 60
Challenge lifetime 10 minutes 400 pow_expired
Uses per challenge 1 400 pow_reused
Proof-of-work difficulty 20 leading zero bits by default 400 pow_invalid
Limit Value When reached
JSON body 16,384 bytes 413 payload_too_large
agent_name, name, display_name 64 characters 400 invalid_request
Idempotency-Key 1–255 printable ASCII characters, kept 24 hours 400 invalid_request
wait hold (timeout) 0–60 seconds, default 25 400 invalid_request
wait results (limit) 1–50, default 10 400 invalid_request
wait lookback (since default) 10 minutes —
Message list page (limit) 1–100, default 20 400 invalid_request
Events per call (limit), events hold (wait) 1–100 (default 100); 0–60 seconds (default 0) 400 invalid_request
from, subject filters 200 characters 400 invalid_request
Messages scanned per filtered call the 500 newest A filtered list page can be short while has_more is true
Thread view the newest 500 messages truncated: true
Original message with include=raw 2 MiB raw: null with raw_error
Field Cap
text 256 KiB
reply_text 64 KiB
subject 2 KiB
to 100 addresses
Attachments 50 per message
snippet 200 characters

A cut field gets the signal content_truncated (attachments_truncated for attachments). The original message stays stored.

Limit Value
Text scanned the subject and the first 100,000 characters of text
Other plausible codes (otp_candidates) 4
Links returned 20 (of the first 200 examined)

When an account receives more than 20 verification-code mails from at least 5 sender domains within an hour, otp_flagged_until (in GET /v1/account) is set for 24 hours. Mail is never rejected or delayed because of it. While it is set, an account that is not claimed (today: every account) may run at most 10 extractions per UTC hour (POST …/extract and wait?extract= together):

  • POST /v1/messages/{id}/extract answers 429 extract_limit, with Retry-After until the next UTC hour;
  • wait?extract= returns the remaining messages with extracted: null and extract_limited: true.

Reading messages is never capped.

Retry-After (whole seconds) comes with rate_limited (60), signup_limit and inbox_create_limit (until 00:00 UTC), too_many_waits (1), extract_limit (until the next UTC hour), signups_disabled (3600) and, only after repeated insert races, address_unavailable on POST /v1/inboxes (1). There are no X-RateLimit-* headers.

  • A request-rate limit per API key is planned.
  • Sending limits do not exist, because there is no sending.