# 3DAPI API Docs > The 3DAPI API lets sellers manage everything they do on the platform, and lets integrators build on top of it. - Base URL: `https://public-api.dapi.digital` (production). API v2 paths start with `/v2`; the print farm API's with `/v1/print-farm`. - Authentication: send an API key in the `x-api-key` header. Each operation lists the scopes it accepts in `x-required-scopes` (any one is enough). Keys are created in the 3DAPI dashboard. - **Ids** are opaque strings with a type prefix, for example `prd_` for products and `var_` for variants. Store and compare them; never parse them. - **Money** is `{ "amount": 5000, "currency": "usd" }`: `amount` is an integer in the smallest currency unit (cents), so `5000` is $50.00. There are no decimal amounts anywhere in the API. - **Lists** return `{ "object": "list", "data": [...], "has_more": true, "next_cursor": "..." }`. Pass `next_cursor` back as `cursor` for the next page. - **Errors** always have the same body: `{ "status_code", "error", "code", "message", "details" }`. Branch on `code`, which is stable; `message` explains how to fix the problem. - Writes accept an `Idempotency-Key` header, so a retried request is never applied twice. - Machine-readable: [OpenAPI 3.1 for designers and integrators](https://public-api.dapi.digital/docs/openapi.json), [OpenAPI 3.0 for print farms](https://public-api.dapi.digital/docs/print-farm.openapi.json), [workflows (Arazzo 1.0)](https://public-api.dapi.digital/docs/arazzo.json), [every page in one file](https://public-api.dapi.digital/docs/llms-full.txt). - MCP: a local MCP server exposes the operations as read, write and money tools, money tools behind a preview-then-confirm step (`npx -y @dapi-digital/mcp`, or the Claude Desktop extension at https://public-api.dapi.digital/docs/downloads/dapi-digital.mcpb); see [Connect an AI assistant](https://public-api.dapi.digital/docs/guides/mcp.md). ## Guides - [Quickstart](https://public-api.dapi.digital/docs/guides/quickstart.md): Get a key and make your first request. For designers and integrators. - [Authentication and scopes](https://public-api.dapi.digital/docs/guides/authentication.md): Send your key and choose what it may do. For designers and integrators. - [Errors](https://public-api.dapi.digital/docs/guides/errors.md): One error shape everywhere, with stable codes. For designers and integrators. - [Pagination](https://public-api.dapi.digital/docs/guides/pagination.md): Walk through long lists with cursors. For designers and integrators. - [Expanding objects](https://public-api.dapi.digital/docs/guides/expanding.md): Swap references for full objects in one request. For designers and integrators. - [Idempotency](https://public-api.dapi.digital/docs/guides/idempotency.md): Retry writes safely with Idempotency-Key. For designers and integrators. - [Rate limits](https://public-api.dapi.digital/docs/guides/rate-limits.md): How many requests you can send, and what to do on a 429. For designers and integrators. - [Uploads](https://public-api.dapi.digital/docs/guides/uploads.md): Send photos, design files and documents. For designers and integrators. - [Webhooks](https://public-api.dapi.digital/docs/guides/webhooks.md): Hear about changes as they happen. For designers and integrators. - [Connect an AI assistant](https://public-api.dapi.digital/docs/guides/mcp.md): Install the 3DAPI MCP server in Claude Desktop, Claude Code, Codex or Grok Build, to read your account and make changes you approve. For designers and integrators. - [Connect Claude, ChatGPT or Grok](https://public-api.dapi.digital/docs/guides/connect-ai-apps.md): Connect your 3DAPI account to Claude, ChatGPT, Grok or another AI app with a link and a sign-in, no API key or install needed. For designers and integrators. ## Workflows Step-by-step recipes for multi-step tasks, also as [an Arazzo 1.0 document](https://public-api.dapi.digital/docs/arazzo.json). - [Submit a product for review](https://public-api.dapi.digital/docs/guides/submit-product.md): 2 steps: create_upload, create_product. For designers. - [Publish a product](https://public-api.dapi.digital/docs/guides/publish-product.md): 2 steps: get_product, publish_product. For designers. - [Place an order](https://public-api.dapi.digital/docs/guides/place-order.md): One step: create_order. For designers. - [Buy stock](https://public-api.dapi.digital/docs/guides/buy-stock.md): 3 steps: get_stock, get_wallet, create_stock_purchase. For designers. - [Review a quality check](https://public-api.dapi.digital/docs/guides/review-quality-check.md): 2 steps: get_qc_ticket, review_qc_ticket. For designers. - [Quote a model file](https://public-api.dapi.digital/docs/guides/quote-model-file.md): 3 steps: create_upload, create_quote, get_quote. For integrators. - [Choose the materials to print a quote in](https://public-api.dapi.digital/docs/guides/set-up-order-materials.md): 4 steps: get_quote, create_integrator_order, list_materials, create_integrator_order. For integrators. - [Get the shipping cost of an order](https://public-api.dapi.digital/docs/guides/estimate-order-shipping.md): One step: estimate_integrator_order_shipping. For integrators. - [Request account approval](https://public-api.dapi.digital/docs/guides/request-integrator-approval.md): 2 steps: get_integrator_onboarding, create_approval_request. For integrators. ## API reference (v2, designers and integrators) - [API reference](https://public-api.dapi.digital/docs/reference.md): Every resource of the API, with its object and endpoints. - [Products](https://public-api.dapi.digital/docs/reference/products.md): What you sell and its variants. For designers. Operations: `list_products`, `create_product`, `get_product`, `update_product`, `delete_product`, `publish_product`, `unpublish_product`, `create_variant`, `update_variant`, `delete_variant`, `upload_compliance_document`, `delete_compliance_document`, `get_product_compliance`. - [Orders](https://public-api.dapi.digital/docs/reference/orders.md): Orders for your products, from every channel. For designers. Operations: `list_orders`, `create_order`, `cancel_order`, `get_order`, `list_import_issues`, `get_import_issue`. - [Integrator orders](https://public-api.dapi.digital/docs/reference/integrator-orders.md): Orders integrators place for their own customers, paid from the wallet or through a hosted checkout. For integrators. Operations: `list_integrator_orders`, `create_integrator_order`, `estimate_integrator_order_shipping`, `get_integrator_order`, `cancel_integrator_order`. - [Designs](https://public-api.dapi.digital/docs/reference/designs.md): Printable model files. For designers. Operations: `add_design`, `get_design`, `update_design`, `delete_design`. - [Stocks](https://public-api.dapi.digital/docs/reference/stocks.md): Ready-made units bought in batches. For designers. Operations: `list_stocks`, `create_stock`, `get_stock`, `update_stock`, `add_stock_design`, `set_stock_restock`, `list_all_stock_batches`, `list_stock_batch_usage`, `list_stock_batches`, `get_stock_batch`, `create_stock_purchase`, `get_region`. - [Extras](https://public-api.dapi.digital/docs/reference/extras.md): Bought-in parts shipped with products (designers) or with order lines (integrators). For designers and integrators. Operations: `list_extras`, `create_extra`, `get_extra`, `update_extra`. - [Attachments](https://public-api.dapi.digital/docs/reference/attachments.md): Production documents. For designers. Operations: `get_attachment`. - [Quality control](https://public-api.dapi.digital/docs/reference/quality-control.md): Quality checks, partner questions and issue reports on orders. For designers. Operations: `review_qc_ticket`, `send_qc_message`, `list_qc_tickets`, `create_qc_ticket`, `get_qc_ticket`. - [Wallet](https://public-api.dapi.digital/docs/reference/wallet.md): Your balance and money history. For designers and integrators. Operations: `get_wallet`, `get_billing_details`, `save_billing_details`, `list_cards`, `start_card_setup`, `complete_card_setup`, `make_card_default`, `remove_card`, `start_top_up`, `get_wallet_settings`, `update_wallet_settings`, `list_withdrawals`, `create_withdrawal`, `get_withdrawal_eligibility`, `cancel_withdrawal`, `get_payout_details`, `save_payout_details`, `list_transactions`, `get_transaction_summary`. - [Webhooks](https://public-api.dapi.digital/docs/reference/webhooks.md): Events sent to your endpoints, and the events log. For designers and integrators. Operations: `list_events`, `get_event`, `create_webhook_endpoint`, `update_webhook_endpoint`, `delete_webhook_endpoint`, `rotate_webhook_endpoint_secret`, `send_test_webhook_event`, `list_webhook_endpoint_deliveries`, `get_event_deliveries`, `resend_event`, `list_webhook_endpoints`. - [Uploads](https://public-api.dapi.digital/docs/reference/uploads.md): Sending files: photos, design files and documents. For designers and integrators. Operations: `create_upload`. - [Shipping](https://public-api.dapi.digital/docs/reference/shipping.md): Shipping zones and prices. For designers and integrators. Operations: `get_shipping_rates`, `get_shipping_quote`. - [Materials](https://public-api.dapi.digital/docs/reference/materials.md): The material catalog. For designers and integrators. Operations: `list_materials`, `get_material`. - [Categories](https://public-api.dapi.digital/docs/reference/categories.md): Product categories and their safety requirements. For designers and integrators. Operations: `list_categories`, `get_category`. - [Quotes](https://public-api.dapi.digital/docs/reference/quotes.md): Prices for printing model files. For integrators. Operations: `list_quotes`, `create_quote`, `get_quote`. - [Integrator onboarding](https://public-api.dapi.digital/docs/reference/integrator-onboarding.md): Signing up as an integrator and getting the account approved. For integrators. Operations: `create_integrator_account`, `resend_integrator_confirmation`, `get_integrator_onboarding`, `list_approval_requests`, `create_approval_request`, `get_approval_request`. - [Integrator account](https://public-api.dapi.digital/docs/reference/integrator-account.md): Your integrator account: names, sign-in email and password, and your EU responsible person. For integrators. Operations: `get_integrator_account`, `update_integrator_account`, `change_integrator_password`, `request_integrator_email_change`, `get_eu_responsible_person`, `set_eu_responsible_person`, `remove_eu_responsible_person`. - [Analytics](https://public-api.dapi.digital/docs/reference/analytics.md): Figures about your account over time: quote volume, value and reviews. For integrators. Operations: `get_integrator_analytics`. - [Logs](https://public-api.dapi.digital/docs/reference/logs.md): The requests you made in the last 30 days, with bodies and the webhooks they caused. For integrators. Operations: `list_api_requests`, `get_api_request`. - [API keys](https://public-api.dapi.digital/docs/reference/api-keys.md): Keys for calling the API from your servers. For integrators. Operations: `list_api_keys`, `create_api_key`, `revoke_api_key`. - [Identity](https://public-api.dapi.digital/docs/reference/identity.md): Who the credentials belong to. For designers and integrators. Operations: `get_me`. - [Health](https://public-api.dapi.digital/docs/reference/health.md): Service status. For designers and integrators. Operations: `get_health`. ## Print farm API - [Print farm quickstart](https://public-api.dapi.digital/docs/guides/print-farm-quickstart.md): Read your allocated orders and report production. - [Orders](https://public-api.dapi.digital/docs/reference/print-farm-orders.md): Orders allocated to your farm, and moving them through their production statuses. Operations: `listPrintFarmOrders`, `getPrintFarmOrder`, `updatePrintFarmOrderStatus`. - [SKUs](https://public-api.dapi.digital/docs/reference/print-farm-skus.md): Products in your allocated orders or in stocks you hold, with their designs, extras and stock. Operations: `listPrintFarmSkus`, `getPrintFarmSku`. - [Designs](https://public-api.dapi.digital/docs/reference/print-farm-designs.md): Approved print files your SKUs use, with short-lived download links. Operations: `listPrintFarmDesigns`, `getPrintFarmDesign`. - [Extras](https://public-api.dapi.digital/docs/reference/print-farm-extras.md): Approved bought-in parts that your SKUs ship with. Operations: `listPrintFarmExtras`, `getPrintFarmExtra`. - [Materials](https://public-api.dapi.digital/docs/reference/print-farm-materials.md): Materials your SKUs' designs are printed in. Operations: `listPrintFarmMaterials`, `getPrintFarmMaterial`. - [Stock levels](https://public-api.dapi.digital/docs/reference/print-farm-stock-levels.md): Stock batches ordered from your farm, and reporting the units you have printed. Operations: `listPrintFarmStockLevels`, `getPrintFarmStockLevel`, `addPrintFarmStockLevelItemsMade`. - [Stocks](https://public-api.dapi.digital/docs/reference/print-farm-stocks.md): Ready-made stock products with at least one batch at your farm. Operations: `listPrintFarmStocks`, `getPrintFarmStock`. - [Courier options](https://public-api.dapi.digital/docs/reference/print-farm-courier-options.md): Couriers you can name when you mark an order as shipping. Operations: `listPrintFarmCourierOptions`. ## API v1 (deprecated) API v1 is deprecated: it keeps working for existing integrations but gets no new features, and new integrations should use API v2 above. Also as [an OpenAPI 3.0 document](https://public-api.dapi.digital/docs/v1.openapi.json). - [API reference](https://public-api.dapi.digital/docs/v1/reference.md): The deprecated v1 designer API: quotes, orders and stores. New integrations should use API v2. - [Quotes](https://public-api.dapi.digital/docs/v1/reference/quotes.md): Deprecated. Upload an STL file and get its print price, then poll the quote or wait for its webhook. Operations: `v1_uploadQuoteFile`, `v1_listQuotes`, `v1_createQuote`, `v1_getQuoteStatus`, `v1_getQuoteByPublicId`. - [Orders](https://public-api.dapi.digital/docs/v1/reference/orders.md): Deprecated. Orders placed from completed quotes, their shipping costs, and paying for them from the wallet. Operations: `v1_listOrders`, `v1_createOrder`, `v1_listFilaments`, `v1_getShippingRates`, `v1_estimateShipping`, `v1_getOrderById`, `v1_payOrder`. - [Stores](https://public-api.dapi.digital/docs/v1/reference/stores.md): Deprecated. One store per storefront you run, so quotes and orders are kept apart per storefront. Operations: `v1_listStores`, `v1_createStore`, `v1_getStore`, `v1_updateStore`, `v1_archiveStore`. - [API key](https://public-api.dapi.digital/docs/v1/reference/api-key.md): Deprecated. Check that an API key works and which account it belongs to. Operations: `v1_getMe`. ## Optional - [order.created](https://public-api.dapi.digital/docs/reference/events/order.created.md): An order was placed, from any channel. - [order.paid](https://public-api.dapi.digital/docs/reference/events/order.paid.md): The order was paid. - [order.assigned](https://public-api.dapi.digital/docs/reference/events/order.assigned.md): A production partner took the order. - [order.in_production](https://public-api.dapi.digital/docs/reference/events/order.in_production.md): Production started. - [order.shipped](https://public-api.dapi.digital/docs/reference/events/order.shipped.md): The order shipped; shipping has the tracking details. - [order.completed](https://public-api.dapi.digital/docs/reference/events/order.completed.md): The order was delivered and settled. - [order.on_hold](https://public-api.dapi.digital/docs/reference/events/order.on_hold.md): There is not enough stock to fulfil the order. - [order.rejected](https://public-api.dapi.digital/docs/reference/events/order.rejected.md): The production partner refused the order. - [order.returned](https://public-api.dapi.digital/docs/reference/events/order.returned.md): The order was sent back after shipping. - [order.cancelled](https://public-api.dapi.digital/docs/reference/events/order.cancelled.md): The order was cancelled. - [checkout.expired](https://public-api.dapi.digital/docs/reference/events/checkout.expired.md): Integrators only. - [qc_ticket.needs_your_action](https://public-api.dapi.digital/docs/reference/events/qc_ticket.needs_your_action.md): A quality check has photos waiting for your review, or a production partner asked you a question. - [qc_ticket.resolved](https://public-api.dapi.digital/docs/reference/events/qc_ticket.resolved.md): A QC ticket was approved, closed or cancelled. - [product.approved](https://public-api.dapi.digital/docs/reference/events/product.approved.md): 3DAPI approved every design and extra in a product. - [product.rejected](https://public-api.dapi.digital/docs/reference/events/product.rejected.md): 3DAPI rejected a design or extra in a product; review.reason says why. - [stock_batch.purchased](https://public-api.dapi.digital/docs/reference/events/stock_batch.purchased.md): A stock batch was bought and queued for production, by you or by auto-reorder; origin says which. - [stock_batch.completed](https://public-api.dapi.digital/docs/reference/events/stock_batch.completed.md): Every unit of a stock batch has been made. - [stock.low](https://public-api.dapi.digital/docs/reference/events/stock.low.md): A region reached the restock threshold you set (restock[].whenavailablebelow, checked when an order draws units). - [quote.ready](https://public-api.dapi.digital/docs/reference/events/quote.ready.md): Integrators only. - [quote.failed](https://public-api.dapi.digital/docs/reference/events/quote.failed.md): Integrators only. - [quote.approved](https://public-api.dapi.digital/docs/reference/events/quote.approved.md): Integrators only. - [quote.rejected](https://public-api.dapi.digital/docs/reference/events/quote.rejected.md): Integrators only. - [approval_request.approved](https://public-api.dapi.digital/docs/reference/events/approval_request.approved.md): Integrators only. - [approval_request.changes_requested](https://public-api.dapi.digital/docs/reference/events/approval_request.changes_requested.md): Integrators only.