canonical: https://jentic.com/apis/cgtrader.com/cgtrader

# CGTrader API

Jentic publishes the only available OpenAPI specification for CGTrader API, keeping it validated and agent-ready. The CGTrader API is a REST surface for the CGTrader 3D model marketplace, covering model listings, file and image uploads, orders, categories, file type metadata, and user account access. Sellers use it to publish and manage 3D assets at scale, and buyers use it to place orders and download licensed model files.

## For AI agents

Publish and manage 3D model listings on the CGTrader marketplace, upload model files and preview images, place orders, and read category and file-type metadata.

## Scope

Does not handle in-browser 3D rendering, mesh editing, payment processing, or shipping logistics - use for CGTrader marketplace listing, file, and order operations only.

## Capabilities

- Create draft 3D model listings and update title, description, and pricing fields
- Upload, list, download, and delete the source files attached to a model
- Upload and delete preview images for a model listing
- List and inspect orders placed against the seller account
- Browse the CGTrader category tree and supported 3D file types
- Retrieve the license terms attached to a specific model
- Fetch the authenticated user's profile via `/users/me`

## Use cases

### Bulk Model Publishing

Automate the publishing of large libraries of 3D assets onto CGTrader rather than uploading each model through the web UI. POST /models creates a draft, POST `/models/{modelId}/files` uploads each source file, and POST `/models/{modelId}/images` attaches previews. PUT `/models/{id}` then sets pricing, category, and description before going live. Useful for studios that maintain hundreds of assets and want a CI-driven publishing pipeline.

Example prompt: Call POST /models with title and description, then POST `/models/{modelId}/files` for each .obj path, and POST `/models/{modelId}/images` for each preview .jpg

### Order Fulfilment Sync

Pull recent orders into an external accounting or fulfilment system. GET /orders lists orders attached to the authenticated account and GET `/orders/{id}` returns order line detail. Sellers use this to reconcile CGTrader revenue against bookkeeping records and to trigger any post-purchase delivery workflows that sit outside the marketplace.

Example prompt: Call GET /orders, then for each new order call GET `/orders/{id}` and append a line to the seller's bookkeeping spreadsheet

### Model License Audit

Verify the license attached to a model before reusing or redistributing the asset, especially when ingesting third-party CGTrader purchases into a downstream pipeline. GET `/models/{modelId}/license` returns the license terms tied to that listing so legal and ops teams can confirm permitted uses without manually parsing PDF EULAs.

Example prompt: Call GET `/models/{modelId}/license` for a list of model ids and flag any whose license type is not 'royalty-free'

### AI Agent 3D Asset Sourcing via Jentic

An asset-sourcing agent receives a brief such as 'find a low-poly forklift under $30 with a permissive license' and needs structured marketplace access. Through Jentic, the agent searches for a list-models operation, loads the input schema, and calls /models with category and price filters using credentials from your Jentic One instance. The agent returns matching listings without parsing the marketplace web pages.

Example prompt: Use Jentic to search 'list cgtrader models', load the operation backed by GET /models, and execute it with a category id filter and a max price

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/models` | List 3D model listings |
| POST | `/models` | Create a draft model listing |
| PUT | `/models/{id}` | Update a model listing |
| POST | `/models/{modelId}/files` | Upload a source file to a model |
| POST | `/models/{modelId}/images` | Upload a preview image to a model |
| GET | `/orders` | List orders for the seller account |
| GET | `/models/{modelId}/license` | Read the license attached to a model |
| GET | `/categories` | List marketplace categories |

## Key resources

- **Models** — Create, read, update, and delete 3D model listings on the marketplace
- **Model Files** — Upload, list, download, and delete the source files attached to a model
- **Model Images** — Upload and delete preview images attached to a model
- **Orders** — List and inspect orders placed against the seller account
- **Categories** — Browse the CGTrader category tree
- **File Types** — List supported 3D file formats and their metadata
- **Users** — Read the authenticated user's profile

## Why Jentic

- **Setup:** Wiring the CGTrader API by hand means running its OAuth2 flow to get a token and building the multi-step listing, file upload, and image upload calls against the marketplace yourself. Through Jentic you install once, import the CGTrader API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** CGTrader puts the model id in the URL path for operations like `/models/{modelId}/files` and `/models/{modelId}/images`, so a rule can pin your agent to one model for its file and image uploads. You choose the operations it may call, so creating new listings is not included unless you add it.
- **Credential handling:** Your CGTrader OAuth2 token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a CGTrader model listing' or 'upload a model file', and Jentic returns the matching CGTrader operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Sketchfab API** — 3D model hosting and marketplace API with similar upload, browse, and viewer functionality
- **Shopify API** — General storefront and order management platform for selling outside CGTrader
- **Etsy API** — Marketplace for handmade and digital goods including printable 3D content

## FAQ

### Why is there no official OpenAPI spec for CGTrader API?

CGTrader does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call CGTrader API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the CGTrader API use?

The API uses OAuth 2.0 - clients obtain an access token from CGTrader's authorization server and pass it as a bearer credential. Through Jentic, the OAuth token lives in your Jentic One instance and is attached to each request at execution time so it never enters the agent's prompt or context window.

### Can I upload 3D model files programmatically with the CGTrader API?

Yes. Create a draft listing with POST /models, then upload each source file with POST `/models/{modelId}/files` and each preview with POST `/models/{modelId}/images.` Use GET /file_types first to confirm the format you intend to upload is in the supported list.

### What are the rate limits for the CGTrader API?

CGTrader applies per-account throttling on its public API but does not expose the exact ceilings in this specification. Honour any 429 responses with their Retry-After header rather than guessing a fixed rate, especially when running bulk publishing or order syncs.

### How do I list my CGTrader models through Jentic?

Search Jentic for 'list cgtrader models', load the operation backed by GET /models, and execute it with optional filters such as category id or price range. Jentic injects the OAuth token so the agent receives a typed list of listings.

### Can I read the license terms attached to a specific CGTrader model?

Yes. GET `/models/{modelId}/license` returns the license metadata for that model so a downstream tool or agent can confirm permitted uses before redistributing the asset. This is particularly useful when ingesting bulk CGTrader purchases into an internal asset library.

### Can I limit what my agent is allowed to do with the CGTrader API?

Yes. Because Jentic One is self-hosted, your own rules decide which CGTrader operations and credentials the agent may use, so you can grant read-only access like GET /models and GET /orders while withholding POST /models so the agent cannot create new listings. Since CGTrader puts the model id in the URL path for operations such as POST `/models/{modelId}/files` and POST `/models/{modelId}/images`, a rule can pin the agent to a single model for its file and image uploads. The OAuth2 token stays in your instance and is attached only to the calls you have allowed.
