---
title: Threekit API Integration on Truto
slug: threekit
category: E-Commerce
canonical: "https://truto.one/integrations/detail/threekit/"
---

# Threekit API Integration on Truto



**Category:** E-Commerce  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 110 tools for Threekit that AI agents can call directly.

- **threekit_analytics_create_event** — Create a Threekit analytics event and return its details. Returns: id, createdAt, openapi, info, servers, security, paths, components, x-readme. Required: eventType, orgId, sessionId.
- **threekit_analytics_get_event** — Get a single Threekit analytics event by id, including the asset name and asset metadata. Returns: id, eventType, eventMetadata, orgId, assetId, assetName, assetMetadata, configId, configuration, userId, sessionId, device, referer, createdAt, openapi, info, servers, security, paths, components, x-readme. Required: event_id.
- **threekit_analytics_get_event_views** — Fetch aggregated view analytics for Threekit events by event type and date range. Returns: count, perPage, page, sort, views, openapi, info, servers, security, paths, components, x-readme. The range parameter supports year, month, and day granularities (defaults to month).
- **threekit_analytics_generate_reports** — Generate a BigQuery export job that produces a CSV report of raw Buyer Analytics data for a given event type and date range. Required: orgId, eventType, startDate, endDate. Date format is YYYY-MM-DD.
- **list_all_threekit_assets** — List Threekit assets for an organization with optional filters by name, type, tags, keywords, and more. Returns: id, name, type, as, createdAt, updatedAt, deletedAt, createdBy, orgId, branch, description, metadata, tags, keywords, publicShare, importedFileId, proxyId, parentFolderId, publishedAt, defaultStageId, defaultCompositeId, deletedBy, nodetags. Max 100 per page; defaults to 30.
- **get_single_threekit_asset_by_id** — Get a single Threekit asset by id. Returns the full asset object including id, name, type, tags, keywords, metadata, publicShare, parentFolderId, and dates. Required: id.
- **update_a_threekit_asset_by_id** — Update a Threekit asset by id with new name, description, tags, keywords, publicShare, or folder assignment. Returns the updated asset object including id, name, type, createdAt, updatedAt, tags, keywords. Required: id.
- **delete_a_threekit_asset_by_id** — Delete a Threekit asset by id. Returns: message. Required: id.
- **threekit_assets_get_details** — Get detailed information about a Threekit asset by export id, including attributes and their values. Returns: id, name, type, as, createdAt, updatedAt, deletedAt, createdBy, orgId, branch, description, metadata, tags, keywords, publicShare, importedFileId, proxyId, parentFolderId, publishedAt, defaultStageId, defaultCompositeId, deletedBy, nodetags, attributes. Required: export_id.
- **threekit_assets_list_tags** — List Threekit asset tags filtered by organization ID and optional query parameters. Returns: tags. Required: orgId.
- **threekit_assets_list_keywords** — List Threekit asset keywords filtered by organization ID and optional query parameters. Returns: keywords. Required: orgId.
- **threekit_assets_clone** — Clone a Threekit asset by creating a new asset as a copy of an existing one. Returns the cloned asset object including id, name, type, orgId, tags, keywords, and metadata. Required: asset_id.
- **threekit_assets_restore** — Restore a deleted Threekit asset by asset ID. Returns the restored asset object including id, name, type, orgId, tags, keywords, and metadata. Required: asset_id. Cannot restore an active asset.
- **threekit_assets_get_thumbnail** — Get a PNG thumbnail image for a Threekit asset by thumbnail ID. Returns a binary PNG image in the response body. Required: thumbnail_id. Optional cache and wait parameters control whether the thumbnail is cached and whether to wait for the latest version.
- **threekit_catalog_create_assets** — Create a new asset in Threekit with attributes, metadata, tags, and keywords. Returns the created asset object including id, name, type, orgId, customId, attributes, tags, keywords, and metadata. Required: name, type, orgId.
- **list_all_threekit_catalog** — List Threekit catalog items with complete attribute and metadata information. Returns per item: id, name, type, orgId, tags, keywords, attributes, publicShare, customId. Max 100 per page.
- **threekit_catalog_get_asset** — Get a single Threekit asset by ID (UUID or customId). Returns: id, name, type, as, createdAt, updatedAt, deletedAt, createdBy, orgId, branch, description, metadata, tags, tagids, keywords, publicShare, importedFileId, proxyId, customId, asset, attributes. Required: asset_id.
- **threekit_catalog_overwrite_asset** — Overwrite a Threekit asset by ID, replacing its current fields with the values supplied in the request body. This is a full PUT overwrite — omitted body fields are not preserved. Returns the updated asset including id, name, type, description, tags, keywords, attributes, metadata, customId, and asset. Required: asset_id.
- **threekit_catalog_delete_asset** — Delete a Threekit asset by asset_id. Returns: message. Required: asset_id.
- **create_a_threekit_catalog** — Create a new Threekit asset with attributes, metadata, and keywords. Returns the created asset including id, name, type, orgId, createdAt, updatedAt, attributes, and customId. Required: name, type, orgId.
- **get_single_threekit_catalog_by_id** — Get a single Threekit asset by id. Returns the asset object including id, name, type, orgId, createdAt, updatedAt, attributes, tags, and customId. Required: id.
- **update_a_threekit_catalog_by_id** — Overwrite a Threekit catalog asset by id, replacing all writable fields in a single PUT request. Returns the full asset object including id, name, type, createdAt, updatedAt, orgId, description, tags, attributes, and customId. Required: id.
- **threekit_catalog_partial_update** — Partially update a Threekit catalog asset by id, changing only the fields supplied in the request body. Returns the full asset object including id, name, type, createdAt, updatedAt, orgId, description, tags, attributes, and customId. Required: id.
- **delete_a_threekit_catalog_by_id** — Delete a Threekit asset by id. The id can be the Threekit UUID or a user-defined customId. Returns: message. Required: id.
- **threekit_catalog_bulk_update** — Update a Threekit catalog asset by ID using a PATCH request. Returns the updated asset including id, name, type, createdAt, updatedAt, attributes, and customId. Required: asset_id.
- **threekit_attributes_create_global** — Create a global attribute in Threekit. Returns: id, name, type, as, createdAt, updatedAt, deletedAt, createdBy, orgId, description, metadata, tags, tagids, keywords, publicShare, proxyType, proxy. Required: type, orgId.
- **threekit_attributes_get_global** — Get a single global attribute by ID in Threekit. Returns: id, name, type, as, createdAt, updatedAt, deletedAt, createdBy, orgId, description, metadata, tags, tagids, keywords, publicShare, proxyType, proxy. Required: attribute_id.
- **threekit_attributes_overwrite_global** — Overwrite a global attribute by ID in Threekit. Returns: id, name, type, as, createdAt, updatedAt, deletedAt, createdBy, orgId, description, metadata, tags, tagids, keywords, publicShare, proxyType, proxy. Required: attribute_id.
- **threekit_attributes_delete_global** — Delete a global attribute in Threekit by attribute ID. Returns: message. Required: attribute_id.
- **create_a_threekit_attribute** — Create a global attribute in Threekit. Returns the created attribute object including id, name, type, orgId, description, tags, metadata, proxy, and customId. Required: type, orgId.
- **get_single_threekit_attribute_by_id** — Get a single global attribute by id in Threekit. Returns: id, name, type, as, createdAt, updatedAt, deletedAt, createdBy, orgId, description, metadata, tags, tagids, keywords, publicShare, proxyType, proxy. Required: id.
- **update_a_threekit_attribute_by_id** — Update (replace) a global attribute by id in Threekit. Returns: id, name, type, as, createdAt, updatedAt, deletedAt, createdBy, orgId, description, metadata, tags, tagids, keywords, publicShare, proxyType, proxy. Required: id.
- **threekit_attributes_partial_update** — Partially update a global attribute by id in Threekit. Returns: id, name, type, as, createdAt, updatedAt, deletedAt, createdBy, orgId, description, metadata, tags, tagids, keywords, publicShare, proxyType, proxy. Required: id.
- **delete_a_threekit_attribute_by_id** — Delete a global attribute by id in Threekit. Returns: message. Required: id.
- **threekit_attributes_bulk_update** — Update a global attribute in Threekit by attribute ID using a partial PATCH update. Returns the updated attribute object including id, name, type, createdAt, updatedAt, orgId, description, proxyType, and the proxy configuration. Required: attribute_id.
- **create_a_threekit_asset_attribute** — Create a local attribute or add a global attribute to a Threekit asset. The request body is a discriminated union keyed by the type field (String, Number, Boolean, Color, Asset, Array, or Global), each with its own set of type-specific fields. Returns: id, name, type, min, max, step, lockToStep, values, defaultValue. Required: asset_id, name.
- **get_single_threekit_asset_attribute_by_id** — Get a specific attribute on a Threekit asset by id. Returns the full attribute object including id, name, type, createdAt, updatedAt, orgId, createdBy, proxyType, and a nested proxy object with type-specific configuration. Required: asset_id, id.
- **threekit_asset_attributes_overwrite** — Overwrite an attribute on a Threekit asset by asset_attribute_id. If the attribute is a global attribute, only the default value can be overridden. The request body is a discriminated union keyed by the type field. Returns: id, name, type, min, max, step, lockToStep, values, defaultValue. Required: asset_id, asset_attribute_id, name.
- **update_a_threekit_asset_attribute_by_id** — Update an attribute on a Threekit asset by id. If the attribute is a global attribute, only the default value can be overridden. The request body is a discriminated union keyed by the type field. Returns: id, name, type, min, max, step, lockToStep, values, defaultValue. Required: asset_id, id, name.
- **delete_a_threekit_asset_attribute_by_id** — Delete an attribute from a Threekit asset by id. Returns: message. Required: asset_id, id.
- **threekit_asset_attributes_partial_update** — Partially update an attribute on a Threekit asset. If the attribute being updated is a global attribute, only the default value can be overridden. Returns: id, name, type, min, max, step, lockToStep, values, defaultValue. Required: asset_id, id.
- **create_a_threekit_asset_metadatum** — Add a new metadata entry to a Threekit asset. Returns the created metadata entry including its id, name, type, and value. Required: asset_id, name, value.
- **get_single_threekit_asset_metadatum_by_id** — Get a metadata entry on a Threekit asset by id. Returns: id, name, type, value, openapi, info, servers, security, paths, components, x-readme. Required: asset_id, id.
- **threekit_asset_metadata_overwrite** — Overwrite a metadata entry on a Threekit asset by metadata_id. Returns: id, name, type, value. Required: asset_id, metadata_id, name, value.
- **update_a_threekit_asset_metadatum_by_id** — Update a metadata entry on a Threekit asset by id. Returns: id, name, type, value. Required: asset_id, id, name, value.
- **delete_a_threekit_asset_metadatum_by_id** — Delete a metadata entry on a Threekit asset by id. Returns: message. Required: asset_id, id.
- **threekit_asset_metadata_partial_update** — Partially update a metadata entry on a Threekit asset. Returns the updated metadata entry including its id, name, type, and value. Required: asset_id, id. A request body with the fields to update is required.
- **threekit_products_import_file** — Import or update Threekit assets (products and folders) from a JSON payload. Existing assets matching the query are updated rather than duplicated. Returns: products. Required: orgId.
- **threekit_products_export** — Export Threekit assets from an organization as a JSON stream, optionally filtered by tags, keywords, or asset type. Returns: products. Required: format, orgId. Currently the only supported export format is JSON.
- **list_all_threekit_products** — List Threekit products from the token's organization and shared products from public organizations. Returns: id, name, description, orgId, proxyId, metadata, keywords, categories. Filter by orgId, metadata (must be stringified JSON), publicShare, name (exact match), or nameLike (fuzzy match).
- **get_single_threekit_product_by_id** — Get a Threekit product by id. Returns: id, name, description, orgId, proxyId, sku, metadata, keywords, categories. Required: id. Only works for products in the token's organization and shared products from public organizations.
- **get_single_threekit_catalog_job_by_id** — Get a Threekit catalog job by id, including its scheduler state and output results. Returns: id, createdBy, orgId, title, schedulerState, type, createdAt, updatedAt, priority, output. Required: id.
- **threekit_catalog_assets_upload_images** — Upload image assets to Threekit for configurator personalization. Returns an array of import job objects, each containing msg, jobId, and a nested job object with id, status, schedulerState, task progress, and file information. Required: files. Supported filetypes: .svg, .png, .jpeg, .jpg, .ai, .eps, .pdf.
- **threekit_asset_jobs_import** — Import 3D models, images, or fonts into Threekit, creating corresponding assets. Returns: msg, jobId, job. Required: fileId, orgId. The sync parameter is not supported on this endpoint — the API will not wait for the job to finish.
- **threekit_asset_jobs_export** — Export a Threekit asset or product to a supported 3D or image format such as fbx, gltf, usdz, step, stl, or svg. Returns: msg, jobId, job. Required: asset_id, format, title, orgId, configuration.
- **threekit_asset_jobs_render_webgl** — Render a Threekit asset or product as an image using WebGL, with optional stage and configuration. Returns: msg, jobId, job, fileId, _id, runs. Required: asset_id, orgId.
- **threekit_asset_jobs_render_vray** — Render a Threekit asset or product as an image using VRay, with optional stage, configuration, layer, and subset filtering. Returns: msg, jobId, job, fileId, _id, runs. Required: asset_id, orgId.
- **threekit_asset_jobs_render_all_combinations** — Render all possible configuration combinations of a Threekit asset or product. Returns: msg, jobId, job. Required: asset_id, orgId. This API is deprecated and the maximum supported resolution is 4K.
- **threekit_asset_jobs_bulk_composites** — Create bulk composite render jobs in Threekit for all combinations of items and stages, also rendering missing layers. Returns: msg, jobId, job. Required: orgId, assets.
- **threekit_asset_jobs_bulk_exports** — Initiate bulk export jobs in Threekit for all combinations of items and stages; composition nodes are not taken into account. Returns: msg, jobId, job. Required: orgId, assets.
- **threekit_asset_jobs_data_transfer** — Initiate an org data transfer job in Threekit to migrate data between two orgs. Returns: msg, jobId, job. Required: sourceEnv, sourceOrgId, destEnv, destOrgId, destToken, migrationTargets. The clientID for both orgs must be the same.
- **threekit_asset_jobs_download_results** — Download results of a render or export job in Threekit as a zip, or extract source textures from texture assets. Results are cached by default. Returns: msg, jobId, job. Required: jobId.
- **threekit_asset_jobs_composite** — Composite layered renders into a single image in Threekit for a specific asset (max 4K resolution). Returns: msg, jobId, job. Required: asset_id, orgId.
- **threekit_asset_jobs_export_paths** — Export the vector paths for a Threekit asset as SVG or JSON, starting an async export-paths job. Returns: msg, jobId, job. Required: asset_id.
- **list_all_threekit_catalog_items** — List all Threekit catalog items, optionally filtered by archived status. Returns: id, orgId, name, label, customId, description, attributes, createdAt, createdBy, updatedAt, updatedBy, deletedAt, deletedBy. The archived and includeArchived parameters are mutually exclusive.
- **create_a_threekit_catalog_item** — Create a new catalog item in Threekit. Returns the created item including id, orgId, name, label, customId, description, attributes, createdAt, updatedAt. Required: name.
- **get_single_threekit_catalog_item_by_id** — Get a single Threekit catalog item by its Threekit UUID or custom ID. Returns: id, orgId, name, label, customId, description, attributes, createdAt, createdBy, updatedAt, updatedBy, deletedAt, deletedBy. Required: id.
- **update_a_threekit_catalog_item_by_id** — Update a Threekit catalog item by its Threekit UUID or custom ID, including overwriting associated Attributes. Returns the updated item including id, orgId, name, label, customId, description, attributes, createdAt, updatedAt. Required: id.
- **delete_a_threekit_catalog_item_by_id** — Delete a Threekit catalog item by its Threekit UUID or custom ID. Returns an empty 204 response on success. Required: id.
- **threekit_catalog_items_list_attributes** — List all attributes associated with a Threekit catalog item, returning fully populated attribute objects (not just IDs). Returns: itemId, attributes, count. Required: item_id.
- **threekit_catalog_items_add_attribute** — Associate a new attribute to a Threekit catalog item by specifying the attribute's ID or custom ID. Returns: itemId, attribute. Required: item_id, attributeId.
- **threekit_catalog_items_remove_attribute** — Dis-associate an attribute from a Threekit catalog item, specified by their ID or custom ID. Returns an empty 204 response on success. Required: item_id, attribute_id.
- **list_all_threekit_catalog_attributes** — List Threekit catalog attributes, optionally filtering by archived status. Returns: orgId, id, name, label, customId, description, options, createdAt, createdBy, updatedAt, updatedBy, deletedAt, deletedBy. The archived and includeArchived query parameters are mutually exclusive. Max 100 per page.
- **create_a_threekit_catalog_attribute** — Create a new Threekit catalog attribute. Returns the created attribute including id, name, label, customId, description, options, createdAt, and updatedAt. Required: name.
- **get_single_threekit_catalog_attribute_by_id** — Get a single Threekit catalog attribute by its Threekit UUID or custom ID. Returns: orgId, id, name, label, customId, description, options, createdAt, createdBy, updatedAt, updatedBy, deletedAt, deletedBy. Required: id.
- **update_a_threekit_catalog_attribute_by_id** — Update a Threekit catalog attribute by its Threekit UUID or custom ID. Passing the options array overwrites associated Option UUIDs. Returns the updated attribute including id, name, label, customId, description, options, createdAt, updatedAt. Required: id.
- **delete_a_threekit_catalog_attribute_by_id** — Delete a Threekit catalog attribute by its Threekit UUID or custom ID. Returns an empty 204 response on success. Required: id.
- **threekit_catalog_attributes_list_options** — List all fully populated options associated with a Threekit catalog attribute by its ID or custom ID. Returns: attributeId, options, count. Required: attribute_id.
- **threekit_catalog_attributes_add_option** — Associate a new option to a Threekit catalog attribute by specifying the option's Threekit UUID or custom ID. Returns: attributeId, option. Required: attribute_id, optionId.
- **threekit_catalog_attributes_remove_option** — Dis-associate an option from a Threekit catalog attribute by specifying each entity's ID or custom ID. Returns an empty 204 response on success. Required: attribute_id, option_id.
- **list_all_threekit_catalog_options** — List all Threekit catalog Options with optional filtering by archived status. Returns: orgId, id, name, label, customId, description, createdAt, createdBy, updatedAt, updatedBy, deletedAt, deletedBy. Specify only one of archived or includeArchived; they are mutually exclusive.
- **create_a_threekit_catalog_option** — Create a new Option in the Threekit catalog. Returns: orgId, id, name, label, customId, description, createdAt, createdBy, updatedAt, updatedBy, deletedAt, deletedBy. Required: name.
- **get_single_threekit_catalog_option_by_id** — Get a single Threekit catalog Option by its id or customId. Returns: orgId, id, name, label, customId, description, createdAt, createdBy, updatedAt, updatedBy, deletedAt, deletedBy. Required: id.
- **update_a_threekit_catalog_option_by_id** — Update a Threekit catalog Option by its id or customId. Returns: orgId, id, name, label, customId, description, createdAt, createdBy, updatedAt, updatedBy, deletedAt, deletedBy. Required: id.
- **delete_a_threekit_catalog_option_by_id** — Delete a Threekit catalog Option by its id or customId. Returns an empty 204 response on success. Required: id.
- **list_all_threekit_catalog_variants** — List all variants for a Threekit catalog item by item_id. Returns: id, customId, label, itemId, configuration, orgId, createdAt, createdBy, updatedAt, updatedBy, status, metadata. Required: item_id. Supports filtering by attributeOptions, customIdLike, and status.
- **threekit_catalog_variants_generate** — Generate all variants for a Threekit catalog item by item_id, overwriting any invalid pre-existing variants. Returns: totalVariants. Required: item_id.
- **get_single_threekit_catalog_variant_by_id** — Get a single variant for a Threekit catalog item by item_id and id. Returns: id, customId, label, itemId, configuration, orgId, createdAt, createdBy, updatedAt, updatedBy, status, metadata. Required: item_id, id.
- **update_a_threekit_catalog_variant_by_id** — Update a variant for a Threekit catalog item by item_id and id. Returns the updated variant including id, customId, label, itemId, configuration, orgId, status, metadata, createdAt, updatedAt. Required: item_id, id.
- **list_all_threekit_variant_prices** — List all prices for a Threekit catalog variant. Returns: currency, amount. Required: item_id, variant_id.
- **get_single_threekit_variant_price_by_id** — Get a specific price entry for a Threekit catalog variant by currency code. Returns: currency, amount. Required: item_id, variant_id, id (currency code).
- **threekit_variant_prices_upsert** — Create or update a specific price entry for a Threekit variant by currency code. Returns: currency, amount. Required: item_id, variant_id, price_id (the three-letter ISO currency code), and amount. The amount must be between 0 and 99999999.99.
- **delete_a_threekit_variant_price_by_id** — Delete a specific price entry for a Threekit variant by currency code. Returns an empty 204 response on success. Required: item_id, variant_id, id (the three-letter ISO currency code).
- **threekit_variant_prices_bulk_update** — Set (overwrite) all prices for a Threekit catalog variant with the provided price entries. Returns the updated prices array including currency and amount for each entry. Required: item_id, variant_id, prices.
- **list_all_threekit_catalog_variant_content** — List all content attached to a Threekit catalog item variant. Returns: id, orgId, variantId, name, format, fileId, contentKey, downloadUrl, createdAt, createdBy, updatedAt, updatedBy. Required: item_id, variant_id.
- **threekit_catalog_variant_content_attach** — Attach a piece of content to a Threekit catalog item variant by file ID. Returns: id, orgId, variantId, name, format, fileId, contentKey, downloadUrl, createdAt, createdBy, updatedAt, updatedBy. Required: item_id, variant_id, fileId.
- **get_single_threekit_catalog_variant_content_by_id** — Get a single piece of content attached to a Threekit catalog item variant by its content key (id). Returns: id, orgId, variantId, name, format, fileId, contentKey, downloadUrl, createdAt, createdBy, updatedAt, updatedBy. Required: item_id, variant_id, id.
- **delete_a_threekit_catalog_variant_content_by_id** — Delete a piece of content from a Threekit catalog item variant by its content key (id). Returns an empty 204 response on success. Required: item_id, variant_id, id.
- **create_a_threekit_pdf** — Create a PDF in Threekit from a Liquid template file populated with JSON input data. Returns the generated PDF as a binary file (content-type application/pdf). Required: data, template.
- **create_a_threekit_data_table** — Create a new Data Table in Threekit by uploading CSV content along with column definitions that tell the platform how to interpret each column. Returns: id, name, createdAt. Required: name, columnInfo, file. Supported column types are String, Number, and Asset.
- **list_all_threekit_jobs** — List Threekit jobs from the token's organization, optionally filtered by status. Returns: id, createdAt, createdBy, orgId, priority, schedulerState, status, taskCount, taskProgress, taskResultFailures, taskResultSuccesses, taskStatusPending, taskStatusRunning, taskStatusStopped, title, type, updatedAt. Max 100 entries per page.
- **list_all_threekit_pricebooks** — List pricebooks for a Threekit organization. Returns: id, orgId, name, createdBy, currencies, createdAt, deletedAt. Required: org_id.
- **get_single_threekit_pricebook_by_id** — Get a single Threekit pricebook by id. Returns: id, orgId, name, createdBy, currencies, createdAt, deletedAt, openapi, info, servers, security, paths, components, x-readme. Required: org_id, id.
- **list_all_threekit_orders** — List Threekit orders filtered by query parameters such as orgId, shortId, originOrgId, or platform. Returns each order's id, shortId, status, createdAt, updatedAt, orgId, originOrgId, customerId, metadata, platform, items, cart, and derivative.
- **list_all_threekit_branches** — List branches in a Threekit org. Returns: name, updatedAt, updatedBy, orgId, commitHash, openapi, info, servers, paths, components, x-readme.
- **delete_a_threekit_branch_by_id** — Delete a branch in a Threekit org, permanently removing all its content. This action cannot be reversed. Returns: message, openapi, info, servers, paths, components, x-readme. Required: id.
- **list_all_threekit_tags** — List Threekit tags filtered by organization and optional criteria such as name, type, and archived status. Returns: id, name, type, createdAt, updatedAt, deletedAt, createdBy, orgId. Required: orgId. Max 100 per page.
- **create_a_threekit_tag** — Create a new Threekit tag with a name and type. Returns: id, name, type, createdAt, updatedAt, deletedAt, createdBy, orgId. Required: name, type.
- **update_a_threekit_tag_by_id** — Update a Threekit tag by id. Returns: id, name, type, createdAt, updatedAt, deletedAt, createdBy, orgId. Required: id, orgId.
- **get_single_threekit_file_by_id** — Get a Threekit file by its file ID. Returns: message, files, openapi, info, servers, security, paths, components, x-readme. Required: id.

## How it works

1. **Link your customer's Threekit account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Threekit.** The Proxy API is a 1-to-1 mapping of the Threekit API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed visual CPQ into your sales platform** — CPQ and sales tooling vendors can offer customers a native Threekit connection that syncs configurable products, variants, and pricing into a 3D configurator. Reps close complex deals faster with photorealistic quotes tied to your pricing engine.
- **Automate product photography for PIM and DAM users** — PIM, DAM, and merchandising platforms can push catalog attributes and options into Threekit, trigger bulk V-Ray or WebGL renders, and pull the resulting imagery back into their systems. Customers eliminate physical photoshoots for every SKU variation.
- **Route configured orders into manufacturing and ERP** — ERP, MRP, and shop-floor SaaS can listen to Threekit orders, trigger asset export jobs for CAD/vector files, and generate dynamic PDF spec sheets. This closes the loop between web configurations and production without manual engineering handoff.
- **Personalize marketing with configurator analytics** — Marketing automation and CDP vendors can pull Threekit analytics events and views to see exactly which variants and options a shopper explored. Customers can retarget with the specific configuration the buyer designed rather than generic product imagery.
- **Sync pricebooks and variants from commerce backends** — E-commerce and ERP platforms can bulk-upsert variant prices and pricebooks into Threekit so the configurator always reflects live pricing, currencies, and promotions. Merchants stop maintaining pricing in two systems.

## What you can build

- **Two-way catalog and attribute sync** — Map your product hierarchy into Threekit catalog items, attributes, and options, and keep them in sync as SKUs change on either side.
- **Bulk variant pricing updates** — Upsert or bulk-update Threekit variant prices from a merchant's pricing source so the 3D configurator always displays real-time cost.
- **Automated render pipeline** — Trigger V-Ray, WebGL, or all-combinations render jobs on new products and download the finished assets back into your DAM or storage.
- **Order-to-manufacturing automation** — Poll Threekit orders, then fire off asset export and export-paths jobs to generate CAD, GLTF, or SVG files and dynamic PDFs for the factory floor.
- **Configurator analytics ingestion** — Stream Threekit analytics events and event views into your product to power engagement dashboards, personalization, and retargeting.
- **Asset lifecycle management** — List, clone, update, tag, and restore Threekit assets programmatically so customers can manage 3D content from inside your UI.

## FAQs

### How do end users authenticate their Threekit account?

Threekit uses API tokens scoped to an organization and environment. Truto handles token capture, storage, and injection so your users just paste credentials once and your product calls the integration through Truto.

### Which Threekit resources can I read and write through Truto?

Truto exposes tools across catalogs, catalog items, attributes, options, variants, variant prices, assets, asset attributes, asset metadata, products, orders, pricebooks, branches, tags, jobs, and analytics — covering the core surface area needed for CPQ, PIM, commerce, and manufacturing integrations.

### Can I trigger and monitor long-running render or export jobs?

Yes. You can kick off jobs like V-Ray renders, WebGL renders, all-combinations renders, bulk composites, bulk exports, and export paths, then list jobs, fetch a specific catalog job by ID, and download results when they complete.

### How do I keep pricing in sync across many variants?

Use the variant prices tools to upsert individual prices or bulk-update entire pricebooks. This lets you push pricing changes from an ERP or commerce backend into Threekit without iterating variant by variant in your own code.

### Can I access buyer interaction data from the configurator?

Yes. The analytics tools let you create events, fetch events, retrieve event views, and generate reports, so you can pull granular interaction data on which variants and options shoppers explored.

### Does Truto normalize Threekit into a unified E-Commerce schema?

Not yet — this integration is available as direct tool calls to Threekit's native endpoints. If you need a unified schema across multiple visual commerce or e-commerce providers, Truto can build it on request based on your use case.

## Related reading

- [Connect Threekit to ChatGPT: Manage 3D Models and Catalog Variants](https://truto.one/blog/connect-threekit-to-chatgpt-manage-3d-models-and-catalog-variants/) — Learn how to connect Threekit to ChatGPT using a managed MCP server. Automate 3D model management, render jobs, and catalog variant updates with AI agents.
- [Connect Threekit to Claude: Configure Product Attributes and Options](https://truto.one/blog/connect-threekit-to-claude-configure-product-attributes-and-options/) — Learn how to connect Threekit to Claude using Truto's managed MCP server. Execute complex 3D configuration workflows, manage assets, and trigger renders with AI.
- [Connect Threekit to AI Agents: Orchestrate Visual Renders and Exports](https://truto.one/blog/connect-threekit-to-ai-agents-orchestrate-visual-renders-and-exports/) — Learn how to securely connect Threekit to AI agents using Truto's /tools endpoint. Orchestrate 3D renders, catalog variants, and manufacturing exports.
