API endpoint billing
Each endpoint page identifies its billing type. Use the lists below to check the public API endpoints used by your integration.
Usage-based (10) · No usage charge (154)
Usage-based
These endpoints are eligible for usage charges. Actual charges depend on successful usage, subscription coverage, and beta discounts. A beta endpoint can be usage-based while its usage is fully discounted.
See API pricing for rates and included usage, or your billing settings for your plan and available usage.
| Endpoint | Description |
|---|---|
POST /file/center-of-mass | Get CAD file center of mass. |
POST /file/conversion | Convert CAD file from one format to another. |
POST /file/conversion/{src_format}/{output_format} | Convert CAD file with defaults. |
POST /file/density | Get CAD file density. |
POST /file/mass | Get CAD file mass. |
POST /file/surface-area | Get CAD file surface area. |
POST /file/volume | Get CAD file volume. |
POST /ml/kcl/completions | Generate code completions for KCL. |
GET /ws/ml/copilot | Open a websocket to a Zookeeper agent instance. |
GET /ws/modeling/commands | Opens a WebSocket to a Zoo KittyCAD engine instance. |
No usage charge
Calling these endpoints does not incur an API usage charge. Authentication, permissions, and plan requirements may still apply.
| Endpoint | Description |
|---|---|
GET / | Get OpenAPI schema. |
GET /announcements | List all active announcements. |
GET /async/operations/{id} | Get an async operation. |
GET /ml/conversations | List conversations |
POST /ml/custom/models | Create a custom ML model that is backed by one or more org datasets. |
GET /ml/custom/models/{id} | Retrieve the details of a single custom ML model so long as it belongs to the caller’s organization. |
PUT /ml/custom/models/{id} | Update mutable metadata (name, system prompt) for a custom ML model owned by the caller's organization. |
GET /ml/custom/models/{id}/datasets | List the org datasets that are currently attached to a custom ML model owned by the caller’s organization. |
GET /oauth2/verify-account-linking | Verify OAuth account linking and complete the authentication. |
GET /org | Get an org. |
POST /org | Create an org. |
PUT /org | Update an org. |
GET /org/api-calls | List API calls for your org. |
GET /org/api-calls/{id} | Get an API call for an org. |
DELETE /org/billing/usage-collection-threshold | Restore the default for the authenticated organization's aggregate-usage collection threshold. |
GET /org/billing/usage-collection-threshold | Get the authenticated organization's aggregate-usage collection threshold. |
PUT /org/billing/usage-collection-threshold | Set the authenticated organization's aggregate-usage collection threshold. |
GET /org/dataset/s3/policies | Return the IAM policies customers should apply when onboarding an S3 dataset. |
GET /org/datasets | List every dataset that belongs to the caller's organization. |
POST /org/datasets | Register a new org dataset. |
DELETE /org/datasets/{id} | Delete a dataset owned by the caller's organization. |
GET /org/datasets/{id} | Fetch a single dataset by ID so long as it belongs to the authenticated org. |
PUT /org/datasets/{id} | Update dataset metadata or storage credentials for the caller's organization. |
GET /org/datasets/{id}/bulk-download/kcl | Bulk-download KCL outputs for successful dataset conversions. |
GET /org/datasets/{id}/conversions | List the file conversions that have been processed for a given dataset owned by the caller's org. |
GET /org/datasets/{id}/conversions/{conversion_id} | Fetch the metadata and converted output for a single dataset conversion. |
GET /org/datasets/{id}/conversions/{conversion_id}/original | Download the original source file for a specific dataset conversion. |
POST /org/datasets/{id}/conversions/{conversion_id}/retrigger | Retrigger a specific dataset conversion for the caller's org. |
POST /org/datasets/{id}/retrigger | Request a retrigger of conversions for a dataset that belongs to the caller's org. |
GET /org/datasets/{id}/search/conversions | Search dataset conversions by conversion ID or file path. |
GET /org/datasets/{id}/search/semantic | Run semantic search across chunked conversion outputs for a dataset. |
GET /org/datasets/{id}/stats | Return aggregate conversion stats for a dataset owned by the caller's org. |
POST /org/datasets/{id}/uploads | Upload source files into a Zoo-managed dataset. |
GET /org/factory/jobs | List Factory jobs owned by your organization. |
GET /org/members | List members of your org. |
POST /org/members | Add a member to your org. |
DELETE /org/members/{user_id} | Remove a member from your org. |
GET /org/members/{user_id} | Get a member of your org. |
PUT /org/members/{user_id} | Update a member of your org. |
GET /org/oauth2/apps | List org OAuth apps. |
POST /org/oauth2/apps | Create an org OAuth app. |
DELETE /org/oauth2/apps/{client_id} | Delete an org OAuth app. |
GET /org/oauth2/apps/{client_id} | Get an org OAuth app. |
PUT /org/oauth2/apps/{client_id} | Update an org OAuth app. |
DELETE /org/payment | Delete payment info for your org. |
GET /org/payment | Get payment info about your org. |
POST /org/payment | Create payment info for your org. |
PUT /org/payment | Update payment info for your org. |
GET /org/payment/balance | Get balance for your org. |
GET /org/payment/invoices | List invoices for your org. |
GET /org/payment/method-portal-link | Redirect to a fresh Stripe-hosted payment-method update link for your org. |
GET /org/payment/methods | List payment methods for your org. |
GET /org/payment/subscriptions | Get the subscription for an org. |
POST /org/payment/subscriptions | Create the subscription for an org. |
PUT /org/payment/subscriptions | Update the subscription for an org. |
GET /org/privacy | Get the privacy settings for an org. |
PUT /org/privacy | Update the privacy settings for an org. |
DELETE /org/saml/idp | Delete an SAML identity provider. |
GET /org/saml/idp | Get the SAML identity provider. |
POST /org/saml/idp | Create a SAML identity provider. |
PUT /org/saml/idp | Update the SAML identity provider. |
GET /org/service-accounts | List service accounts for your org. |
POST /org/service-accounts | Create a new service account for your org. |
DELETE /org/service-accounts/{token} | Delete an service account for your org. |
GET /org/service-accounts/{token} | Get an service account for your org. |
GET /org/shortlinks | Get the shortlinks for an org. |
GET /org/skills | List every skill that belongs to the caller's organization. |
GET /ping | Return pong. |
GET /projects/categories | List the active categories available for project submissions. |
GET /projects/public | List publicly visible community projects for the website/gallery. |
GET /projects/public/{id} | Get one publicly visible community project. |
GET /projects/public/{id}/download | Download a published public project as a tar archive. |
GET /projects/public/{id}/thumbnail | Fetch the public thumbnail for a published project. |
DELETE /projects/public/{id}/vote | Remove the authenticated user's upvote from a published community project. |
POST /projects/public/{id}/vote | Add the authenticated user's upvote to a published community project. |
GET /unit/conversion/angle/{input_unit}/{output_unit} | Convert angle units. |
GET /unit/conversion/area/{input_unit}/{output_unit} | Convert area units. |
GET /unit/conversion/current/{input_unit}/{output_unit} | Convert current units. |
GET /unit/conversion/energy/{input_unit}/{output_unit} | Convert energy units. |
GET /unit/conversion/force/{input_unit}/{output_unit} | Convert force units. |
GET /unit/conversion/frequency/{input_unit}/{output_unit} | Convert frequency units. |
GET /unit/conversion/length/{input_unit}/{output_unit} | Convert length units. |
GET /unit/conversion/mass/{input_unit}/{output_unit} | Convert mass units. |
GET /unit/conversion/power/{input_unit}/{output_unit} | Convert power units. |
GET /unit/conversion/pressure/{input_unit}/{output_unit} | Convert pressure units. |
GET /unit/conversion/temperature/{input_unit}/{output_unit} | Convert temperature units. |
GET /unit/conversion/torque/{input_unit}/{output_unit} | Convert torque units. |
GET /unit/conversion/volume/{input_unit}/{output_unit} | Convert volume units. |
DELETE /user | Delete your user. |
GET /user | Get your user. |
PUT /user | Update your user. |
GET /user/api-calls | List API calls for your user. |
GET /user/api-calls/{id} | Get an API call for a user. |
GET /user/api-tokens | List API tokens for your user. |
POST /user/api-tokens | Create a new API token for your user. |
DELETE /user/api-tokens/{token} | Delete an API token for your user. |
GET /user/api-tokens/{token} | Get an API token for your user. |
DELETE /user/billing/usage-collection-threshold | Restore the default for your personal aggregate-usage collection threshold. |
GET /user/billing/usage-collection-threshold | Get your personal aggregate-usage collection threshold. |
PUT /user/billing/usage-collection-threshold | Set your personal aggregate-usage collection threshold. |
GET /user/cad-user-info | Gets authenticated CAD user info form data for the current user. |
POST /user/client-errors | Report a CLIent-originated error. |
GET /user/email-marketing-consent | Get email marketing consent state for the authenticated user. |
POST /user/email-marketing-consent/decline | Record explicit decline for email marketing consent. |
POST /user/email-marketing-consent/request | Request email marketing opt-in and send a confirmation email. |
POST /user/email-marketing-consent/seen | Mark the email-marketing modal as seen/dismissed for the authenticated user. |
GET /user/extended | Get extended information about your user. |
GET /user/factory/finishes | List finishes currently available for customer Factory submissions. |
GET /user/factory/jobs | List your personal Factory jobs. |
GET /user/factory/materials | List materials currently available for customer Factory submissions. |
GET /user/features | List user-visible feature flags enabled for the authenticated user. |
GET /user/oauth2/apps | List personal OAuth apps. |
POST /user/oauth2/apps | Create a personal OAuth app. |
DELETE /user/oauth2/apps/{client_id} | Delete a personal OAuth app. |
GET /user/oauth2/apps/{client_id} | Get a personal OAuth app. |
PUT /user/oauth2/apps/{client_id} | Update a personal OAuth app. |
GET /user/oauth2/providers | Get the OAuth2 providers for your user. |
GET /user/org | Get a user's org. |
DELETE /user/payment | Delete payment info for your user. |
GET /user/payment | Get payment info about your user. |
POST /user/payment | Create payment info for your user. |
PUT /user/payment | Update payment info for your user. |
GET /user/payment/balance | Get balance for your user. |
GET /user/payment/invoices | List invoices for your user. |
GET /user/payment/method-portal-link | Redirect to a fresh Stripe-hosted payment-method update link for your user. |
GET /user/payment/methods | List payment methods for your user. |
POST /user/payment/methods/{id}/default | Set the default payment method for your user. |
GET /user/payment/subscriptions | Get the subscription for a user. |
POST /user/payment/subscriptions | Create the subscription for a user. |
PUT /user/payment/subscriptions | Update the user's subscription. |
GET /user/privacy | Get the privacy settings for a user. |
PUT /user/privacy | Update the user's privacy settings. |
GET /user/projects | List the authenticated user's projects. |
POST /user/projects | Create a draft project for the authenticated user. |
DELETE /user/projects/{id} | Delete one of the authenticated user's projects. |
GET /user/projects/{id} | Get one of the authenticated user's projects. |
PUT /user/projects/{id} | Replace one of the authenticated user's projects. |
GET /user/projects/{id}/download | Download one of the authenticated user's projects as a tar archive. |
DELETE /user/projects/{id}/organization | Move an organization project back to its creator's personal library. |
PUT /user/projects/{id}/organization | Move one of the authenticated user's projects into their active organization library. |
POST /user/projects/{id}/publish | Submit one of the authenticated user's projects for public review. |
GET /user/projects/{id}/share-links | List share links for one of the authenticated user's projects. |
POST /user/projects/{id}/share-links | Create a share link for one of the authenticated user's projects. |
DELETE /user/projects/{id}/share-links/{key} | Delete one share link for one of the authenticated user's projects. |
GET /user/projects/{id}/thumbnail | Fetch the authenticated owner's current project thumbnail. |
GET /user/session/{token} | Get a session for your user. |
GET /user/shortlinks | Get the shortlinks for a user. |
POST /user/shortlinks | Create a shortlink for a user. |
DELETE /user/shortlinks/{key} | Delete a shortlink for a user. |
PUT /user/shortlinks/{key} | Update a shortlink for a user. |
GET /user/text-to-cad | List text-to-CAD parts you've generated. |
GET /user/text-to-cad/{id} | Get a text-to-CAD response. |
POST /user/text-to-cad/{id} | Give feedback to a specific ML response. |
GET /ws/ml/reasoning/{id} | Open a websocket to prompt the ML copilot. |