Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

bot.mailbox/mailbox

REMOTE · MAILBOX.BOT · SCANNED AUG 3

Physical mail API for AI agents. Send letters, certified mail. Sandbox + live keys via MCP.

Available components

+9 this week 75 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability57
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 5741 tokens (~191/item across 30 items; 30 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability check failed: schema churn in the 8 days we've observed: 0 tool removals, 2 breaking changes, 0 auth/transport breaks, 0 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mailbox.bot

# add to Claude Code
claude mcp add --transport http bot-mailbox-mailbox https://mailbox.bot/api/mcp
# ~/.codex/config.toml
[mcp_servers.bot-mailbox-mailbox]
url = "https://mailbox.bot/api/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "bot-mailbox-mailbox": {
      "type": "remote",
      "url": "https://mailbox.bot/api/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add bot-mailbox-mailbox --url https://mailbox.bot/api/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  bot-mailbox-mailbox:
    url: "https://mailbox.bot/api/mcp"
// mcp.json
{
  "mcpServers": {
    "bot-mailbox-mailbox": {
      "type": "http",
      "url": "https://mailbox.bot/api/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 16 to 20.

  • 31 Jul 26 +5
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 6 to 10.

  • 29 Jul 26 +1
    • “create_test_outbound_mail” reworded the description of “mail_class” cosmetic
    • “send_outbound_mail” reworded the description of “mail_class” cosmetic

    2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 28 Jul 26 +1
    • Stability: 0.03 → fail security
    • A breaking change shipped without a version bump: still 1.0.1 security
    • Tool “get_facility_messages” rewrote its description, which is the text the model reads security
    • Tool “list_facility_conversations” rewrote its description, which is the text the model reads security
    • Tool “send_facility_message” rewrote its description, which is the text the model reads security
    • “send_facility_message” dropped the required parameter “facility_id” functional
    • “get_facility_messages” dropped the required parameter “facility_id” functional
  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 65

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mailbox.bot/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mailbox.bot CN=YR1,O=Let's Encrypt,C=US 13 Jun 2026 11 Sept 2026 RSA 2048 SHA256-RSA 61c0bda52faf0192f2f4d7b2799860e77cb
SANs: mailbox.bot
CN=YR1,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA a20253f15f2691c05dc1ce13b9bcca4e
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f
DNSSEC insecure

Validation of mailbox.bot. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
bot. present 58741 8 Verified
mailbox.bot. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains
content-security-policy default-src 'self'; script-src 'self' 'unsafe-inline' https://js.stripe.com https://challenges.cloudflare.com https://www.googletagmanager.com https://us-assets.i.posthog.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: blob: https://images.unsplash.com https://*.supabase.co https://www.googletagmanager.com https://us-assets.i.posthog.com; frame-src 'self' https://js.stripe.com https://challenges.cloudflare.com; connect-src 'self' https://*.supabase.co https://api.stripe.com https://challenges.cloudflare.com https://www.google-analytics.com https://*.google-analytics.com https://*.analytics.google.com https://www.googletagmanager.com https://us.i.posthog.com https://us-assets.i.posthog.com https://*.sentry.io; worker-src 'self' blob:
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy strict-origin-when-cross-origin
permissions-policy geolocation=(), microphone=(), camera=(self)

Protected resource metadata

Retrieved No
Problem no_resource_metadata
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mailbox.bot/api/mcp Verified 200
http (plaintext) http://mailbox.bot/api/mcp HTTPS enforced 308 https://mailbox.bot/api/mcp
MCP tools — 30 exposed · ~5,338 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
add_note ~117

Add an observation or context note to a package. Notes are visible to the facility operator and the renter. Use for recording decisions, observations, or agent reasoning.

NameTypeReqDescription
metadataobjectOptional structured metadata attached to the note (e.g. { "rma_number": "4521", "vendor": "NVIDIA" }).
notestringyesNote text (e.g. "Appears to be the replacement GPU from RMA #4521").
package_idstringyesUUID of the package to annotate.
NameTypeReqDescription
resultobjectyesCreated package note record.

No examples provided.

add_tag ~81

Add a tag/label to a package for categorization and filtering. Tags are free-form strings. Adding the same tag twice is a no-op.

NameTypeReqDescription
package_idstringyesUUID of the package to tag.
tagstringyesTag name (e.g. "hardware-order", "urgent", "return-needed"). Free-form, case-sensitive.
NameTypeReqDescription
resultobjectyesCreated or existing package tag record.

No examples provided.

advance_test_outbound_mail ~80

Advance a test_mode outbound mail record one lifecycle step and queue the matching webhook. submitted becomes ready with simulated pages/envelope photos; ready becomes mailed with carrier, dispatch method, receipt photo, and tracking when the selected service includes tracking; mailed becomes delivered.

NameTypeReqDescription
mail_idstringyesUUID of the test_mode outbound mail record to advance.
NameTypeReqDescription
resultobjectyesAdvanced sandbox outbound mail job and webhook status.

No examples provided.

cancel_outbound_mail ~111

Cancel a queued outbound mail job before facility printing starts. If the mail was funded with prepaid credits, eligible credits are returned to the member ledger. Safe to retry: already-cancelled mail returns cancelled status without creating a duplicate refund. In chat, report cancellation status, returned credits, updated balance, and whether it had already been cancelled. If a transient error occurs, poll the mail status and credits before retrying.

NameTypeReqDescription
mail_idstringyesUUID of the queued outbound mail job to cancel.
NameTypeReqDescription
resultobjectyesCancelled queued outbound mail and returned credits when eligible.

No examples provided.

create_rule ~157

Create a standing instruction that auto-triggers actions when incoming packages match conditions. Rules run on every new package and execute the specified action if all conditions match. Use requires_approval to add a human review step before execution.

NameTypeReqDescription
action_paramsobjectyesParameters for the action (e.g. forwarding address for "forward", scan_type for "scan").
action_typestringyesAction to auto-trigger when conditions match.
conditionsobjectyesConditions that must ALL match for the rule to trigger.
namestringyesHuman-readable rule name (e.g. "Forward Amazon packages", "Shred junk mail").
requires_approvalbooleanIf true, matched packages require human approval before the action executes.
NameTypeReqDescription
resultobjectyesCreated standing rule record.

No examples provided.

create_test_outbound_mail ~537

Create a sandbox outbound mail record without uploading a real document. The record is always test_mode=true, cost_cents=0, includes estimated_live_cost_cents and cost_breakdown, and queues a mail.submitted webhook. Published default pricing is $0.30/page B&W printing; color adds $0.40/page ($0.70/page total before handling and postage). FedEx and UPS estimates use the same configured origin and destination zone/region logic as production. Use with a sandbox key to rehearse outbound workflows before sending real physical mail.

NameTypeReqDescription
agent_notesstringOptional facility/operator notes for the simulated mailpiece.
colorbooleanWhether to include the additional $0.40/page color-print surcharge in the live estimate ($0.70/page total before handling and postage by default).
mail_classstringMail class to simulate. Postal or carrier service. Do not infer speed, tracking, or proof from carrier marketing names. Use first_class for ordinary lowest-cost USPS letters with no carrier tracking…
metadataobjectArbitrary metadata echoed in responses and webhooks.
page_countnumberSimulated page count used for pricing.
recipient_citystringRecipient city.
recipient_companystringCompany or organization line for the simulated mailpiece. Optional when recipient_name is provided.
recipient_line1stringRecipient street line 1.
recipient_namestringRecipient name for the simulated mailpiece. Optional when recipient_company is provided.
recipient_statestringRecipient 2-letter state code.
recipient_zipstringRecipient ZIP code. Affects estimated live postage, private-carrier zone, and FedEx local/regional/national area.
NameTypeReqDescription
resultobjectyesCreated sandbox outbound mail job and webhook status.

No examples provided.

get_facility_messages ~103

Read the message thread with Austin HQ. Facility routing is automatic. Returns messages in reverse chronological order with sender role (member, facility, agent). Supports cursor-based pagination. Automatically marks facility messages as read.

NameTypeReqDescription
beforestringCursor: only return messages sent before this ISO 8601 timestamp. Use the oldest message timestamp from the previous page.
limitnumberMaximum number of messages to return (1-100). Defaults to 50.
NameTypeReqDescription
resultobjectyesMessages exchanged with a facility.

No examples provided.

get_inbound_mail ~118

Get one forwarded inbound mail item with compact draft_context by default. Use this before drafting an outbound reply when you need sender context, reply contact candidates, deadline clues, source files, and thread linkage in one stable payload.

NameTypeReqDescription
inbound_mail_idstringyesUUID of the inbound mail item to retrieve.
includearrayOptional expansions. Defaults to ["drafting"]. Add signed_urls only when the agent truly needs temporary file access.
signed_urlsbooleanIf true, return short-lived signed URLs for stored files.
NameTypeReqDescription
resultobjectyesOne forwarded inbound mail item.

No examples provided.

get_mailbox ~75

Get your agent's real mailing address beta endpoint when the account has explicit beta access: street address + mailbox number for approved accounts. For generally available inbound context, use list_inbound_forwarding_addresses instead; that returns a private intake alias for scans, PDFs, photos, provider notices, and notes from addresses the operator already uses.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultobjectyesMailbox address, facility, and status details.

No examples provided.

get_mailbox_md ~65

Get the renter's MAILBOX.md standing instructions for this agent. Returns the full instruction text, version number, content hash, and last update timestamp. Call this on startup and cache the version — you must pass it to send_outbound_mail and update_action for sync verification.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultobjectyesCurrent MAILBOX.md standing instructions.

No examples provided.

get_outbound_mail ~84

Get full details of an outbound mail job including recipient address, mail class, page count, cost breakdown, current status, failure metadata, document metadata, and fulfillment photos. Legacy plaintext records may include direct document URLs; encrypted source documents are retrieved through the REST document endpoint with document.read scope.

NameTypeReqDescription
mail_idstringyesUUID of the outbound mail job to retrieve.
NameTypeReqDescription
resultobjectyesFull outbound mail job details. Direct document URLs are only present for legacy plaintext rows.

No examples provided.

get_package ~52

Get full package details including photos, tracking events, shipping label data (carrier, addresses, weight), forwarding status, storage location, and action history.

NameTypeReqDescription
package_idstringyesUUID of the package to retrieve.
NameTypeReqDescription
resultobjectyesPackage details with photos, events, and extracted label data.

No examples provided.

get_package_photos ~106

Get photos for a package with OCR-extracted text and confidence scores. Filter by photo type to get only exterior shots, label closeups, barcode scans, or content scans.

NameTypeReqDescription
package_idstringyesUUID of the package to get photos for.
photo_typestringFilter by photo type. "exterior" = package exterior, "label" = shipping label closeup, "barcode" = barcode scan, "content_scan" = opened package contents.
NameTypeReqDescription
resultarrayyesPackage photo records with OCR metadata.

No examples provided.

get_postal_thread ~75

Get one physical-mail thread with optional timeline events. Use this to explain how a generated outbound mail piece relates back to prior inbound scans and review decisions.

NameTypeReqDescription
includearrayOptional expansions. Add events to include inbound/outbound timeline references.
thread_idstringyesUUID of the postal mail thread to retrieve.
NameTypeReqDescription
resultobjectyesOne postal mail workflow thread.

No examples provided.

get_scan_results ~57

Get document scan results including raw OCR text, structured data fields (addresses, dates, amounts), and confidence scores. Returns empty if scan is still processing.

NameTypeReqDescription
package_idstringyesUUID of the package to get scan results for.
NameTypeReqDescription
resultarrayyesDocument scan records and OCR results.

No examples provided.

get_usage ~143

Get usage summary, billing events, and prepaid credit balance for a time period. Returns itemized events (scans, forwards, mail sends) with costs, period totals, and credits. Defaults to the current billing period if no dates are specified. Use this in Cursor/MCP chat when the human asks how many mailbox.bot credits are left; answer with the prepaid balance and explain that only the signed-in human can add funds.

NameTypeReqDescription
period_endstringEnd of the reporting period in ISO 8601 format. Defaults to now.
period_startstringStart of the reporting period in ISO 8601 format. Defaults to current billing period start.
NameTypeReqDescription
resultobjectyesUsage summary, billing events, and prepaid credit balance.

No examples provided.

list_facility_conversations ~72

List your Austin HQ conversation with its unread message count and last message preview. Facility routing is automatic.

NameTypeReqDescription
limitnumberMaximum number of conversations to return (1-100). Defaults to 20.
offsetnumberNumber of conversations to skip for pagination. Defaults to 0.
NameTypeReqDescription
resultobjectyesFacility conversations plus pagination.

No examples provided.

list_inbound_forwarding_addresses ~122

List the renter’s private inbound forwarding aliases on forward.mailbox.bot. These are the unique intake email addresses an operator, assistant, provider, or external agent can forward scans, PDFs, photos, provider notices, notes, and other context-aware documents to so mailbox.bot can build OCR-backed inbound context. Forwarding/emailing attachments here initiates OCR/extraction; this tool discovers the address and does not upload files directly into OCR. The alias is member-scoped, so live and sandbox agent keys for the same member resolve to the same intake address.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultobjectyesPrivate inbound forwarding email aliases.

No examples provided.

list_inbound_mail ~165

List forwarded inbound mail items captured from private forwarding aliases. Default output includes compact draft_context so an LLM or external agent can reason about OCR context, reply contact candidates, deadlines, and thread linkage before generating outbound mail.

NameTypeReqDescription
categorystringOptional category filter such as "Needs review" or "Loan / Mortgage".
includearrayOptional expansions. Defaults to ["drafting"]. Add ocr/lineage only when deeper provenance is needed.
limitnumberMaximum number of inbound items to return (1-100).
offsetnumberNumber of inbound items to skip for pagination.
statusstringOptional inbound status filter.
thread_idstringOnly return inbound items linked to this postal mail thread.
NameTypeReqDescription
resultobjectyesForwarded inbound mail items plus pagination.

No examples provided.

list_outbound_mail ~300

List outbound mail jobs with status tracking. Returns mail ID, recipient, mail class, status, cost, timestamps, and failure metadata. Filter by status, created_at date range, or search recipient/address/tracking/agent notes.

NameTypeReqDescription
created_afterstringFilter mail created at or after this ISO 8601 datetime or YYYY-MM-DD date.
created_beforestringFilter mail created at or before this ISO 8601 datetime or YYYY-MM-DD date. Date-only values include the whole UTC day.
limitnumberMaximum number of mail jobs to return (1-100). Defaults to 20.
offsetnumberNumber of mail jobs to skip for pagination. Defaults to 0.
qstringSearch recipient name, address lines, city/state/ZIP, tracking number, or agent notes.
statusstringFilter by mail status. "pending_approval" = awaiting human approval, "submitted" = queued for facility, "ready" = printed and ready to mail, "mailed" = in transit, "delivered" = confirmed delivery, "…
test_modebooleanFilter sandbox/test records. Defaults to the key environment for agent-scoped keys; member keys can pass true or false explicitly.
NameTypeReqDescription
resultarrayyesOutbound mail job summaries.

No examples provided.

list_packages ~176

List inbound mail or packages for approved real mailing address/package beta accounts with optional filters by status, carrier, and date. Returns tracking number, carrier, status, and received timestamp where available. For generally available inbound postal context, use list_inbound_mail with forwarded scans/PDFs/notes instead.

NameTypeReqDescription
carrierstringFilter by shipping carrier.
limitnumberMaximum number of packages to return (1-100). Defaults to 20.
offsetnumberNumber of packages to skip for pagination. Defaults to 0.
sincestringOnly return packages received after this ISO 8601 date-time.
statusstringFilter by package lifecycle status. "received" = just arrived, "stored" = in facility storage, "forwarded" = shipped to forwarding address.
NameTypeReqDescription
resultarrayyesInbound package summaries.

No examples provided.

list_postal_threads ~115

List physical-mail threads that group inbound mail context, human review, and outbound sends. Use this to understand which inbound items and outbound documents belong to the same business workflow.

NameTypeReqDescription
categorystringOptional category filter.
includearrayOptional expansions. Add events to include inbound/outbound timeline references.
limitnumberMaximum number of threads to return (1-100).
offsetnumberNumber of threads to skip for pagination.
statusstringOptional thread status filter.
NameTypeReqDescription
resultobjectyesPostal mail workflow threads plus pagination.

No examples provided.

propose_mailbox_md_edit ~124

Propose changes to the renter's MAILBOX.md instructions with reasoning. The renter will see your suggestion in their dashboard and can accept, reject, or modify it. Use this when you observe patterns that could be codified into standing instructions.

NameTypeReqDescription
reasonstringyesWhy this change is suggested (e.g. "Observed 5 Amazon packages this week, all forwarded manually — adding auto-forward rule").
suggested_contentstringyesFull proposed MAILBOX.md content (max 10,000 chars). Must include the complete document, not just the diff.
NameTypeReqDescription
resultobjectyesCreated MAILBOX.md suggestion record.

No examples provided.

register_expected ~172

Pre-register an expected inbound shipment so it is auto-matched when it arrives at the facility. Optionally specify an action to auto-execute on arrival (e.g. forward immediately, scan on receipt).

NameTypeReqDescription
auto_actionstringAction to auto-execute when the package arrives.
auto_action_paramsobjectParameters for the auto-action (e.g. forwarding address).
carrierstringShipping carrier (e.g. "fedex", "ups", "usps").
descriptionstringHuman-readable description of the shipment (e.g. "Replacement laptop from Dell").
expected_bystringExpected arrival date in ISO 8601 format. Used for alerts if the package is late.
tracking_numberstringCarrier tracking number for the expected shipment.
NameTypeReqDescription
resultobjectyesCreated expected shipment record.

No examples provided.

request_action ~252

Request a physical action on a package at the facility. Actions include forwarding to another address, shredding, scanning documents, holding for pickup, disposing, returning to sender, photographing, opening and scanning contents, or recording a video. Some actions (shred, dispose) are irreversible.

NameTypeReqDescription
actionstringyesAction to perform. "forward" = ship to another address, "shred" = destroy (irreversible), "scan" = OCR document scan, "hold" = keep in storage, "dispose" = discard (irreversible), "return_to_sender"…
package_idstringyesUUID of the package to act on.
parametersobjectAction-specific parameters. For "forward": { address, city, state, zip }. For "scan": { scan_type }. For "hold": { until_date }.
prioritystringProcessing priority. "urgent" = same-day processing, "high" = next business day, "normal" = standard queue, "low" = when convenient.
NameTypeReqDescription
resultobjectyesCreated facility action request record.

No examples provided.

request_scan ~108

Request document scanning (OCR + structured data extraction) for a package. The facility will scan the document and extract text, addresses, dates, and other structured data. Results are available via get_scan_results after processing.

NameTypeReqDescription
package_idstringyesUUID of the package to scan.
scan_typestringType of scan. "label" = shipping label only, "envelope" = exterior envelope, "document" = full document OCR, "content" = opened package contents.
NameTypeReqDescription
resultobjectyesCreated scan request record.

No examples provided.

send_facility_message ~113

Send a message to the Austin HQ operator managing your mailbox. Facility routing is automatic. Messages appear in the shared conversation visible to you, the renter, and the facility. Optionally link the message to a specific package or action request for context.

NameTypeReqDescription
action_request_idstringOptional: link this message to an action request for context.
bodystringyesMessage text (1-5000 characters).
package_idstringOptional: link this message to a specific package for context.
NameTypeReqDescription
resultobjectyesSent facility message identifiers and body.

No examples provided.

send_outbound_mail ~1,321

Submit a document for printing and postal mailing by the facility. Supported formats: PDF, DOCX, JPG, PNG, TXT, CSV. The document is stored securely and printed by the facility operator. Published default pricing is $2.50 handling + $0.30/page B&W printing + carrier postage/rate; color is an additional $0.40/page, so color pages are $0.70/page before handling and postage. Plan/account overrides can apply; dry_run and cost_breakdown are authoritative. IMPORTANT: With a production key (sk_agent_), this spends the human member's prepaid mailbox.bot credits. Agents never access Stripe, card data, or Auto-Fill settings. If the signed-in human separately enabled Agent Auto-Fill, an eligible live order may trigger a bounded server-managed reload. Use dry_run=true to preview required credits before committing, or requires_approval=true to defer the credit debit until human approval. Sandbox keys (sk_agent_test_) skip credit debits and facility fulfillment. Responses include human_review with send-to address, return address, mail class, document details, preview URL when available, cost, safeguards, and next step; show that to the human before live funded sends. tracking_number is required for priority, certified, certified_return_receipt, FedEx, and UPS mail classes. USPS first_class does not include carrier tracking by default; tracking_number may be null. Optionally attach the outbound mail to inbound context with inbound_capture_id and postal_mail_thread_id so lineage stays explicit. Explicit Business mail runs are REST-only.

NameTypeReqDescription
agent_notesstringInstructions for the facility operator (e.g. "Time-sensitive — mail today").
colorbooleanPrint in color. Adds $0.40/page to the default $0.30/page B&W printing rate, making color pages $0.70/page before handling and postage. Account overrides can apply; cost_breakdown is authoritative.
document_base64stringyesBase64-encoded document file. Supported formats: PDF, DOCX, JPG, PNG, TXT, CSV. Max 10MB decoded.
document_filenamestringOriginal filename with extension (e.g. "letter.docx"). Required for reliable non-PDF format detection.
dry_runbooleanValidate inputs and return cost breakdown without creating a record or spending credits. Use to preview required credits before committing.
duplexbooleanRequest double-sided printing when operationally possible. Pricing and page_count are based on the detected or supplied document page count; use dry_run=true to preview exact cost.
inbound_capture_idstringOptional inbound mail item this outbound piece is replying to. Recommended when drafting from OCR/forwarded-mail context.
mail_classstringPostal or carrier service. Do not infer speed, tracking, or proof from carrier marketing names. Use first_class for ordinary lowest-cost USPS letters with no carrier tracking number by default. Use p…
mailbox_md_versionnumberyesYour current MAILBOX.md version (from get_mailbox_md). Required for sync verification.
max_cost_centsintegerCost cap in cents. If the calculated cost exceeds this, the request is rejected with 422 before credits are spent. Prevents accidental expensive mailings.
metadataobjectArbitrary key-value pairs echoed in GET responses and webhooks. Recommended convention: { "workflow_id": "wf_123", "reason": "Customer cancellation", "correlation_id": "abc" }.
package_idstringLink this mail to an inbound package (e.g. replying to received correspondence).
page_countnumberExplicit page count for non-PDF documents when exact pagination is known. When supplied for DOCX, TXT, or CSV, it overrides local detection and makes pricing deterministic.
postal_mail_thread_idstringOptional physical-mail thread to attach this outbound mail to. Lets agents keep inbound and outbound activity in one durable workflow.
recipient_citystringyesRecipient city.
recipient_companystringCompany or organization line for the recipient. Optional when recipient_name is provided.
recipient_countrystringISO 3166-1 alpha-2 country code. Defaults to "US".
recipient_line1stringyesStreet address line 1 of the recipient.
recipient_line2stringStreet address line 2 (apartment, suite, unit, etc.).
recipient_namestringPerson name of the mail recipient. Optional when recipient_company is provided.
recipient_statestringyes2-letter US state code (e.g. CA, NY, TX).
recipient_zipstringyes5 or 5+4 digit ZIP code (e.g. "90210" or "90210-1234").
requires_approvalbooleanIf true, the renter must approve in their dashboard before the mail is printed and sent.
return_citystringReturn address city. Defaults to member profile if omitted.
return_companystringOptional company or organization line for the return address.
return_line1stringReturn address line 1. Defaults to member profile if omitted.
return_line2stringReturn address line 2 (suite, unit, etc.).
return_namestringReturn address name. Defaults to the member's profile name if omitted.
return_statestringReturn address state (2-letter code). Defaults to member profile if omitted.
return_zipstringReturn address ZIP code. Defaults to member profile if omitted.
NameTypeReqDescription
resultobjectyesSubmitted outbound mail job or dry-run cost preview.

No examples provided.

update_action ~202

Push notes, structured data, or a clarification response to an existing action request. Use this to add agent reasoning, attach extracted data, or respond when the facility asks for clarification. Requires mailbox_md_version to prove your MAILBOX.md instructions are in sync.

NameTypeReqDescription
action_idstringyesThe action request ID to update.
agent_dataobjectStructured data to attach (e.g. OCR results, extracted fields, classification labels).
agent_notesstringFree-text notes from the agent (e.g. "Forwarding per standing rule #3").
decision_contextobjectLink this decision to a specific MAILBOX.md instruction for auditability.
mailbox_md_versionnumberyesYour current MAILBOX.md version (from get_mailbox_md). Required for sync verification.
respond_to_clarificationstringResponse text when action status is needs_clarification. Providing this auto-resumes the action to in_progress.
NameTypeReqDescription
resultobjectyesUpdated facility action request record.

No examples provided.

update_webhook ~135

Configure webhook endpoint URL and event subscriptions for real-time notifications. Events include package.received, package.status_changed, action.completed, mail.status_changed, and more. The endpoint must use HTTPS and respond with 2xx within 10 seconds.

NameTypeReqDescription
enabledbooleanSet to false to pause webhook delivery without removing the URL.
event_typesarrayArray of event types to subscribe to (e.g. ["package.received", "mail.status_changed"]). Empty array disables all events.
webhook_urlstringHTTPS URL to receive webhook POST requests. Must respond with 2xx within 10 seconds.
NameTypeReqDescription
resultobjectyesWebhook configuration status.

No examples provided.