Postedly
Server Details
Letters, certified mail, postcards, fax, handwritten cards and checks; human review before payment.
- Status
- Healthy
- Uptime
- 97.0% over 42 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 18 tools
Most tools target clearly distinct resources: contacts, drafts, orders, products, services, documents and quotes each have their own surface, and the read/write split is spelled out in descriptions. The main overlap is postedly_order_status vs postedly_delivery_report, which both return payment/fulfillment/timeline evidence for a single owned order, plus a milder prepare_document vs upload_document pairing that descriptions do resolve.
There is a rough implicit convention (bare nouns for reads like contacts/orders/drafts, verb_noun for writes like save_contact/delete_draft/prepare_document), but it breaks in several places: postedly_quote and postedly_checkout are noun-named creation flows, and postedly_check_draft reads ambiguously as 'check a draft' rather than 'draft a check'. All names are snake_case with a consistent postedly_ prefix, so it stays readable, just not predictable.
Eighteen tools is on the high side of the comfortable range, but the domain genuinely spans several sub-areas (document upload, quotes/checkout, contacts, drafts, orders, checks, catalog). Each tool maps to a distinct operation with no obvious filler, though a couple (order_status/delivery_report) could be merged.
Lifecycle coverage is solid: contacts and drafts have list/save/delete with optimistic versioning, documents have prepare/upload/status, orders have list/status/report, and quotes flow into checkout. Notable gaps are order cancellation/resend and document deletion, but the design explicitly defers approvals, payment and account changes to the owner's browser, so these are defensible omissions rather than dead ends.
Available Tools
18 toolspostedly_bank_accountsARead-onlyIdempotentInspect
Returns the connected account owner’s US checking accounts for paper checks, as masked references with readiness and the next human step. Never returns account or routing numbers. Takes no input. Does not connect, change or verify an account; the owner does that in their browser.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/idempotentHint annotations, the description discloses that results are masked references that never include account or routing numbers, and that each carries readiness plus the next human step. That is substantive behavioral context an agent could not get from the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, all front-loaded with the return shape first and the exclusions after. Every sentence carries distinct information (what is returned, masking guarantee, no input, no mutation), with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description steps in to describe the return contents (masked references, readiness, next human step) and privacy guarantees. Combined with the annotations, an agent has everything needed to call this correctly and interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the baseline is 4, and the description reinforces it by stating 'Takes no input,' matching the empty schema with additionalProperties=false. No further parameter detail is possible or needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns the owner's connected US checking accounts used for paper checks, as masked references. It also distinguishes the scope by clarifying what the tool does not do (connect, change, verify), so an agent can place it precisely among the sibling list/draft tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'for paper checks' framing and the explicit exclusion 'Does not connect, change or verify an account; the owner does that in their browser' give clear context and an exclusion, steering the agent away from expecting mutation. It stops short of naming an alternative sibling or an explicit when-to-use trigger, so it is a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_check_draftAInspect
Drafts one paper check drawn on the owner’s own ready checking account and returns a fee quote and a private review link. The check amount is paid from the owner’s bank when the payee deposits it; Postedly charges only the service fee. Returns masked account details, the allocated check number, the face value, the fee and the review link. Does not sign, approve, pay for or send the check: the owner must review the full proof, sign and pay in their browser.
| Name | Required | Description | Default |
|---|---|---|---|
| memo | No | ||
| payee | Yes | Exact payee printed on the check and its US mailing address. | |
| bankRef | Yes | ||
| amountCents | Yes | Check face value in US cents. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description explains the payment flow, that Postedly charges only a service fee, what is returned, and critically that the tool does not sign, approve, pay for or send the check. It discloses the human review and browser payment requirement, which is important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and appropriately sized, with the core action and limitations stated early. It repeats the fee and review link in the return list after already mentioning them in the opening sentence, which is minor redundancy but not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-output-schema tool, the description explains returns, fees, the review link, and the required next steps. It is still missing explicit semantics for bankRef and memo, and does not mention idempotency, but the overall workflow is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, with payee and amountCents described in the schema. The description adds useful context that the account is the owner's ready checking account and the amount is the check face value, but it does not explain bankRef or memo semantics, so it only partially compensates for the remaining gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: drafts one paper check drawn on the owner's ready checking account. It also distinguishes the operation from final payment by saying it does not sign, approve, pay for or send the check, which separates it from checkout-like siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly sets the context: this creates a draft and returns a review link, while the owner must review, sign and pay in the browser. It does not explicitly name alternative sibling tools such as postedly_checkout or postedly_quote, but the when-not-to-use boundary is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_checkoutARead-onlyIdempotentInspect
Returns a private browser review link for an existing, owned, unexpired quote, identified by quoteId. The review page shows the exact final proof or item, recipient, total and terms, reuses or verifies the human payer’s own receipt email, and collects the payer’s explicit approval before hosted Stripe Checkout. Does not approve the quote, accept terms, create an order, take payment or send anything.
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | Yes | ||
| acceptedTerms | No | Deprecated and ignored. Has no effect; terms are accepted only on the browser review page. | |
| confirmedDocument | No | Deprecated and ignored. Has no effect; the document is approved only on the browser review page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), yet the description goes further: it explains what the review page displays (proof/item, recipient, total, terms), that it verifies the payer's own receipt email, that approval is collected on the page, and enumerates the side effects it does NOT perform. That is real behavioral context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded with the primary purpose in the first clause, followed by page behavior and then the negative scope. The first sentence is long and clause-heavy, but each clause adds distinct information, so there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still conveys what the returned link is and how the downstream page behaves. It omits what happens on error (e.g., quote not owned or expired), which is the one piece an agent might need to handle failure paths.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; quoteId has only minLength in the schema, so the description's qualifiers ('existing, owned, unexpired') carry the meaning of that parameter. The two deprecated booleans are already fully explained in the schema, so no extra description text is needed for them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a private browser review link') scoped to 'an existing, owned, unexpired quote, identified by quoteId'. This clearly separates it from siblings like postedly_quote or postedly_order_status, which do not produce a payer review link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Preconditions are explicit (quote must be existing, owned, and unexpired) and the negative scope ('Does not approve the quote, accept terms, create an order, take payment') tells the agent when this tool is not the right call. It stops short of naming a sibling alternative such as postedly_order_status for post-checkout tracking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_contactsARead-onlyIdempotentInspect
Returns private saved recipients and return-address contacts matching a label or key. Read-only; does not change contacts. Returns contact details and a version for safe updates. Contacts are saved only on request, retained for one year after the last save, and are not proof of address deliverability.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| limit | No | ||
| query | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| retention | Yes | |
| nextOffset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description still adds genuine context the annotations cannot: contacts are stored only on request, retained one year after the last save, come with a version token for safe updates, and are not proof of address deliverability. It stops short of rate limits or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences that are front-loaded with the purpose and read-only guarantee. The retention/disclaimer sentence is extra but carries real caveat value; nothing is padded or circular.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be detailed, and annotations handle the safety profile, so the remaining burden is parameter and paging behavior — which is the one real gap. Purpose, retention caveat and version-token note make it otherwise sufficient for a low-risk lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all four parameters (key, limit, query, offset) are undocumented in the schema, so the description must compensate. It only alludes to "a label or key", leaving the pagination contract (limit max 25, offset max 10000, default paging) and the free-text query parameter with no meaning added anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Returns") and resource (private saved recipients and return-address contacts) plus the matching criterion (label or key). The read-only framing cleanly separates it from the write-oriented siblings postedly_save_contact and postedly_delete_contact, so an agent can route correctly without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer this is the lookup tool for saved contacts, but no explicit when-to-use condition, prerequisite, or alternative (e.g., listing vs. saving vs. deleting) is named. It never tells the agent when NOT to call it or what to call instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_delete_contactADestructiveIdempotentInspect
Deletes one private saved contact after explicit deletion confirmation and a matching current version. Existing quotes and orders retain their original details. Does not cancel or modify a delivery.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| confirmedDelete | Yes | ||
| expectedVersion | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds real value beyond that: the two-part precondition (confirmation + version match) and the blast-radius disclosure that related quotes and orders are left untouched and no delivery is affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action before the preconditions and scope caveats. The last two sentences are distinct (quotes/orders vs. delivery) but border on redundant scope statements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations carry the safety profile. The description covers preconditions and non-effects well; the only real gap is the undocumented 'key' parameter, which remains opaque for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all three parameters, so the description carries the burden. It conveys the intent of confirmedDelete ('explicit deletion confirmation') and expectedVersion ('a matching current version'), but says nothing about the 'key' identifier or why the version must match. Partial compensation, not full.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('Deletes one private saved contact') with distinguishing scope ('private saved contact'), which cleanly separates it from siblings like save_contact, delete_draft, and the order/quote tools. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies preconditions ('after explicit deletion confirmation and a matching current version') and gives a partial exclusion ('Does not cancel or modify a delivery'), but never names an alternative tool or states an explicit when-not rule. Usage is inferable rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_delete_draftADestructiveIdempotentInspect
Deletes one private saved correspondence draft after explicit deletion confirmation and a matching version. Does not delete its PDF or affect an existing quote or order.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| confirmedDelete | Yes | ||
| expectedVersion | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so safety is partly covered. The description adds value beyond them by disclosing the optimistic-concurrency guard (matching expectedVersion), the confirmation guard, and the important non-effects (PDF, quote and order are untouched) – exactly the kind of blast-radius detail an agent needs before a destructive call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the action plus its guards first, the negative scope second. Every clause carries information and nothing is repeated from the title or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description covers preconditions and non-effects well. It is slightly short of complete because it does not say what the caller experiences on a version mismatch or what 'private' constrains about ownership.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema names the three parameters but explains none of them. The description partially compensates by implying confirmedDelete ('explicit deletion confirmation') and expectedVersion ('a matching version'), but says nothing about the key format or what happens when the version does not match. Partial mapping, not full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (deletes) and a precisely scoped resource (one private saved correspondence draft), then immediately delimits what it does NOT touch (PDF, quote, order). This is distinguishable from postedly_delete_contact and from postedly_save_draft without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear preconditions for calling it – explicit deletion confirmation plus a matching version – which tells the agent when the call is legitimate. It stops short of naming alternatives (e.g., save_draft to modify instead of delete), so it is clear context rather than full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_delivery_reportARead-onlyIdempotentInspect
Returns the recorded payment, fulfillment, timeline and available provider evidence for one owned order as a plain-text report. Returns file content that can be saved privately. Evidence is provider-reported; the report is not legal proof or independent confirmation of receipt. Does not publish, share, charge or resend.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | |
| orderId | Yes | |
| filename | Yes | |
| mimeType | Yes | |
| recordedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so safety is covered. The description adds value beyond them: output is plain-text file content intended to be saved privately, evidence is provider-reported and explicitly not legal proof, and it does not publish, share, charge or resend. It omits pagination/size or ownership-failure behavior, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with what is returned and followed by caveats and explicit non-actions. Slight redundancy between 'Returns ... as a plain-text report' and 'Returns file content', but no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be re-described, and annotations carry the safety profile. The description covers the evidence-reliability caveat and the non-write scope, leaving only minor gaps (ownership failure handling, report size/limits).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (orderId) and schema description coverage is 0%, so the schema supplies no semantics. The description contributes the 'owned order' constraint, implying an authorization/ownership check on the id, but gives no format, example, or failure behavior for the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and multi-part resource (payment, fulfillment, timeline, provider evidence) scoped to 'one owned order', and the final sentence rules out the write-like siblings. It is clear what the tool produces, though it never names which sibling (e.g. postedly_order_status) it supersedes for evidence export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'for one owned order' and 'not legal proof', but there is no explicit when-to-use or when-not-to-use guidance relative to postedly_orders or postedly_order_status. The agent must infer the export-evidence use case from the return-format wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_document_statusARead-onlyIdempotentInspect
Returns the state of an owned, single-use upload request: awaiting upload, uploading, complete or expired. A completed upload includes its private document ID, SHA-256, page count, byte count and authenticated preview URL. Read-only; does not change the request or the document.
| Name | Required | Description | Default |
|---|---|---|---|
| documentRequestId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false; the description adds that it 'does not change the request or the document' and lists the exact returned artifacts, reinforcing the read-only behavior with concrete detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, then the return payload contract. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the return fields (document ID, SHA-256, page count, byte count, preview URL) and the possible states, so an agent knows what to expect; the remaining gap is the unexplained parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter documentRequestId, and the description never explains where this ID comes from or what qualifies as a valid/owned request, leaving the only parameter undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the state of an owned, single-use upload request') and enumerates the possible states, making its scope distinct from sibling write operations like prepare_document or upload_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied — poll this after initiating an upload — but the description never says when to call it versus alternatives or what triggers a status check. No explicit when/when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_draftsBRead-onlyIdempotentInspect
Returns saved correspondence drafts matching a label or key with their exact preparation details. Read-only; does not send or change drafts. Drafts expire 30 days after the last save. A draft is not a quote, approval, payment, or order; its referenced PDF may expire separately.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| limit | No | ||
| query | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| retention | Yes | |
| nextOffset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the 'Read-only; does not send or change drafts' line is largely redundant. However, the description adds genuinely new behavioral context: drafts expire 30 days after the last save, and the referenced PDF may expire on a separate schedule — expiry semantics the annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then layered with safety, expiry, and disambiguation. The four-item negation list ('quote, approval, payment, or order') is a touch verbose but each clause earns its place by preventing a concrete misuse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the safety/expiry picture is solid. The gap is input-side: with zero schema coverage, limit, offset, and the key format are left unexplained, which matters for a paginated list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 4 parameters, so the description carries the burden. It gestures at 'matching a label or key', which loosely covers key and query, but says nothing about limit/offset pagination or the key pattern constraint. Two of four parameters remain undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns saved correspondence drafts') and adds an explicit negative definition — a draft is not a quote, approval, payment, or order — which routes the agent away from postedly_quote and postedly_orders. The phrase 'matching a label or key' is slightly fuzzy against the actual parameter set (key, query), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The negative definition ('not a quote, approval, payment, or order') implicitly helps the agent avoid the wrong sibling, but there is no explicit when-to-use statement and no mention of postedly_save_draft or postedly_delete_draft as the write/delete counterparts. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_ordersARead-onlyIdempotentInspect
Returns owned orders matching recipient name or order ID, service, fulfillment status and date range. Returns up to 50 matching orders and nextOffset for another page, newest first. Omitting filters preserves the recent-order view. Read-only; does not change or resend any order.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| query | No | ||
| offset | Yes | ||
| service | No | ||
| createdAfter | No | ||
| createdBefore | No | ||
| fulfillmentStatus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the closing safety sentence is largely redundant, but the description adds genuinely new behavior: a hard cap of 50 results, a nextOffset cursor for paging, and newest-first ordering. What is missing is anything about authorization scope beyond "owned" or what happens when filters match nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with purpose and filter scope, then return shape, then safety. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly fills the gap by describing the result shape (up to 50 orders plus nextOffset, newest first) and the default empty-filter behavior. It stops short of covering pagination termination or permission prerequisites, which an agent would still want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and mostly meets it: it maps query to recipient name or order ID, names the service, fulfillmentStatus and date-range filters, and covers limit and offset via "up to 50" and "nextOffset for another page." It does not explain that offset/limit are required with defaults, nor the date-time format constraints, leaving minor gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb (Returns) plus a scoped resource (owned orders) and enumerates the filter dimensions the tool matches on. It never references the closest sibling, postedly_order_status, so an agent cannot fully rule out overlap from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Omitting filters preserves the recent-order view" implies the no-argument usage, but there is no explicit when-to-use vs. when-not, and no mention of postedly_order_status or postedly_delivery_report as alternatives. Usage must be inferred from the filter list rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_order_statusARead-onlyIdempotentInspect
Returns the recorded payment and fulfillment states for one order owned by the connected account, with its timeline and available provider evidence. Fax confirmation concerns transmission to the receiving machine; mail delivery states reflect provider-reported milestones. Read-only; does not change, cancel or resend the order.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description adds real value beyond that: it enumerates what the returned state comprises (timeline, provider evidence) and clarifies that fax confirmation is transmission-level while mail states are provider-reported milestones. The 'does not change, cancel or resend' clause partly restates annotations but usefully rules out the resend side effect an agent might otherwise assume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core purpose before the auxiliary semantics. The read-only disclaimer is slightly redundant against the annotations, costing a little efficiency, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns, and it does so at a high level (payment/fulfillment states, timeline, provider evidence). Combined with annotations covering the safety profile and a single required param, an agent has enough to invoke it correctly; only the orderId format is left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter (orderId) and schema description coverage is 0%, so the schema gives no format hints. The description does not explain the orderId format, but it does add a meaningful constraint — the order must be owned by the connected account — which is scope information the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (returns) and resource (recorded payment and fulfillment states for one order) and scopes it to an order owned by the connected account. It further disambiguates what 'status' actually includes (timeline, provider evidence) and distinguishes fax vs mail semantics. It does not, however, explicitly differentiate itself from sibling tools like postedly_orders or postedly_document_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: fetch this when you need the state of a single order the connected account owns. There is no explicit when-to-use/when-not guidance and no pointer to the sibling tools (e.g., postedly_orders for listing) that would help an agent route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_prepare_documentAInspect
Creates a private, single-use document-upload request with a 15-minute expiry and a 10 MiB file limit. Returns a request ID, a multipart upload endpoint for direct transfer of the file bytes, and a browser upload URL where a person can upload the file instead. Does not upload a document, create a quote or order, take payment or send anything.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | ||
| filename | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations by disclosing privacy (private), single-use semantics, a 15-minute expiry, a 10 MiB file limit, and the three returned artifacts (request ID, multipart endpoint, browser URL). The annotations only cover safety hints; the description supplies the operational constraints an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences with no filler; the core action and constraints are front-loaded and the exclusions close the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly documents the return values (request ID, upload endpoints) and the lifetime/size constraints. Nothing essential to correct invocation is missing aside from parameter documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for two parameters (service enum and filename), and the description never mentions either parameter or explains the fax/letter/certified/postcard values. The 10 MiB mention concerns the file, not the filename argument, so the description does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a private, single-use document-upload request') with concrete scope (15-minute expiry, 10 MiB limit). It clearly distinguishes itself from siblings like postedly_upload_document and postedly_checkout by declaring what it does not do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing sentence provides explicit when-not guidance ('Does not upload a document, create a quote or order, take payment or send anything'), which routes the agent away from postedly_upload_document and postedly_checkout. However, it never names those alternatives explicitly or states the positive condition for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_productsARead-onlyIdempotentInspect
Returns the configured products for a service, currently handwritten cards, with identifiers, descriptions, images and per-item availability. A listed product is not necessarily open for ordering. Does not create a quote, order or payment.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), so the bar is lower. The description nonetheless adds a valuable behavioral caveat — presence in the list does not mean the product can be ordered — and discloses the shape of the returned data (identifiers, descriptions, images, per-item availability). No auth or rate-limit context, hence not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the return contract, then the availability caveat, then the negative boundary. Every sentence earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields, and with only one low-coverage parameter it explains the service value. For a read-only browse tool, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'service' parameter has 0% schema description coverage and only an enum of ['handwritten'], so the description must carry the load — and it does, clarifying that the service currently resolves to handwritten cards. It stops short of naming the parameter or stating that 'handwritten' is the only accepted value, so the mapping is inferable rather than explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (returns configured products for a service) and names the concrete scope ('currently handwritten cards') plus the fields returned. The closing 'Does not create a quote, order or payment' explicitly draws the boundary against postedly_quote, postedly_orders and postedly_checkout, so an agent can select it without opening a sibling schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context via the negative boundary — it does not create a quote, order or payment — which implicitly routes transactional intents to the sibling tools. It also warns that a listed product is not necessarily orderable, a real selection condition, but it never states positively when to prefer this over postedly_services or postedly_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_quoteAInspect
Creates a time-limited price quote for one physical delivery: mailing a letter or PDF, certified mail, a postcard, a fax, a handwritten card or another available Postedly delivery service. Each quote covers one exact document or product and one recipient, and includes tax and delivery costs. Document services take the private document ID of an uploaded PDF; their quote includes a final proof of every page, including the document body and any generated cover. Handwritten cards take a selected card, handwriting style, message and optional closing instead of a PDF; their quote includes the immutable text and address details with card-design and handwriting-style samples, not an image of the finished message. Returns the quote with its final preview, recipient, total and expiry. Does not draft or edit documents, summarize PDFs or send email. Does not approve, charge or send an order.
| Name | Required | Description | Default |
|---|---|---|---|
| sender | Yes | Sender identity and billing location. When email is omitted, the connected account’s verified email is used. Fax needs US country, state and postalCode. Postal letters, certified mail, postcards and handwritten cards also need the full return address. The private browser review verifies the human payer’s receipt email separately; it does not change the quoted sender or the connected creator. | |
| options | No | ||
| service | Yes | ||
| recipient | Yes | One recipient. Fax requires fax and US country. Other channels require address1, city, state, postalCode and US country. | |
| documentId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety/opacity profile (readOnlyHint false, openWorldHint true, idempotentHint false, destructiveHint false). The description adds material context beyond that: the quote includes tax and delivery costs, is time-limited, returns a final preview plus recipient, total and expiry, and does not itself approve, charge or send. That distinction between quoting and ordering is exactly the behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose, branch conditions, return contents and exclusions are front-loaded and each clause carries distinct information. The middle section on what each proof includes is dense and slightly over-detailed relative to selection needs, but nothing is genuinely wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with nested conditionals and no output schema, the description covers the quote result, the service-dependent required inputs, and the boundary against drafting/charging siblings. It omits the address-verification/sendAsEntered path and any expiry duration detail, but the essentials for correct invocation are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 40% schema description coverage, the description has to compensate, and it does for the branching inputs: documentId is tied to document services while handwritten requires card product, font/style, message and closing (wishes). It does not explain sendAsEntered, quantity, or the sender email fallback, so the gap is not fully closed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Creates a time-limited price quote for one physical delivery') and enumerates the concrete channels the quote covers (letter/PDF, certified, postcard, fax, handwritten). The closing 'Does not...' clauses separate it from the drafting and checkout siblings, so an agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for each branch: document services take a private document ID, handwritten cards take a card, style, message and closing instead of a PDF. The exclusions ('does not draft or edit documents... does not approve, charge or send an order') implicitly route to the prepare_document and checkout siblings, but those alternatives are not named explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_save_contactADestructiveIdempotentInspect
Stores a private recipient or return-address contact after the user explicitly requests storage. expectedVersion 0 creates a new key; a current matching version allows a deliberate update. An identical retry returns the existing record. Does not validate deliverability, create a quote, or send.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| label | Yes | ||
| contact | Yes | ||
| confirmedSave | Yes | ||
| expectedVersion | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| item | Yes | |
| replayed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which already declare readOnlyHint=false, idempotentHint=true, destructiveHint=true), the description explains the optimistic-concurrency contract: version 0 creates, a matching current version permits a deliberate update, and an identical retry is a safe no-op returning the existing record. That is substantial behavioral context the annotations alone do not convey; it does not contradict destructiveHint, since updates overwrite the stored record.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action front-loaded and no filler. The negative-scope sentence is slightly list-like but every clause carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described, and the description covers the mutation, idempotency, and concurrency semantics that matter for calling correctly. It omits what happens on a version mismatch (conflict error?) and any permission/auth requirement, which are minor gaps for a 5-param nested write.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 required parameters, so the description must carry the burden. It explains expectedVersion well and hints at the confirmedSave gate via 'explicitly requests storage', but says nothing about key, label, or the nested contact/details fields, leaving the majority of the input surface undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Stores a private recipient or return-address contact'), making the object unambiguous among siblings like postedly_contacts and postedly_delete_contact. The 'private' qualifier and the recipient/sender role distinguish it from the broader contact and document tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a clear precondition ('after the user explicitly requests storage') and negative scope ('Does not validate deliverability, create a quote, or send'), which rules out confusion with postedly_quote and the send/prepare siblings. It stops short of naming a concrete alternative tool or explaining when to prefer an update path over a fresh save.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_save_draftADestructiveIdempotentInspect
Stores private preparation details for one intended physical delivery after the user asks to save a draft. expectedVersion 0 creates a new key; a current matching version allows an update. Stores a service, optional owned PDF reference, recipient, sender and options for 30 days. Does not generate a quote, approve, pay, or send.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| draft | Yes | ||
| label | Yes | ||
| confirmedSave | Yes | ||
| expectedVersion | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| item | Yes | |
| replayed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructive/idempotent/not-readOnly), it discloses the optimistic-concurrency rule (expectedVersion 0 creates, a matching current version updates), the 30-day retention window, and an explicit negative scope. It doesn't say what happens on a stale version (reject vs overwrite) despite destructiveHint=true, leaving the risk profile partly inferred.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense, front-loaded sentences that each carry distinct information and end with a crisp negative scope. It is information-rich rather than padded, though the packing of versioning rules into one sentence is slightly terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with an output schema, it covers retention, concurrency, and non-goals, which is most of what an agent needs. The remaining gap is the unexplained required 'confirmedSave' flag and stale-version behavior, but overall it is sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage the description must carry parameter meaning, and it only partly does: it explains expectedVersion semantics and maps documentId ('optional owned PDF reference'), service, sender, recipient and options. 'key', 'label' and especially the const-true 'confirmedSave' remain unexplained, leaving a required guard flag opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (stores/saves a correspondence draft) and scopes it to 'private preparation details for one intended physical delivery.' It is clearly distinguishable from delete_draft or drafts, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a trigger ('after the user asks to save a draft') and useful exclusions ('Does not generate a quote, approve, pay, or send'), effectively routing the agent away from postedly_quote and postedly_checkout. It does not name a concrete alternative tool for editing an existing draft, so no full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_servicesARead-onlyIdempotentInspect
Returns current channel availability and starting prices for fax, letters, certified mail, postcards, handwritten cards and customer-drawn paper checks, plus the Make & send an object beta, which has custom pricing. Each entry reports whether automated ordering is available. Entries with quoteMode manual are priced through a personal quote request at their quoteUrl. The object beta covers simple plastic 3D printed objects made from a ready STL/3MF model or with paid design help. Takes no input. Does not create a quote, order or payment.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered; the description adds genuinely new context: no inputs, no side effects on quotes/orders/payments, per-entry automated-ordering flag, and that quoteMode manual entries must be priced via their quoteUrl rather than here. That is real behavioral disclosure beyond the annotations, though it doesn't discuss caching or freshness of the prices.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what is returned, then scope notes, then the negative constraint. The object-beta explanation takes two sentences and is slightly heavier than needed, but every sentence carries information an agent would otherwise have to guess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the full burden and meets it: it enumerates the service channels, describes the per-entry fields conceptually (automated ordering availability, starting price, quoteMode/quoteUrl), and flags the custom-priced beta. An agent knows what comes back and what not to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4; the description correctly states 'Takes no input,' which is consistent with the empty schema. There is nothing further to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns channel availability and starting prices for a named list of services (fax, letters, certified mail, postcards, handwritten cards, paper checks, plus the object beta). An agent can distinguish this catalog/availability lookup from siblings like postedly_products, postedly_quote and postedly_checkout without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context and explicit exclusions: 'Takes no input. Does not create a quote, order or payment,' which routes an agent toward the quoting/ordering siblings when that is the actual goal. It stops short of naming postedly_quote explicitly as the alternative for quoteMode manual entries, so the routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postedly_upload_documentAInspect
Stores one recipient-facing PDF from its exact bytes, supplied as canonical base64, without a browser. Accepts a valid, unencrypted PDF up to 10 MiB decoded. When expectedSha256 is supplied, a mismatch rejects the upload; a matching hash confirms byte integrity, not content correctness. Returns a private document ID, page count, byte count, SHA-256 and an authenticated preview URL. Service-specific layout checks run at quote time. Does not create a quote, take payment or send anything.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | ||
| filename | Yes | Filename only, without a local path. | |
| contentBase64 | Yes | Standard padded base64 of the exact file bytes. No data URL prefix or whitespace. | |
| expectedSha256 | No | Optional SHA-256 computed from the original file bytes; a mismatch rejects the upload. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the 10 MiB decoded size ceiling, the unencrypted-PDF-only constraint, the reject-on-hash-mismatch behavior, and the precise caveat that a matching hash proves byte integrity but not content correctness. It also flags that layout checks are deferred to quote time, which is non-obvious and materially affects agent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the core action and the byte format lead, constraints follow, and the exclusion sentence lands last. Every sentence carries distinct information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description enumerates the return payload (document ID, page count, byte count, SHA-256, authenticated preview URL), covers the size and encryption constraints, and explains the hash caveat. Nothing an agent needs to call or interpret this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 75%, so the schema documents most fields. The description adds genuine meaning for expectedSha256 by clarifying it verifies byte integrity rather than content, and ties 'service' to downstream layout checks at quote time. It does not add much for filename or contentBase64 beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (stores one recipient-facing PDF from exact bytes) and immediately scopes it against siblings by declaring it does not create a quote, take payment, or send anything. An agent can distinguish this from postedly_quote or postedly_prepare_document without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Boundary conditions are explicit ('Does not create a quote, take payment or send anything') and the no-browser/byte-supply requirement makes the intended invocation context clear. It stops short of naming which sibling to call before or after (e.g., postedly_quote, postedly_prepare_document), so routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
postedly_orders1 field changed- changed
Input schema / properties / service / enumPrevious value: -[ - "fax", - "letter", - "certified", - "postcard", - "handwritten" -]New value: +[ + "fax", + "letter", + "certified", + "postcard", + "handwritten", + "check" +]
2 tool updates
- Added
postedly_bank_accounts - Added
postedly_check_draft
8 tool updates
- Added
postedly_contacts - Added
postedly_delete_contact - Added
postedly_delete_draft - Added
postedly_delivery_report - Added
postedly_drafts - Changed
postedly_orders9 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / properties / createdAfterAdded value: +{ + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" +} - added
Input schema / properties / createdBeforeAdded value: +{ + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" +} - added
Input schema / properties / fulfillmentStatusAdded value: +{ + "enum": [ + "awaiting_payment", + "queued", + "submitting", + "submission_unknown", + "submitted", + "processing", + "sent", + "delivered", + "failed", + "cancelled" + ], + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "default": 50, + "maximum": 50, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "maximum": 100000, + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / queryAdded value: +{ + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / serviceAdded value: +{ + "enum": [ + "fax", + "letter", + "certified", + "postcard", + "handwritten" + ], + "type": "string" +} - changed
Input schema / requiredPrevious value: -[]New value: +[ + "offset", + "limit" +]
- Added
postedly_save_contact - Added
postedly_save_draft
2 tool updates
- Changed
postedly_checkout2 fields changed- changed
Input schema / properties / acceptedTerms / descriptionPrevious value: -"Deprecated and ignored. Terms acceptance must happen on the browser review page; this field never grants approval."New value: +"Deprecated and ignored. Has no effect; terms are accepted only on the browser review page." - changed
Input schema / properties / confirmedDocument / descriptionPrevious value: -"Deprecated and ignored. Document approval must happen on the browser review page; this field never grants approval."New value: +"Deprecated and ignored. Has no effect; the document is approved only on the browser review page."
- Changed
postedly_quote4 fields changed- changed
Input schema / allOfPrevious value: -[ - { - "else": { - "properties": { - "options": { - "properties": { - "message": { - "maxLength": 500, - "type": "string" - } - } - } - } - }, - "if": { - "properties": { - "service": { - "const": "handwritten" - } - }, - "required": [ - "service" - ] - }, - "then": { - "properties": { - "options": { - "additionalProperties": false, - "description": "The selected card’s catalog limits are authoritative. Raw message.length plus wishes.length must fit combinedCharacterLimit, never above 1000. Plain text only; signature codes, QR codes and template substitutions are not supported.", - "properties": { - "fontLabel": { - "maxLength": 100, - "minLength": 1, - "type": "string" - }, - "message": { - "maxLength": 1000, - "minLength": 1, - "pattern": "\\S", - "type": "string" - }, - "productId": { - "pattern": "^[1-9]\\d{0,14}$", - "type": "string" - }, - "quantity": { - "const": 1, - "type": "integer" - }, - "wishes": { - "default": "", - "maxLength": 200, - "type": "string" - } - }, - "required": [ - "productId", - "fontLabel", - "message" - ], - "type": "object" - }, - "recipient": { - "properties": { - "country": { - "const": "US" - } - }, - "required": [ - "name", - "address1", - "city", - "state", - "postalCode", - "country" - ], - "type": "object" - }, - "sender": { - "description": "Omit email to reuse the connected account’s verified email; unverified sessions must supply it.", - "properties": { - "country": { - "const": "US" - } - }, - "required": [ - "name", - "address1", - "city", - "state", - "postalCode", - "country" - ], - "type": "object" - } - }, - "required": [ - "options" - ] - } - } -]New value: +[ + { + "else": { + "properties": { + "options": { + "properties": { + "message": { + "maxLength": 500, + "type": "string" + } + } + } + } + }, + "if": { + "properties": { + "service": { + "const": "handwritten" + } + }, + "required": [ + "service" + ] + }, + "then": { + "properties": { + "options": { + "additionalProperties": false, + "description": "The selected card’s catalog limits are authoritative. Raw message.length plus wishes.length must fit combinedCharacterLimit, never above 1000. Plain text only; signature codes, QR codes and template substitutions are not supported.", + "properties": { + "fontLabel": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "message": { + "maxLength": 1000, + "minLength": 1, + "pattern": "\\S", + "type": "string" + }, + "productId": { + "pattern": "^[1-9]\\d{0,14}$", + "type": "string" + }, + "quantity": { + "const": 1, + "type": "integer" + }, + "wishes": { + "default": "", + "maxLength": 200, + "type": "string" + } + }, + "required": [ + "productId", + "fontLabel", + "message" + ], + "type": "object" + }, + "recipient": { + "properties": { + "country": { + "const": "US" + } + }, + "required": [ + "name", + "address1", + "city", + "state", + "postalCode", + "country" + ], + "type": "object" + }, + "sender": { + "description": "When email is omitted, the connected account’s verified email is used; unverified sessions must supply it.", + "properties": { + "country": { + "const": "US" + } + }, + "required": [ + "name", + "address1", + "city", + "state", + "postalCode", + "country" + ], + "type": "object" + } + }, + "required": [ + "options" + ] + } + } +] - changed
Input schema / properties / options / properties / sendAsEntered / descriptionPrevious value: -"PostGrid postal mail only. Request an exact-address quote after a failed live verification. Each role is explicit. This is not approval: the sender must review addressWarnings and accept the delivery risk on the secure approval page before payment."New value: +"PostGrid postal mail only. Requests an exact-address quote for an address that failed live verification, set separately for each role. Does not grant approval; the delivery risk shown in addressWarnings is accepted only on the secure approval page before payment." - changed
Input schema / properties / sender / descriptionPrevious value: -"Sender identity and billing location. Omit email to reuse the verified connected account; do not ask the user to repeat it or pass an email code through chat. Fax needs US country, state and postalCode. Postal letters, certified mail, postcards and handwritten cards also need the full return address. The private browser review verifies the human payer’s receipt email separately; it does not change the quoted sender or the connected creator."New value: +"Sender identity and billing location. When email is omitted, the connected account’s verified email is used. Fax needs US country, state and postalCode. Postal letters, certified mail, postcards and handwritten cards also need the full return address. The private browser review verifies the human payer’s receipt email separately; it does not change the quoted sender or the connected creator." - changed
Input schema / properties / sender / properties / email / descriptionPrevious value: -"Omit to reuse this connected account’s verified email. Required when the session has no verified email. An explicitly supplied email is never overwritten."New value: +"When omitted, the connected account’s verified email is used. Required when the session has no verified email. An explicitly supplied email is never overwritten."
1 tool update
- Changed
postedly_quote1 field changed- changed
Input schema / properties / sender / descriptionPrevious value: -"Sender identity and billing location. Omit email to reuse the verified connected account; do not ask the user to repeat it or pass an email code through chat. Fax needs US country, state and postalCode. Postal letters, certified mail, postcards and handwritten cards also need the full return address. Checkout requires the resolved sender email to match the verified connected account."New value: +"Sender identity and billing location. Omit email to reuse the verified connected account; do not ask the user to repeat it or pass an email code through chat. Fax needs US country, state and postalCode. Postal letters, certified mail, postcards and handwritten cards also need the full return address. The private browser review verifies the human payer’s receipt email separately; it does not change the quoted sender or the connected creator."
9 tool updates
- Changed
postedly_checkout1 field changed- changed
Output schema / (root)Previous value: -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "expiresAt": { - "type": "string" - }, - "instructions": { - "type": "string" - }, - "requiresBrowserApproval": { - "const": true - }, - "url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "url", - "requiresBrowserApproval", - "expiresAt", - "instructions" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "minLength": 1, - "type": "string" - }, - "details": { - "additionalProperties": false, - "properties": { - "addressRole": { - "enum": [ - "recipient", - "sender" - ] - }, - "canSendAsEntered": { - "type": "boolean" - } - }, - "required": [ - "addressRole", - "canSendAsEntered" - ], - "type": "object" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - } - }, - "required": [ - "error" - ], - "type": "object" - } - ], - "type": "object" -}New value: +null
- Changed
postedly_document_status1 field changed- changed
Output schema / (root)Previous value: -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "document": { - "additionalProperties": false, - "properties": { - "bytes": { - "maximum": 10485760, - "minimum": 1, - "type": "integer" - }, - "contentType": { - "const": "application/pdf" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "name": { - "type": "string" - }, - "pages": { - "maximum": 50, - "minimum": 1, - "type": "integer" - }, - "previewUrl": { - "format": "uri-reference", - "type": "string" - }, - "sha256": { - "pattern": "^[a-f0-9]{64}$", - "type": "string" - } - }, - "required": [ - "id", - "name", - "pages", - "bytes", - "sha256", - "previewUrl", - "contentType" - ], - "type": "object" - }, - "documentRequestId": { - "minLength": 1, - "type": "string" - }, - "expiresAt": { - "type": "string" - }, - "filename": { - "type": [ - "string", - "null" - ] - }, - "service": { - "description": "Current or historical service identifier; reads do not enable new orders.", - "type": "string" - }, - "status": { - "enum": [ - "awaiting_upload", - "uploading", - "complete", - "expired" - ] - } - }, - "required": [ - "documentRequestId", - "service", - "filename", - "status", - "expiresAt" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "minLength": 1, - "type": "string" - }, - "details": { - "additionalProperties": false, - "properties": { - "addressRole": { - "enum": [ - "recipient", - "sender" - ] - }, - "canSendAsEntered": { - "type": "boolean" - } - }, - "required": [ - "addressRole", - "canSendAsEntered" - ], - "type": "object" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - } - }, - "required": [ - "error" - ], - "type": "object" - } - ], - "type": "object" -}New value: +null
- Changed
postedly_order_status1 field changed- changed
Output schema / (root)Previous value: -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "addressWarnings": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "code": { - "enum": [ - "address_unit_required", - "address_unverified" - ] - }, - "message": { - "type": "string" - }, - "role": { - "enum": [ - "recipient", - "sender" - ] - } - }, - "required": [ - "role", - "code", - "message", - "address" - ], - "type": "object" - }, - "type": "array" - }, - "amountCents": { - "minimum": 0, - "type": "integer" - }, - "canCancel": { - "type": "boolean" - }, - "checkoutUrl": { - "anyOf": [ - { - "format": "uri", - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "currency": { - "type": "string" - }, - "document": { - "additionalProperties": false, - "properties": { - "bytes": { - "maximum": 10485760, - "minimum": 1, - "type": "integer" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "name": { - "type": "string" - }, - "pages": { - "maximum": 50, - "minimum": 1, - "type": "integer" - }, - "sha256": { - "pattern": "^[a-f0-9]{64}$", - "type": "string" - } - }, - "required": [ - "id", - "name", - "pages", - "bytes", - "sha256" - ], - "type": "object" - }, - "evidence": { - "description": "Provider evidence as stored; its structure depends on the historical delivery provider." - }, - "fulfillmentStatus": { - "type": "string" - }, - "handwritten": { - "additionalProperties": false, - "properties": { - "cardId": { - "minLength": 1, - "type": "string" - }, - "cardImageUrl": { - "format": "uri", - "type": "string" - }, - "cardName": { - "type": "string" - }, - "fontId": { - "minLength": 1, - "type": "string" - }, - "fontImageUrl": { - "format": "uri", - "type": "string" - }, - "fontLabel": { - "type": "string" - }, - "message": { - "type": "string" - }, - "previewKind": { - "const": "design_and_style_samples" - }, - "recipient": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "sender": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "stampName": { - "type": "string" - }, - "stampOptionId": { - "minimum": 0, - "type": "integer" - }, - "wishes": { - "type": "string" - } - }, - "required": [ - "cardId", - "cardName", - "cardImageUrl", - "fontId", - "fontLabel", - "fontImageUrl", - "message", - "wishes", - "sender", - "recipient", - "previewKind", - "stampOptionId", - "stampName" - ], - "type": "object" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "options": { - "additionalProperties": true, - "type": "object" - }, - "paymentStatus": { - "type": "string" - }, - "recipient": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "refundedCents": { - "minimum": 0, - "type": "integer" - }, - "sender": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "service": { - "description": "Current or historical service identifier; reads do not enable new orders.", - "type": "string" - }, - "timeline": { - "items": { - "additionalProperties": false, - "properties": { - "createdAt": { - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "message", - "createdAt" - ], - "type": "object" - }, - "type": "array" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "id", - "service", - "amountCents", - "refundedCents", - "currency", - "paymentStatus", - "fulfillmentStatus", - "createdAt", - "updatedAt", - "recipient", - "sender", - "options", - "addressWarnings", - "timeline", - "canCancel" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "minLength": 1, - "type": "string" - }, - "details": { - "additionalProperties": false, - "properties": { - "addressRole": { - "enum": [ - "recipient", - "sender" - ] - }, - "canSendAsEntered": { - "type": "boolean" - } - }, - "required": [ - "addressRole", - "canSendAsEntered" - ], - "type": "object" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - } - }, - "required": [ - "error" - ], - "type": "object" - } - ], - "type": "object" -}New value: +null
- Changed
postedly_orders1 field changed- changed
Output schema / (root)Previous value: -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "orders": { - "items": { - "additionalProperties": false, - "properties": { - "addressWarnings": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "code": { - "enum": [ - "address_unit_required", - "address_unverified" - ] - }, - "message": { - "type": "string" - }, - "role": { - "enum": [ - "recipient", - "sender" - ] - } - }, - "required": [ - "role", - "code", - "message", - "address" - ], - "type": "object" - }, - "type": "array" - }, - "amountCents": { - "minimum": 0, - "type": "integer" - }, - "canCancel": { - "type": "boolean" - }, - "checkoutUrl": { - "anyOf": [ - { - "format": "uri", - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "currency": { - "type": "string" - }, - "document": { - "additionalProperties": false, - "properties": { - "bytes": { - "maximum": 10485760, - "minimum": 1, - "type": "integer" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "name": { - "type": "string" - }, - "pages": { - "maximum": 50, - "minimum": 1, - "type": "integer" - }, - "sha256": { - "pattern": "^[a-f0-9]{64}$", - "type": "string" - } - }, - "required": [ - "id", - "name", - "pages", - "bytes", - "sha256" - ], - "type": "object" - }, - "evidence": { - "description": "Provider evidence as stored; its structure depends on the historical delivery provider." - }, - "fulfillmentStatus": { - "type": "string" - }, - "handwritten": { - "additionalProperties": false, - "properties": { - "cardId": { - "minLength": 1, - "type": "string" - }, - "cardImageUrl": { - "format": "uri", - "type": "string" - }, - "cardName": { - "type": "string" - }, - "fontId": { - "minLength": 1, - "type": "string" - }, - "fontImageUrl": { - "format": "uri", - "type": "string" - }, - "fontLabel": { - "type": "string" - }, - "message": { - "type": "string" - }, - "previewKind": { - "const": "design_and_style_samples" - }, - "recipient": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "sender": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "stampName": { - "type": "string" - }, - "stampOptionId": { - "minimum": 0, - "type": "integer" - }, - "wishes": { - "type": "string" - } - }, - "required": [ - "cardId", - "cardName", - "cardImageUrl", - "fontId", - "fontLabel", - "fontImageUrl", - "message", - "wishes", - "sender", - "recipient", - "previewKind", - "stampOptionId", - "stampName" - ], - "type": "object" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "options": { - "additionalProperties": true, - "type": "object" - }, - "paymentStatus": { - "type": "string" - }, - "recipient": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "refundedCents": { - "minimum": 0, - "type": "integer" - }, - "sender": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "service": { - "description": "Current or historical service identifier; reads do not enable new orders.", - "type": "string" - }, - "timeline": { - "items": { - "additionalProperties": false, - "properties": { - "createdAt": { - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "message", - "createdAt" - ], - "type": "object" - }, - "type": "array" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "id", - "service", - "amountCents", - "refundedCents", - "currency", - "paymentStatus", - "fulfillmentStatus", - "createdAt", - "updatedAt", - "recipient", - "sender", - "options", - "addressWarnings", - "timeline", - "canCancel" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "orders" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "minLength": 1, - "type": "string" - }, - "details": { - "additionalProperties": false, - "properties": { - "addressRole": { - "enum": [ - "recipient", - "sender" - ] - }, - "canSendAsEntered": { - "type": "boolean" - } - }, - "required": [ - "addressRole", - "canSendAsEntered" - ], - "type": "object" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - } - }, - "required": [ - "error" - ], - "type": "object" - } - ], - "type": "object" -}New value: +null
- Changed
postedly_prepare_document1 field changed- changed
Output schema / (root)Previous value: -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "documentRequestId": { - "minLength": 1, - "type": "string" - }, - "expiresAt": { - "type": "string" - }, - "instructions": { - "type": "string" - }, - "maxFileBytes": { - "const": 10485760 - }, - "uploadEncoding": { - "const": "multipart/form-data" - }, - "uploadEndpoint": { - "format": "uri", - "type": "string" - }, - "uploadField": { - "const": "file" - }, - "uploadMethod": { - "const": "POST" - }, - "uploadUrl": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "documentRequestId", - "uploadUrl", - "expiresAt", - "uploadEndpoint", - "uploadMethod", - "uploadEncoding", - "uploadField", - "maxFileBytes", - "instructions" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "minLength": 1, - "type": "string" - }, - "details": { - "additionalProperties": false, - "properties": { - "addressRole": { - "enum": [ - "recipient", - "sender" - ] - }, - "canSendAsEntered": { - "type": "boolean" - } - }, - "required": [ - "addressRole", - "canSendAsEntered" - ], - "type": "object" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - } - }, - "required": [ - "error" - ], - "type": "object" - } - ], - "type": "object" -}New value: +null
- Changed
postedly_products1 field changed- changed
Output schema / (root)Previous value: -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "properties": { - "available": { - "type": "boolean" - }, - "currency": { - "const": "USD" - }, - "description": { - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "imageUrl": { - "format": "uri", - "type": "string" - }, - "name": { - "type": "string" - }, - "options": { - "additionalProperties": false, - "properties": { - "combinedCharacterLimit": { - "minimum": 0, - "type": "integer" - }, - "handwritingStyles": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "minLength": 1, - "type": "string" - }, - "imageUrl": { - "format": "uri", - "type": "string" - }, - "label": { - "type": "string" - } - }, - "required": [ - "id", - "label", - "imageUrl" - ], - "type": "object" - }, - "type": "array" - }, - "maxMessageLength": { - "minimum": 0, - "type": "integer" - }, - "maxWishesLength": { - "minimum": 0, - "type": "integer" - }, - "previewKind": { - "const": "design_and_style_samples" - }, - "size": { - "type": "string" - } - }, - "required": [ - "handwritingStyles", - "maxMessageLength", - "maxWishesLength", - "combinedCharacterLimit", - "size", - "previewKind" - ], - "type": "object" - }, - "provider": { - "const": "handwrytten" - }, - "requiresDocument": { - "const": false - }, - "service": { - "const": "handwritten" - } - }, - "required": [ - "id", - "name", - "description", - "provider", - "service", - "imageUrl", - "currency", - "available", - "requiresDocument", - "options" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "minLength": 1, - "type": "string" - }, - "details": { - "additionalProperties": false, - "properties": { - "addressRole": { - "enum": [ - "recipient", - "sender" - ] - }, - "canSendAsEntered": { - "type": "boolean" - } - }, - "required": [ - "addressRole", - "canSendAsEntered" - ], - "type": "object" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - } - }, - "required": [ - "error" - ], - "type": "object" - } - ], - "type": "object" -}New value: +null
- Changed
postedly_quote1 field changed- changed
Output schema / (root)Previous value: -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "addressWarnings": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "code": { - "enum": [ - "address_unit_required", - "address_unverified" - ] - }, - "message": { - "type": "string" - }, - "role": { - "enum": [ - "recipient", - "sender" - ] - } - }, - "required": [ - "role", - "code", - "message", - "address" - ], - "type": "object" - }, - "type": "array" - }, - "amountCents": { - "minimum": 0, - "type": "integer" - }, - "currency": { - "const": "USD" - }, - "document": { - "additionalProperties": false, - "properties": { - "bytes": { - "maximum": 10485760, - "minimum": 1, - "type": "integer" - }, - "contentType": { - "const": "application/pdf" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "name": { - "type": "string" - }, - "pages": { - "maximum": 50, - "minimum": 1, - "type": "integer" - }, - "previewUrl": { - "format": "uri-reference", - "type": "string" - }, - "sha256": { - "pattern": "^[a-f0-9]{64}$", - "type": "string" - } - }, - "required": [ - "id", - "name", - "pages", - "bytes", - "sha256", - "previewUrl", - "contentType" - ], - "type": "object" - }, - "emailMessage": { - "additionalProperties": true, - "type": "object" - }, - "estimatedDelivery": { - "type": "string" - }, - "expiresAt": { - "type": "string" - }, - "handwritten": { - "additionalProperties": false, - "properties": { - "cardId": { - "minLength": 1, - "type": "string" - }, - "cardImageUrl": { - "format": "uri", - "type": "string" - }, - "cardName": { - "type": "string" - }, - "fontId": { - "minLength": 1, - "type": "string" - }, - "fontImageUrl": { - "format": "uri", - "type": "string" - }, - "fontLabel": { - "type": "string" - }, - "message": { - "type": "string" - }, - "previewKind": { - "const": "design_and_style_samples" - }, - "recipient": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "sender": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "stampName": { - "type": "string" - }, - "stampOptionId": { - "minimum": 0, - "type": "integer" - }, - "wishes": { - "type": "string" - } - }, - "required": [ - "cardId", - "cardName", - "cardImageUrl", - "fontId", - "fontLabel", - "fontImageUrl", - "message", - "wishes", - "sender", - "recipient", - "previewKind", - "stampOptionId", - "stampName" - ], - "type": "object" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "lineItems": { - "items": { - "additionalProperties": false, - "properties": { - "amountCents": { - "minimum": 0, - "type": "integer" - }, - "label": { - "type": "string" - } - }, - "required": [ - "label", - "amountCents" - ], - "type": "object" - }, - "type": "array" - }, - "options": { - "additionalProperties": true, - "type": "object" - }, - "recipient": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "sender": { - "additionalProperties": false, - "properties": { - "address1": { - "type": "string" - }, - "address2": { - "type": "string" - }, - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "email": { - "type": "string" - }, - "fax": { - "type": "string" - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "postalCode": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "service": { - "enum": [ - "fax", - "letter", - "certified", - "postcard", - "handwritten" - ] - }, - "summary": { - "type": "string" - } - }, - "required": [ - "id", - "service", - "amountCents", - "currency", - "lineItems", - "expiresAt", - "estimatedDelivery", - "summary", - "recipient", - "sender", - "options" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "minLength": 1, - "type": "string" - }, - "details": { - "additionalProperties": false, - "properties": { - "addressRole": { - "enum": [ - "recipient", - "sender" - ] - }, - "canSendAsEntered": { - "type": "boolean" - } - }, - "required": [ - "addressRole", - "canSendAsEntered" - ], - "type": "object" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - } - }, - "required": [ - "error" - ], - "type": "object" - } - ], - "type": "object" -}New value: +null
- Changed
postedly_services1 field changed- changed
Output schema / (root)Previous value: -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "properties": { - "available": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "documentRequirements": { - "additionalProperties": false, - "properties": { - "artworkSizeInches": { - "additionalProperties": false, - "properties": { - "height": { - "exclusiveMinimum": 0, - "type": "number" - }, - "width": { - "exclusiveMinimum": 0, - "type": "number" - } - }, - "required": [ - "width", - "height" - ], - "type": "object" - }, - "bleedInches": { - "minimum": 0, - "type": "number" - }, - "contentType": { - "const": "application/pdf" - }, - "finishedSizeInches": { - "additionalProperties": false, - "properties": { - "height": { - "exclusiveMinimum": 0, - "type": "number" - }, - "width": { - "exclusiveMinimum": 0, - "type": "number" - } - }, - "required": [ - "width", - "height" - ], - "type": "object" - }, - "orientation": { - "const": "landscape" - }, - "pageCount": { - "const": 2 - }, - "templateUrl": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "contentType", - "pageCount", - "orientation", - "bleedInches", - "finishedSizeInches", - "artworkSizeInches", - "templateUrl" - ], - "type": "object" - }, - "id": { - "enum": [ - "fax", - "letter", - "certified", - "postcard", - "handwritten" - ] - }, - "name": { - "type": "string" - }, - "priceType": { - "enum": [ - "fixed", - "from", - null - ] - }, - "provider": { - "enum": [ - "telnyx", - "postgrid", - "click2mail", - "prodigi", - "goody", - "floristone", - "handwrytten" - ] - }, - "requiresDocument": { - "type": "boolean" - }, - "startingPriceCents": { - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "unavailableReason": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "description", - "provider", - "requiresDocument", - "available", - "unavailableReason", - "startingPriceCents", - "priceType" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "minLength": 1, - "type": "string" - }, - "details": { - "additionalProperties": false, - "properties": { - "addressRole": { - "enum": [ - "recipient", - "sender" - ] - }, - "canSendAsEntered": { - "type": "boolean" - } - }, - "required": [ - "addressRole", - "canSendAsEntered" - ], - "type": "object" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - } - }, - "required": [ - "error" - ], - "type": "object" - } - ], - "type": "object" -}New value: +null
- Changed
postedly_upload_document6 fields changed- removed
Input schema / oneOfRemoved value: -[ - { - "not": { - "required": [ - "contentBase64" - ] - }, - "required": [ - "file" - ] - }, - { - "not": { - "required": [ - "file" - ] - }, - "required": [ - "filename", - "contentBase64" - ] - } -] - changed
Input schema / properties / contentBase64 / descriptionPrevious value: -"Standard padded base64 of actual file bytes, for clients that can read the exact bytes. No data URL prefix or whitespace; never invent base64."New value: +"Standard padded base64 of the exact file bytes. No data URL prefix or whitespace." - removed
Input schema / properties / fileRemoved value: -{ - "additionalProperties": false, - "properties": { - "download_url": { - "description": "Actual temporary HTTPS download URL supplied by ChatGPT; never invent a URL.", - "maxLength": 8192, - "minLength": 1, - "type": "string" - }, - "file_id": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "file_name": { - "maxLength": 180, - "minLength": 1, - "type": "string" - }, - "mime_type": { - "enum": [ - "application/pdf", - "application/octet-stream" - ], - "type": "string" - } - }, - "required": [ - "download_url", - "file_id" - ], - "type": "object" -} - changed
Input schema / properties / filename / descriptionPrevious value: -"Filename only, without a local path. Optional for native attachments; defaults to their file_name or Attachment.pdf."New value: +"Filename only, without a local path." - changed
Input schema / requiredPrevious value: -[ - "service" -]New value: +[ + "service", + "filename", + "contentBase64" +] - changed
Output schema / (root)Previous value: -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "document": { - "additionalProperties": false, - "properties": { - "bytes": { - "maximum": 10485760, - "minimum": 1, - "type": "integer" - }, - "contentType": { - "const": "application/pdf" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "name": { - "type": "string" - }, - "pages": { - "maximum": 50, - "minimum": 1, - "type": "integer" - }, - "previewUrl": { - "format": "uri-reference", - "type": "string" - }, - "sha256": { - "pattern": "^[a-f0-9]{64}$", - "type": "string" - } - }, - "required": [ - "id", - "name", - "pages", - "bytes", - "sha256", - "previewUrl", - "contentType" - ], - "type": "object" - }, - "documentId": { - "minLength": 1, - "type": "string" - }, - "message": { - "type": "string" - }, - "previewRequiresAuthentication": { - "const": true - } - }, - "required": [ - "documentId", - "document", - "previewRequiresAuthentication", - "message" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "minLength": 1, - "type": "string" - }, - "details": { - "additionalProperties": false, - "properties": { - "addressRole": { - "enum": [ - "recipient", - "sender" - ] - }, - "canSendAsEntered": { - "type": "boolean" - } - }, - "required": [ - "addressRole", - "canSendAsEntered" - ], - "type": "object" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - } - }, - "required": [ - "error" - ], - "type": "object" - } - ], - "type": "object" -}New value: +null
9 tool updates
- Changed
postedly_checkout1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "expiresAt": { + "type": "string" + }, + "instructions": { + "type": "string" + }, + "requiresBrowserApproval": { + "const": true + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "url", + "requiresBrowserApproval", + "expiresAt", + "instructions" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "minLength": 1, + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "addressRole": { + "enum": [ + "recipient", + "sender" + ] + }, + "canSendAsEntered": { + "type": "boolean" + } + }, + "required": [ + "addressRole", + "canSendAsEntered" + ], + "type": "object" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
postedly_document_status1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "document": { + "additionalProperties": false, + "properties": { + "bytes": { + "maximum": 10485760, + "minimum": 1, + "type": "integer" + }, + "contentType": { + "const": "application/pdf" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "name": { + "type": "string" + }, + "pages": { + "maximum": 50, + "minimum": 1, + "type": "integer" + }, + "previewUrl": { + "format": "uri-reference", + "type": "string" + }, + "sha256": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + } + }, + "required": [ + "id", + "name", + "pages", + "bytes", + "sha256", + "previewUrl", + "contentType" + ], + "type": "object" + }, + "documentRequestId": { + "minLength": 1, + "type": "string" + }, + "expiresAt": { + "type": "string" + }, + "filename": { + "type": [ + "string", + "null" + ] + }, + "service": { + "description": "Current or historical service identifier; reads do not enable new orders.", + "type": "string" + }, + "status": { + "enum": [ + "awaiting_upload", + "uploading", + "complete", + "expired" + ] + } + }, + "required": [ + "documentRequestId", + "service", + "filename", + "status", + "expiresAt" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "minLength": 1, + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "addressRole": { + "enum": [ + "recipient", + "sender" + ] + }, + "canSendAsEntered": { + "type": "boolean" + } + }, + "required": [ + "addressRole", + "canSendAsEntered" + ], + "type": "object" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
postedly_order_status1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "addressWarnings": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "code": { + "enum": [ + "address_unit_required", + "address_unverified" + ] + }, + "message": { + "type": "string" + }, + "role": { + "enum": [ + "recipient", + "sender" + ] + } + }, + "required": [ + "role", + "code", + "message", + "address" + ], + "type": "object" + }, + "type": "array" + }, + "amountCents": { + "minimum": 0, + "type": "integer" + }, + "canCancel": { + "type": "boolean" + }, + "checkoutUrl": { + "anyOf": [ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "document": { + "additionalProperties": false, + "properties": { + "bytes": { + "maximum": 10485760, + "minimum": 1, + "type": "integer" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "name": { + "type": "string" + }, + "pages": { + "maximum": 50, + "minimum": 1, + "type": "integer" + }, + "sha256": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + } + }, + "required": [ + "id", + "name", + "pages", + "bytes", + "sha256" + ], + "type": "object" + }, + "evidence": { + "description": "Provider evidence as stored; its structure depends on the historical delivery provider." + }, + "fulfillmentStatus": { + "type": "string" + }, + "handwritten": { + "additionalProperties": false, + "properties": { + "cardId": { + "minLength": 1, + "type": "string" + }, + "cardImageUrl": { + "format": "uri", + "type": "string" + }, + "cardName": { + "type": "string" + }, + "fontId": { + "minLength": 1, + "type": "string" + }, + "fontImageUrl": { + "format": "uri", + "type": "string" + }, + "fontLabel": { + "type": "string" + }, + "message": { + "type": "string" + }, + "previewKind": { + "const": "design_and_style_samples" + }, + "recipient": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "sender": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "stampName": { + "type": "string" + }, + "stampOptionId": { + "minimum": 0, + "type": "integer" + }, + "wishes": { + "type": "string" + } + }, + "required": [ + "cardId", + "cardName", + "cardImageUrl", + "fontId", + "fontLabel", + "fontImageUrl", + "message", + "wishes", + "sender", + "recipient", + "previewKind", + "stampOptionId", + "stampName" + ], + "type": "object" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "options": { + "additionalProperties": true, + "type": "object" + }, + "paymentStatus": { + "type": "string" + }, + "recipient": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "refundedCents": { + "minimum": 0, + "type": "integer" + }, + "sender": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "service": { + "description": "Current or historical service identifier; reads do not enable new orders.", + "type": "string" + }, + "timeline": { + "items": { + "additionalProperties": false, + "properties": { + "createdAt": { + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "id", + "type", + "message", + "createdAt" + ], + "type": "object" + }, + "type": "array" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "service", + "amountCents", + "refundedCents", + "currency", + "paymentStatus", + "fulfillmentStatus", + "createdAt", + "updatedAt", + "recipient", + "sender", + "options", + "addressWarnings", + "timeline", + "canCancel" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "minLength": 1, + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "addressRole": { + "enum": [ + "recipient", + "sender" + ] + }, + "canSendAsEntered": { + "type": "boolean" + } + }, + "required": [ + "addressRole", + "canSendAsEntered" + ], + "type": "object" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
postedly_orders1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "orders": { + "items": { + "additionalProperties": false, + "properties": { + "addressWarnings": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "code": { + "enum": [ + "address_unit_required", + "address_unverified" + ] + }, + "message": { + "type": "string" + }, + "role": { + "enum": [ + "recipient", + "sender" + ] + } + }, + "required": [ + "role", + "code", + "message", + "address" + ], + "type": "object" + }, + "type": "array" + }, + "amountCents": { + "minimum": 0, + "type": "integer" + }, + "canCancel": { + "type": "boolean" + }, + "checkoutUrl": { + "anyOf": [ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "document": { + "additionalProperties": false, + "properties": { + "bytes": { + "maximum": 10485760, + "minimum": 1, + "type": "integer" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "name": { + "type": "string" + }, + "pages": { + "maximum": 50, + "minimum": 1, + "type": "integer" + }, + "sha256": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + } + }, + "required": [ + "id", + "name", + "pages", + "bytes", + "sha256" + ], + "type": "object" + }, + "evidence": { + "description": "Provider evidence as stored; its structure depends on the historical delivery provider." + }, + "fulfillmentStatus": { + "type": "string" + }, + "handwritten": { + "additionalProperties": false, + "properties": { + "cardId": { + "minLength": 1, + "type": "string" + }, + "cardImageUrl": { + "format": "uri", + "type": "string" + }, + "cardName": { + "type": "string" + }, + "fontId": { + "minLength": 1, + "type": "string" + }, + "fontImageUrl": { + "format": "uri", + "type": "string" + }, + "fontLabel": { + "type": "string" + }, + "message": { + "type": "string" + }, + "previewKind": { + "const": "design_and_style_samples" + }, + "recipient": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "sender": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "stampName": { + "type": "string" + }, + "stampOptionId": { + "minimum": 0, + "type": "integer" + }, + "wishes": { + "type": "string" + } + }, + "required": [ + "cardId", + "cardName", + "cardImageUrl", + "fontId", + "fontLabel", + "fontImageUrl", + "message", + "wishes", + "sender", + "recipient", + "previewKind", + "stampOptionId", + "stampName" + ], + "type": "object" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "options": { + "additionalProperties": true, + "type": "object" + }, + "paymentStatus": { + "type": "string" + }, + "recipient": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "refundedCents": { + "minimum": 0, + "type": "integer" + }, + "sender": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "service": { + "description": "Current or historical service identifier; reads do not enable new orders.", + "type": "string" + }, + "timeline": { + "items": { + "additionalProperties": false, + "properties": { + "createdAt": { + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "id", + "type", + "message", + "createdAt" + ], + "type": "object" + }, + "type": "array" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "service", + "amountCents", + "refundedCents", + "currency", + "paymentStatus", + "fulfillmentStatus", + "createdAt", + "updatedAt", + "recipient", + "sender", + "options", + "addressWarnings", + "timeline", + "canCancel" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "orders" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "minLength": 1, + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "addressRole": { + "enum": [ + "recipient", + "sender" + ] + }, + "canSendAsEntered": { + "type": "boolean" + } + }, + "required": [ + "addressRole", + "canSendAsEntered" + ], + "type": "object" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
postedly_prepare_document1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "documentRequestId": { + "minLength": 1, + "type": "string" + }, + "expiresAt": { + "type": "string" + }, + "instructions": { + "type": "string" + }, + "maxFileBytes": { + "const": 10485760 + }, + "uploadEncoding": { + "const": "multipart/form-data" + }, + "uploadEndpoint": { + "format": "uri", + "type": "string" + }, + "uploadField": { + "const": "file" + }, + "uploadMethod": { + "const": "POST" + }, + "uploadUrl": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "documentRequestId", + "uploadUrl", + "expiresAt", + "uploadEndpoint", + "uploadMethod", + "uploadEncoding", + "uploadField", + "maxFileBytes", + "instructions" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "minLength": 1, + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "addressRole": { + "enum": [ + "recipient", + "sender" + ] + }, + "canSendAsEntered": { + "type": "boolean" + } + }, + "required": [ + "addressRole", + "canSendAsEntered" + ], + "type": "object" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
postedly_products1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "available": { + "type": "boolean" + }, + "currency": { + "const": "USD" + }, + "description": { + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "imageUrl": { + "format": "uri", + "type": "string" + }, + "name": { + "type": "string" + }, + "options": { + "additionalProperties": false, + "properties": { + "combinedCharacterLimit": { + "minimum": 0, + "type": "integer" + }, + "handwritingStyles": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "minLength": 1, + "type": "string" + }, + "imageUrl": { + "format": "uri", + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "id", + "label", + "imageUrl" + ], + "type": "object" + }, + "type": "array" + }, + "maxMessageLength": { + "minimum": 0, + "type": "integer" + }, + "maxWishesLength": { + "minimum": 0, + "type": "integer" + }, + "previewKind": { + "const": "design_and_style_samples" + }, + "size": { + "type": "string" + } + }, + "required": [ + "handwritingStyles", + "maxMessageLength", + "maxWishesLength", + "combinedCharacterLimit", + "size", + "previewKind" + ], + "type": "object" + }, + "provider": { + "const": "handwrytten" + }, + "requiresDocument": { + "const": false + }, + "service": { + "const": "handwritten" + } + }, + "required": [ + "id", + "name", + "description", + "provider", + "service", + "imageUrl", + "currency", + "available", + "requiresDocument", + "options" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "minLength": 1, + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "addressRole": { + "enum": [ + "recipient", + "sender" + ] + }, + "canSendAsEntered": { + "type": "boolean" + } + }, + "required": [ + "addressRole", + "canSendAsEntered" + ], + "type": "object" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
postedly_quote1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "addressWarnings": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "code": { + "enum": [ + "address_unit_required", + "address_unverified" + ] + }, + "message": { + "type": "string" + }, + "role": { + "enum": [ + "recipient", + "sender" + ] + } + }, + "required": [ + "role", + "code", + "message", + "address" + ], + "type": "object" + }, + "type": "array" + }, + "amountCents": { + "minimum": 0, + "type": "integer" + }, + "currency": { + "const": "USD" + }, + "document": { + "additionalProperties": false, + "properties": { + "bytes": { + "maximum": 10485760, + "minimum": 1, + "type": "integer" + }, + "contentType": { + "const": "application/pdf" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "name": { + "type": "string" + }, + "pages": { + "maximum": 50, + "minimum": 1, + "type": "integer" + }, + "previewUrl": { + "format": "uri-reference", + "type": "string" + }, + "sha256": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + } + }, + "required": [ + "id", + "name", + "pages", + "bytes", + "sha256", + "previewUrl", + "contentType" + ], + "type": "object" + }, + "emailMessage": { + "additionalProperties": true, + "type": "object" + }, + "estimatedDelivery": { + "type": "string" + }, + "expiresAt": { + "type": "string" + }, + "handwritten": { + "additionalProperties": false, + "properties": { + "cardId": { + "minLength": 1, + "type": "string" + }, + "cardImageUrl": { + "format": "uri", + "type": "string" + }, + "cardName": { + "type": "string" + }, + "fontId": { + "minLength": 1, + "type": "string" + }, + "fontImageUrl": { + "format": "uri", + "type": "string" + }, + "fontLabel": { + "type": "string" + }, + "message": { + "type": "string" + }, + "previewKind": { + "const": "design_and_style_samples" + }, + "recipient": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "sender": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "stampName": { + "type": "string" + }, + "stampOptionId": { + "minimum": 0, + "type": "integer" + }, + "wishes": { + "type": "string" + } + }, + "required": [ + "cardId", + "cardName", + "cardImageUrl", + "fontId", + "fontLabel", + "fontImageUrl", + "message", + "wishes", + "sender", + "recipient", + "previewKind", + "stampOptionId", + "stampName" + ], + "type": "object" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "lineItems": { + "items": { + "additionalProperties": false, + "properties": { + "amountCents": { + "minimum": 0, + "type": "integer" + }, + "label": { + "type": "string" + } + }, + "required": [ + "label", + "amountCents" + ], + "type": "object" + }, + "type": "array" + }, + "options": { + "additionalProperties": true, + "type": "object" + }, + "recipient": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "sender": { + "additionalProperties": false, + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fax": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "service": { + "enum": [ + "fax", + "letter", + "certified", + "postcard", + "handwritten" + ] + }, + "summary": { + "type": "string" + } + }, + "required": [ + "id", + "service", + "amountCents", + "currency", + "lineItems", + "expiresAt", + "estimatedDelivery", + "summary", + "recipient", + "sender", + "options" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "minLength": 1, + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "addressRole": { + "enum": [ + "recipient", + "sender" + ] + }, + "canSendAsEntered": { + "type": "boolean" + } + }, + "required": [ + "addressRole", + "canSendAsEntered" + ], + "type": "object" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
postedly_services1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "available": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "documentRequirements": { + "additionalProperties": false, + "properties": { + "artworkSizeInches": { + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "type": "number" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + "bleedInches": { + "minimum": 0, + "type": "number" + }, + "contentType": { + "const": "application/pdf" + }, + "finishedSizeInches": { + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "type": "number" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + "orientation": { + "const": "landscape" + }, + "pageCount": { + "const": 2 + }, + "templateUrl": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "contentType", + "pageCount", + "orientation", + "bleedInches", + "finishedSizeInches", + "artworkSizeInches", + "templateUrl" + ], + "type": "object" + }, + "id": { + "enum": [ + "fax", + "letter", + "certified", + "postcard", + "handwritten" + ] + }, + "name": { + "type": "string" + }, + "priceType": { + "enum": [ + "fixed", + "from", + null + ] + }, + "provider": { + "enum": [ + "telnyx", + "postgrid", + "click2mail", + "prodigi", + "goody", + "floristone", + "handwrytten" + ] + }, + "requiresDocument": { + "type": "boolean" + }, + "startingPriceCents": { + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "unavailableReason": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "description", + "provider", + "requiresDocument", + "available", + "unavailableReason", + "startingPriceCents", + "priceType" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "minLength": 1, + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "addressRole": { + "enum": [ + "recipient", + "sender" + ] + }, + "canSendAsEntered": { + "type": "boolean" + } + }, + "required": [ + "addressRole", + "canSendAsEntered" + ], + "type": "object" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
postedly_upload_document6 fields changed- added
Input schema / oneOfAdded value: +[ + { + "not": { + "required": [ + "contentBase64" + ] + }, + "required": [ + "file" + ] + }, + { + "not": { + "required": [ + "file" + ] + }, + "required": [ + "filename", + "contentBase64" + ] + } +] - changed
Input schema / properties / contentBase64 / descriptionPrevious value: -"Standard padded base64 of the exact file bytes. No data URL prefix or whitespace."New value: +"Standard padded base64 of actual file bytes, for clients that can read the exact bytes. No data URL prefix or whitespace; never invent base64." - added
Input schema / properties / fileAdded value: +{ + "additionalProperties": false, + "properties": { + "download_url": { + "description": "Actual temporary HTTPS download URL supplied by ChatGPT; never invent a URL.", + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "file_id": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "file_name": { + "maxLength": 180, + "minLength": 1, + "type": "string" + }, + "mime_type": { + "enum": [ + "application/pdf", + "application/octet-stream" + ], + "type": "string" + } + }, + "required": [ + "download_url", + "file_id" + ], + "type": "object" +} - changed
Input schema / properties / filename / descriptionPrevious value: -"Filename only, without a local path."New value: +"Filename only, without a local path. Optional for native attachments; defaults to their file_name or Attachment.pdf." - changed
Input schema / requiredPrevious value: -[ - "service", - "filename", - "contentBase64" -]New value: +[ + "service" +] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "document": { + "additionalProperties": false, + "properties": { + "bytes": { + "maximum": 10485760, + "minimum": 1, + "type": "integer" + }, + "contentType": { + "const": "application/pdf" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "name": { + "type": "string" + }, + "pages": { + "maximum": 50, + "minimum": 1, + "type": "integer" + }, + "previewUrl": { + "format": "uri-reference", + "type": "string" + }, + "sha256": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + } + }, + "required": [ + "id", + "name", + "pages", + "bytes", + "sha256", + "previewUrl", + "contentType" + ], + "type": "object" + }, + "documentId": { + "minLength": 1, + "type": "string" + }, + "message": { + "type": "string" + }, + "previewRequiresAuthentication": { + "const": true + } + }, + "required": [ + "documentId", + "document", + "previewRequiresAuthentication", + "message" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "minLength": 1, + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "addressRole": { + "enum": [ + "recipient", + "sender" + ] + }, + "canSendAsEntered": { + "type": "boolean" + } + }, + "required": [ + "addressRole", + "canSendAsEntered" + ], + "type": "object" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
9 tool updates
- First observed
postedly_checkout - First observed
postedly_document_status - First observed
postedly_order_status - First observed
postedly_orders - First observed
postedly_prepare_document - First observed
postedly_products - First observed
postedly_quote - First observed
postedly_services - First observed
postedly_upload_document
Publisher details
- Operator
- Soxoa LLC
- Operator website
- https://soxoa.com
- Vendor relationship
- First-party
- Documentation
- https://postedly.com/agent-guide.md
- Trust center
- Unknown
- Restrictions
- Unknown
Related MCP Connectors
Prepare USPS Certified Mail letters from any AI assistant; a person reviews, pays and authorizes.
Design printed greeting cards and prepare, review, pay for, and send letters and postcards.
Let AI agents prepare, review, pay for, and send real letters and postcards.
Send one or many U.S. letters, Certified Mail and postcards; manage both email-to-mail services.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables agents to create and pay for physical postcards and letters, returning print previews and Stripe checkout links, with human review before USPS First-Class mailing to US addresses.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to prepare, price, review, pay for, and send real physical letters and postcards via a hosted MCP server.-
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to read status and records, control collection tasks, prepare drafts, and execute approved queues, with manual approval required before sending.MIT
- AlicenseNot gradedqualityFmaintenanceMCP server that lets AI agents create reviewable physical mail drafts, validate quotes, and pay for postage via MPP or x402 protocols.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.