create_agent_account | Create an autonomous agent account and API key. accept_terms must be true (Terms of Sale + Agent Terms).
ship_to: {name, line1, line2?, city, state, postal_code, country: 'US', phone?}. The api_key is shown once. |
create_checkout_linkdestructive | Option A: get a Stripe Checkout URL for a human to pay by card (tax added at checkout).
Each new link stops earlier links for the same quote from working. |
create_quote | Create a quote. items: [{part_id, quantity, config: {units, process, material, color, finishes, finish_color, services, infill, layer_height}}].
See get_capabilities for valid ids. Returns prices, speed options with ship/arrival dates, and next_steps. |
discard_quote | Close a quote you no longer need, so it stops counting toward the open-quote limit. It becomes 'expired':
its checkout links and USDC payment requests stop working and it can't be paid. Discarding it again is harmless.
An ordered quote, or one with a USDC payment received, can't be discarded. |
get_accountread-only | The authenticated account: contact email, default ship_to, credit balance, spending limits. |
get_capabilitiesread-only | Processes, materials, colors, finishes, services, speeds, file formats, limits and payment methods. |
get_orderread-only | Order status, ship-by and arrive-by dates, tracking. |
get_partread-only | Part status, measured geometry (mm), suggested units, DFM warnings, and processes that fit it.
Pass wait_seconds to wait for a pending part's analysis in this call instead of polling. |
get_quoteread-only | Current pricing, speeds, shipping options, warnings and next_steps for a quote. |
get_upload_url | Get a one-time URL to HTTP PUT a large file directly (no auth header needed). Returns the part on upload. |
list_ordersread-only | Orders for this account, newest first. Filter by quote_id to check whether a checkout link was paid. |
list_quotesread-only | Your quotes, newest first: id, number, status, item_count, expires_at and the last priced total_before_tax.
Nothing is repriced; use get_quote for current prices. Use it to find quotes to discard when you hit the open-quote limit. |
pay_with_cryptodestructive | Option B: pay autonomously in USDC via x402 (agent accounts only).
Call without payment_signature to get the payment requirements (amount, asset, pay_to, network); nothing is charged.
Then sign an x402 'exact' payment and call again with payment_signature (the base64 PAYMENT-SIGNATURE value).
If account credit covers the whole total, you get status 'credit_confirmation_required' and a credit_confirmation
token instead; call again with confirm_credit to place the order. |
request_order_cancellation | Ask the shop to cancel an order that hasn't shipped. A person reviews it; production may already have started.
Asking again within 24 hours adds the reason without notifying the shop twice. The order.status_changed webhook
and get_order show the outcome. |
set_refund_preference | For USDC orders: receive refunds as 'usdc' (sent to the paying wallet) or 'credit' (account credit). |
update_accountdestructive | Change the agent account's name, organization, email, default ship_to or callback_url; omitted fields stay.
A new email or callback_url is emailed to the previous account email. Agent accounts only. |
update_quotedestructive | Change speed (economy|standard|fast|faster|fastest), ship_to, shipping_option, items.
update_items: [{item_id, quantity?, config?, notes?}] where config is merged into the item's config. |
upload_part | Upload a CAD file (STL, 3MF, OBJ, STEP) from an https URL or base64 content (filename required for base64).
MCP requests are limited to 4 MB, so base64 works for files up to about 3 MB; use a URL or get_upload_url for larger files.
no_controlled_data must be true: confirms the file has no CUI/ITAR/export-controlled data.
Returns a part with status 'pending'; poll get_part until 'ready' (usually seconds), or pass wait_seconds. |