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
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
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
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
claude mcp add --transport http bot-mailbox-mailbox https://mailbox.bot/api/mcp
[mcp_servers.bot-mailbox-mailbox] url = "https://mailbox.bot/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bot-mailbox-mailbox": {
"type": "remote",
"url": "https://mailbox.bot/api/mcp",
"enabled": true
}
}
} openclaw mcp add bot-mailbox-mailbox --url https://mailbox.bot/api/mcp --transport streamable-http
mcp_servers:
bot-mailbox-mailbox:
url: "https://mailbox.bot/api/mcp" {
"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.
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.
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 |
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.
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.
| Name | Type | Req | Description |
|---|---|---|---|
| metadata | object | — | Optional structured metadata attached to the note (e.g. { "rma_number": "4521", "vendor": "NVIDIA" }). |
| note | string | yes | Note text (e.g. "Appears to be the replacement GPU from RMA #4521"). |
| package_id | string | yes | UUID of the package to annotate. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Created 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.
| Name | Type | Req | Description |
|---|---|---|---|
| package_id | string | yes | UUID of the package to tag. |
| tag | string | yes | Tag name (e.g. "hardware-order", "urgent", "return-needed"). Free-form, case-sensitive. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Created 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.
| Name | Type | Req | Description |
|---|---|---|---|
| mail_id | string | yes | UUID of the test_mode outbound mail record to advance. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Advanced 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.
| Name | Type | Req | Description |
|---|---|---|---|
| mail_id | string | yes | UUID of the queued outbound mail job to cancel. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Cancelled 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.
| Name | Type | Req | Description |
|---|---|---|---|
| action_params | object | yes | Parameters for the action (e.g. forwarding address for "forward", scan_type for "scan"). |
| action_type | string | yes | Action to auto-trigger when conditions match. |
| conditions | object | yes | Conditions that must ALL match for the rule to trigger. |
| name | string | yes | Human-readable rule name (e.g. "Forward Amazon packages", "Shred junk mail"). |
| requires_approval | boolean | — | If true, matched packages require human approval before the action executes. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Created 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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_notes | string | — | Optional facility/operator notes for the simulated mailpiece. |
| color | boolean | — | Whether 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_class | string | — | Mail 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… |
| metadata | object | — | Arbitrary metadata echoed in responses and webhooks. |
| page_count | number | — | Simulated page count used for pricing. |
| recipient_city | string | — | Recipient city. |
| recipient_company | string | — | Company or organization line for the simulated mailpiece. Optional when recipient_name is provided. |
| recipient_line1 | string | — | Recipient street line 1. |
| recipient_name | string | — | Recipient name for the simulated mailpiece. Optional when recipient_company is provided. |
| recipient_state | string | — | Recipient 2-letter state code. |
| recipient_zip | string | — | Recipient ZIP code. Affects estimated live postage, private-carrier zone, and FedEx local/regional/national area. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Created 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.
| Name | Type | Req | Description |
|---|---|---|---|
| before | string | — | Cursor: only return messages sent before this ISO 8601 timestamp. Use the oldest message timestamp from the previous page. |
| limit | number | — | Maximum number of messages to return (1-100). Defaults to 50. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Messages 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.
| Name | Type | Req | Description |
|---|---|---|---|
| inbound_mail_id | string | yes | UUID of the inbound mail item to retrieve. |
| include | array | — | Optional expansions. Defaults to ["drafting"]. Add signed_urls only when the agent truly needs temporary file access. |
| signed_urls | boolean | — | If true, return short-lived signed URLs for stored files. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | One 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.
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Mailbox 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.
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Current 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.
| Name | Type | Req | Description |
|---|---|---|---|
| mail_id | string | yes | UUID of the outbound mail job to retrieve. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Full 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.
| Name | Type | Req | Description |
|---|---|---|---|
| package_id | string | yes | UUID of the package to retrieve. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Package 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.
| Name | Type | Req | Description |
|---|---|---|---|
| package_id | string | yes | UUID of the package to get photos for. |
| photo_type | string | — | Filter by photo type. "exterior" = package exterior, "label" = shipping label closeup, "barcode" = barcode scan, "content_scan" = opened package contents. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | Package 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.
| Name | Type | Req | Description |
|---|---|---|---|
| include | array | — | Optional expansions. Add events to include inbound/outbound timeline references. |
| thread_id | string | yes | UUID of the postal mail thread to retrieve. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | One 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.
| Name | Type | Req | Description |
|---|---|---|---|
| package_id | string | yes | UUID of the package to get scan results for. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | Document 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.
| Name | Type | Req | Description |
|---|---|---|---|
| period_end | string | — | End of the reporting period in ISO 8601 format. Defaults to now. |
| period_start | string | — | Start of the reporting period in ISO 8601 format. Defaults to current billing period start. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Usage 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of conversations to return (1-100). Defaults to 20. |
| offset | number | — | Number of conversations to skip for pagination. Defaults to 0. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Facility 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.
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Private 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Optional category filter such as "Needs review" or "Loan / Mortgage". |
| include | array | — | Optional expansions. Defaults to ["drafting"]. Add ocr/lineage only when deeper provenance is needed. |
| limit | number | — | Maximum number of inbound items to return (1-100). |
| offset | number | — | Number of inbound items to skip for pagination. |
| status | string | — | Optional inbound status filter. |
| thread_id | string | — | Only return inbound items linked to this postal mail thread. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Forwarded 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.
| Name | Type | Req | Description |
|---|---|---|---|
| created_after | string | — | Filter mail created at or after this ISO 8601 datetime or YYYY-MM-DD date. |
| created_before | string | — | Filter mail created at or before this ISO 8601 datetime or YYYY-MM-DD date. Date-only values include the whole UTC day. |
| limit | number | — | Maximum number of mail jobs to return (1-100). Defaults to 20. |
| offset | number | — | Number of mail jobs to skip for pagination. Defaults to 0. |
| q | string | — | Search recipient name, address lines, city/state/ZIP, tracking number, or agent notes. |
| status | string | — | Filter 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_mode | boolean | — | Filter sandbox/test records. Defaults to the key environment for agent-scoped keys; member keys can pass true or false explicitly. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | Outbound 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.
| Name | Type | Req | Description |
|---|---|---|---|
| carrier | string | — | Filter by shipping carrier. |
| limit | number | — | Maximum number of packages to return (1-100). Defaults to 20. |
| offset | number | — | Number of packages to skip for pagination. Defaults to 0. |
| since | string | — | Only return packages received after this ISO 8601 date-time. |
| status | string | — | Filter by package lifecycle status. "received" = just arrived, "stored" = in facility storage, "forwarded" = shipped to forwarding address. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | Inbound 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Optional category filter. |
| include | array | — | Optional expansions. Add events to include inbound/outbound timeline references. |
| limit | number | — | Maximum number of threads to return (1-100). |
| offset | number | — | Number of threads to skip for pagination. |
| status | string | — | Optional thread status filter. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Postal 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.
| Name | Type | Req | Description |
|---|---|---|---|
| reason | string | yes | Why this change is suggested (e.g. "Observed 5 Amazon packages this week, all forwarded manually — adding auto-forward rule"). |
| suggested_content | string | yes | Full proposed MAILBOX.md content (max 10,000 chars). Must include the complete document, not just the diff. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Created 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).
| Name | Type | Req | Description |
|---|---|---|---|
| auto_action | string | — | Action to auto-execute when the package arrives. |
| auto_action_params | object | — | Parameters for the auto-action (e.g. forwarding address). |
| carrier | string | — | Shipping carrier (e.g. "fedex", "ups", "usps"). |
| description | string | — | Human-readable description of the shipment (e.g. "Replacement laptop from Dell"). |
| expected_by | string | — | Expected arrival date in ISO 8601 format. Used for alerts if the package is late. |
| tracking_number | string | — | Carrier tracking number for the expected shipment. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Created 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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Action 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_id | string | yes | UUID of the package to act on. |
| parameters | object | — | Action-specific parameters. For "forward": { address, city, state, zip }. For "scan": { scan_type }. For "hold": { until_date }. |
| priority | string | — | Processing priority. "urgent" = same-day processing, "high" = next business day, "normal" = standard queue, "low" = when convenient. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Created 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.
| Name | Type | Req | Description |
|---|---|---|---|
| package_id | string | yes | UUID of the package to scan. |
| scan_type | string | — | Type of scan. "label" = shipping label only, "envelope" = exterior envelope, "document" = full document OCR, "content" = opened package contents. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Created 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.
| Name | Type | Req | Description |
|---|---|---|---|
| action_request_id | string | — | Optional: link this message to an action request for context. |
| body | string | yes | Message text (1-5000 characters). |
| package_id | string | — | Optional: link this message to a specific package for context. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Sent 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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_notes | string | — | Instructions for the facility operator (e.g. "Time-sensitive — mail today"). |
| color | boolean | — | Print 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_base64 | string | yes | Base64-encoded document file. Supported formats: PDF, DOCX, JPG, PNG, TXT, CSV. Max 10MB decoded. |
| document_filename | string | — | Original filename with extension (e.g. "letter.docx"). Required for reliable non-PDF format detection. |
| dry_run | boolean | — | Validate inputs and return cost breakdown without creating a record or spending credits. Use to preview required credits before committing. |
| duplex | boolean | — | Request 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_id | string | — | Optional inbound mail item this outbound piece is replying to. Recommended when drafting from OCR/forwarded-mail context. |
| mail_class | string | — | 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 number by default. Use p… |
| mailbox_md_version | number | yes | Your current MAILBOX.md version (from get_mailbox_md). Required for sync verification. |
| max_cost_cents | integer | — | Cost cap in cents. If the calculated cost exceeds this, the request is rejected with 422 before credits are spent. Prevents accidental expensive mailings. |
| metadata | object | — | Arbitrary key-value pairs echoed in GET responses and webhooks. Recommended convention: { "workflow_id": "wf_123", "reason": "Customer cancellation", "correlation_id": "abc" }. |
| package_id | string | — | Link this mail to an inbound package (e.g. replying to received correspondence). |
| page_count | number | — | Explicit 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_id | string | — | Optional physical-mail thread to attach this outbound mail to. Lets agents keep inbound and outbound activity in one durable workflow. |
| recipient_city | string | yes | Recipient city. |
| recipient_company | string | — | Company or organization line for the recipient. Optional when recipient_name is provided. |
| recipient_country | string | — | ISO 3166-1 alpha-2 country code. Defaults to "US". |
| recipient_line1 | string | yes | Street address line 1 of the recipient. |
| recipient_line2 | string | — | Street address line 2 (apartment, suite, unit, etc.). |
| recipient_name | string | — | Person name of the mail recipient. Optional when recipient_company is provided. |
| recipient_state | string | yes | 2-letter US state code (e.g. CA, NY, TX). |
| recipient_zip | string | yes | 5 or 5+4 digit ZIP code (e.g. "90210" or "90210-1234"). |
| requires_approval | boolean | — | If true, the renter must approve in their dashboard before the mail is printed and sent. |
| return_city | string | — | Return address city. Defaults to member profile if omitted. |
| return_company | string | — | Optional company or organization line for the return address. |
| return_line1 | string | — | Return address line 1. Defaults to member profile if omitted. |
| return_line2 | string | — | Return address line 2 (suite, unit, etc.). |
| return_name | string | — | Return address name. Defaults to the member's profile name if omitted. |
| return_state | string | — | Return address state (2-letter code). Defaults to member profile if omitted. |
| return_zip | string | — | Return address ZIP code. Defaults to member profile if omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Submitted 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.
| Name | Type | Req | Description |
|---|---|---|---|
| action_id | string | yes | The action request ID to update. |
| agent_data | object | — | Structured data to attach (e.g. OCR results, extracted fields, classification labels). |
| agent_notes | string | — | Free-text notes from the agent (e.g. "Forwarding per standing rule #3"). |
| decision_context | object | — | Link this decision to a specific MAILBOX.md instruction for auditability. |
| mailbox_md_version | number | yes | Your current MAILBOX.md version (from get_mailbox_md). Required for sync verification. |
| respond_to_clarification | string | — | Response text when action status is needs_clarification. Providing this auto-resumes the action to in_progress. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Updated 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.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | — | Set to false to pause webhook delivery without removing the URL. |
| event_types | array | — | Array of event types to subscribe to (e.g. ["package.received", "mail.status_changed"]). Empty array disables all events. |
| webhook_url | string | — | HTTPS URL to receive webhook POST requests. Must respond with 2xx within 10 seconds. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | Webhook configuration status. |
No examples provided.