Printago API
Build powerful integrations with Printago! Our REST API and Realtime MQTT services let you automate your print farm operations programmatically.
What's Possible
The Printago API is extremely powerful. In fact, it's the same service that we ourselves use to build the main Printago website at app.printago.io.
Connect your systems directly to Printago and:
- List and manage your connected printers
- Upload 3D models and create SKUs
- Submit print jobs to your queue
- Monitor print status and progress
- Access print history and analytics
- Realtime access to printer state and entity change events
Base URL
https://api.printago.io
Required Headers
Include these headers in all API requests:
authorization: ApiKey YOUR_API_KEY x-printago-storeid: YOUR_STORE_ID
Quick Start Examples
curl -X GET "https://api.printago.io/v1/printers" \ -H "authorization: ApiKey YOUR_API_KEY" \ -H "x-printago-storeid: YOUR_STORE_ID"
fetch('https://api.printago.io/v1/printers', {
method: 'GET',
headers: {
'authorization': 'ApiKey YOUR_API_KEY',
'x-printago-storeid': 'YOUR_STORE_ID'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
import requests
url = "https://api.printago.io/v1/printers"
headers = {
"authorization": "ApiKey YOUR_API_KEY",
"x-printago-storeid": "YOUR_STORE_ID"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)
Authentication
All API requests require authentication via API key and store ID headers.
Getting an API Key
API keys are managed in your Printago dashboard under Settings → Integrations → API Keys, or directly at app.printago.io/api.
When you create a new API key, it will only be shown once. Store it securely as it grants full access to your account data and printers.
Required Headers
ApiKey Example Request
authorization: ApiKey pk_live_abc123... x-printago-storeid: store_xyz789...
Error Responses
Rate Limits
API access is rate-limited across two buckets:
If you exceed these limits, requests will fail with HTTP 429 until the time window resets. If the rate limits are too restrictive for your use case, please contact us to discuss.
Querying Data
Filter, sort, paginate, and shape API responses using query parameters or the POST search endpoint.
Overview
There are two ways to query data from the Printago API:
GET /v1/parts?status=pendingPOST /v1/parts/searchFiltering (Simple GET)
Add filter parameters directly to the URL. A bare field=value defaults to an equality check. You can also use the explicit field.operator=value format.
# Equality (implicit — defaults to eq) GET /v1/parts?status=pending # Equality (explicit) GET /v1/parts?status.eq=pending # Contains GET /v1/parts?name.contains=benchy # Multiple filters (AND) GET /v1/parts?status=pending&name.contains=benchy # In (comma-separated) GET /v1/orders?status.in=pending,processing
Filtering (POST Search)
For complex queries, use the POST /search endpoint with a JSON body. Each entity that supports GET listing also has a /search endpoint.
{
"filter": {
"status": { "eq": "pending" },
"name": { "contains": "benchy" }
},
"limit": 20,
"offset": 0
}
{
"filter": {
"OR": [
{ "status": { "eq": "pending" } },
{ "status": { "eq": "processing" } }
]
}
}
Filter Operators
The following operators are available for both query-parameter and POST-body filters:
?status.eq=active or just ?status=active?status.ne=deleted?quantity.gt=10?quantity.gte=10?quantity.lt=100?quantity.lte=100?name.contains=benchy?name.startsWith=PLA?name.endsWith=.3mf?status.in=pending,active?status.notIn=deleted,archived?folderId.isNull=true{ "quantity": { "between": [10, 100] } }Pagination
Control the number of results returned and paginate through large data sets.
true to include pagination metadata in the responseGET /v1/parts?limit=20&offset=40&meta=true
Sorting
Sort results by one or more fields. Use :asc or :desc suffix. Multiple sort fields are comma-separated.
# Sort by creation date (newest first) GET /v1/parts?sort=createdAt:desc # Sort by multiple fields GET /v1/parts?sort=status:asc,createdAt:desc
Field Selection
Request only specific fields to reduce response size. Provide a comma-separated list of field names.
GET /v1/parts?fields=id,name,status
Including Relations
Load related entities in a single request using the include parameter. Supports up to 4 relations and a max nesting depth of 2 levels.
# Include a single relation GET /v1/parts?include=folder # Include multiple relations GET /v1/parts?include=folder,linkedParts # Include nested relations (dot notation) GET /v1/parts?include=linkedParts.part
Response Format
By default, list endpoints return a plain JSON array. When meta=true, the response wraps results with pagination metadata.
[
{ "id": "abc123", "name": "Benchy", "status": "pending" },
{ "id": "def456", "name": "Calibration Cube", "status": "active" }
]
{
"data": [
{ "id": "abc123", "name": "Benchy", "status": "pending" },
{ "id": "def456", "name": "Calibration Cube", "status": "active" }
],
"total": 42,
"limit": 20,
"offset": 0
}
Realtime MQTT
Receive realtime printer status updates and entity change events via MQTT. This is the same data that powers the Printago dashboard.
Connection Details
mqtts://realtime.printago.io:8883wss://realtime.printago.io:9001apiclient_{keyId}_{suffix} where keyId is the first 24 characters of your API key.Realtime Printer Stats
Subscribe to receive realtime printer status updates including temperatures, print progress, filament info, and more.
stores/{storeId}/printer-stats/#
stores/{storeId}/printer-stats/{printerId}
{
printerId: string;
storeId: string;
state: string | null; // e.g. "idle", "printing", "paused"
isOnline: boolean;
isAvailable: boolean | null;
receivedAt: string; // ISO date
expiresAt: string; // ISO date
data: {
temps?: {
bedTemp?: number;
bedTempTarget?: number;
nozzleTemp?: number;
nozzleTempTarget?: number;
chamberTemp?: number;
chamberTempTarget?: number;
};
lights?: {
work?: string;
chamber?: string;
};
fans?: {
part?: number;
aux?: number;
chamber?: number;
};
printer?: {
nozzleDiameter: string;
homeAxes: {
x?: boolean;
y?: boolean;
z?: boolean;
};
};
print?: {
downloadPercent?: number;
percent?: number;
timeRemaining?: number;
stage?: string;
activity?: string;
errorCode?: string;
printError?: number;
currentLayer?: number;
totalLayers?: number;
taskId?: string;
taskName?: string;
};
filament?: {
ams?: {
status: {
slotsLoaded: string; // Bit string of loaded slots
slotsReading: string; // Bit string of slots being read
};
ams: {
slots: {
id: string;
color?: string; // Hex color e.g. "#FF5733"
info?: string;
tagId?: string;
type?: string; // e.g. "PLA", "PETG", "ABS"
remaining?: number; // Percentage remaining
v?: string;
}[];
}[];
};
spool?: {
id?: string;
color: string;
info: string;
tagId?: string;
type: string;
remaining: number;
v?: string;
};
};
health?: {
errors: { message: string; code: string; }[];
warnings: { message: string; code: string; }[];
infos: { message: string; code: string; }[];
};
}
}
Entity Change Events
Subscribe to receive notifications when data changes in your account (printers, parts, orders, etc.).
stores/{storeId}/entities/#
stores/{storeId}/entities/printers
Available entity types:
{
storeId: string; // Store where change occurred
entityType: string; // Entity type (e.g., "printers", "parts")
action: "INSERT" | "UPDATE" | "DELETE";
entities: {
[entityId: string]: EntityData | null // Full entity or null for DELETE
};
changes: { // Only present for UPDATE operations
[entityId: string]: {
[fieldName: string]: {
old: any; // Previous value
new: any; // New value
}
}
}
}
Example: Node.js Connection
import mqtt from 'mqtt';
const STORE_ID = 'your_store_id';
const API_KEY = 'your_api_key';
const KEY_ID = API_KEY.substring(0, 24); // First 24 chars of API key
const PRINTER_ID = 'cm7abc123def456'; // Your printer's Printago ID
const client = mqtt.connect('wss://realtime.printago.io:9001', {
username: STORE_ID,
password: API_KEY,
clientId: `apiclient_${KEY_ID}_${Date.now()}`
});
client.on('connect', () => {
console.log('Connected to MQTT');
// Subscribe to a specific printer's stats
client.subscribe(`stores/${STORE_ID}/printer-stats/${PRINTER_ID}`);
// Or use # wildcard for all printers: `stores/${STORE_ID}/printer-stats/#`
// Subscribe to part changes
client.subscribe(`stores/${STORE_ID}/entities/parts`);
});
client.on('message', (topic, message) => {
const data = JSON.parse(message.toString());
if (topic.includes('printer-stats')) {
console.log(`Printer ${data.printerId}: ${data.state}, ${data.data?.print?.percent ?? 0}%`);
} else if (topic.includes('entities/parts')) {
console.log(`Parts ${data.action}:`, Object.keys(data.entities));
}
});
Webhooks
Receive HTTP POST callbacks when events occur in your Printago account. Webhooks let you react to printer status changes, print job updates, and order events in realtime.
Overview
When you configure a webhook, Printago sends an HTTP POST request to your URL each time a subscribed event occurs. Webhooks are configured via the Notification Settings API or the Printago dashboard under Settings → Notifications.
Delivery Format
Every webhook is delivered as an HTTP POST request with a JSON body. Your endpoint must respond with a 2xx status code to acknowledge receipt.
POSTapplication/jsonPayload Schema
All webhook payloads share a common envelope format:
{
"event": string, // The event name (e.g. "onJobSucceeded")
"timestamp": string, // ISO 8601 timestamp of when the event occurred
"data": {
"printer": Printer | null, // Included for printer and job events
"printJob": PrintJob | null // Included for job events
}
}
The data object contains the full Printer and/or PrintJob resource depending on the event type. These are the same objects returned by the GET /v1/printers/{id} and GET /v1/print-jobs/{id} endpoints respectively.
Printer Events
These events fire when a printer's status changes. The data.printer field contains the full Printer object.
onPrinterOnline
A printer has come online and is connected.
onPrinterOffline
A printer has gone offline and is no longer connected.
onPrinterHmsError
A printer health monitoring system (HMS) error has been detected.
onPrinterHmsWarning
A printer health monitoring system (HMS) warning has been detected.
onPrinterContinuousPrintDisabled
Continuous print mode has been automatically disabled on a printer.
{
"event": "onPrinterOnline",
"timestamp": "2026-03-13T14:30:00.000Z",
"data": {
"printer": {
"id": "cm7abc123def456ghi",
"name": "Bambu X1C #1",
"model": "X1C",
"status": "idle",
"isOnline": true,
...
},
"printJob": null
}
}
Print Job Events
These events fire when a print job changes status. The data.printJob field contains the full PrintJob object, and data.printer contains the printer the job is assigned to (if available).
onJobStarted
A print job has started printing.
onJobSucceeded
A print job has completed successfully.
onJobFailed
A print job has failed.
onJobCancelled
A print job has been cancelled.
{
"event": "onJobSucceeded",
"timestamp": "2026-03-13T16:45:00.000Z",
"data": {
"printer": {
"id": "cm7abc123def456ghi",
"name": "Bambu X1C #1",
"model": "X1C",
"status": "idle",
"isOnline": true,
...
},
"printJob": {
"id": "cm7xyz789ghi012jkl",
"status": "Completed",
"partName": "Benchy",
"assignedPrinterId": "cm7abc123def456ghi",
"startedAt": "2026-03-13T14:30:00.000Z",
"completedAt": "2026-03-13T16:45:00.000Z",
...
}
}
}
Order Events
These events fire when orders are created, cancelled, or closed. Order events do not include printer or printJob data in the payload.
onOrderCreatedManual
A new order was created manually.
onOrderCreatedRetail
A new order was created from a retail integration (Shopify, eBay, TikTok Shop).
onOrderCancelled
An order has been cancelled.
onOrderClosed
An order has been closed (all items fulfilled).
onOrdersAutoPrinted
One or more orders were automatically sent to print via auto-print rules.
{
"event": "onOrderCreatedRetail",
"timestamp": "2026-03-13T10:15:00.000Z",
"data": {
"printer": null,
"printJob": null
}
}
Configuration
Configure webhooks via the API or the Printago dashboard.
1. Enable the webhook channel
{
"channel": "webhook",
"data": {
"webhookUrl": "https://your-server.com/webhook",
"apiKey": "your-secret-key-at-least-32-characters-long"
}
}
2. Subscribe to events
{
"onJobSucceeded": true,
"onJobFailed": true,
"onPrinterOffline": true,
"onOrderCreatedRetail": true
}
https://. Localhost and private IP addresses are not allowed.X-API-Key header of every webhook request for you to verify.Failure Handling
If your webhook endpoint returns a non-2xx status code or is unreachable, Printago logs the failure. If 10 or more failures occur within a 24-hour window, the webhook is automatically disabled to prevent further failed deliveries.
OpenAPI Specification
Download the OpenAPI 3.0 specification to generate client SDKs, import into API tools, or integrate with your development workflow.
Download
The OpenAPI specification (formerly known as Swagger) is a standardized format for describing REST APIs. Use it with tools like Postman, Insomnia, or code generators.
Download OpenAPI Spec (JSON)What You Can Do
Generate Client SDKs
Use OpenAPI Generator to create type-safe client libraries in TypeScript, Python, Go, Java, and 50+ other languages.
Import into API Tools
Import directly into Postman, Insomnia, or other API testing tools to explore and test endpoints.
Validate Requests
Use the spec to validate API requests and responses in your application with libraries like Ajv or Zod.
Generate a TypeScript Client
Example using OpenAPI Generator to create a TypeScript client:
# Install OpenAPI Generator npm install @openapitools/openapi-generator-cli -g # Generate TypeScript client openapi-generator-cli generate \ -i https://developers.printago.io/swagger.json \ -g typescript-fetch \ -o ./printago-client
Specification Details
https://api.printago.ioAuthorization headerBest Practices
Guidelines for building reliable, secure, and efficient integrations with the Printago API.
Scope API Keys to the Minimum Permissions Needed
API keys inherit Printago's full permission model. When you create a key, scope it to exactly the permissions that integration needs — nothing more.
A key for an order automation script gets order and queue permissions. A key for a read-only dashboard gets view-only access. A contractor building an integration gets a key scoped to what they need for that project, revoked when the project ends. If the built-in roles don't fit, individual permissions can be mixed and matched.
One API Key Per Integration
Never share a single API key across multiple integrations. Each integration — an order automation script, a monitoring dashboard, a developer's custom tool — should get its own key.
The reason is isolation. If one integration starts misbehaving — hammering the rate limit, producing errors — you can identify it, revoke just that key, and leave everything else running. With a shared key, you're debugging in the dark and your only option is to kill all access at once.
Lock Down Keys with IP Restrictions
API keys support CIDR-based IP allowlisting. A key can be restricted to specific IP ranges — your server, your office network, a contractor's known IP. Requests from outside the allowlist are rejected regardless of whether the key itself is valid.
Even if a key is exposed, it's only usable from trusted network locations. For production automation running from a fixed server, there's no reason not to lock it down.
Use Push, Not Poll
Printago provides two push-based mechanisms for staying in sync with your print farm. Use them instead of polling.
Polling is inefficient, eats into rate limits, and gives you data that's only as fresh as your poll interval. Push and stream instead.
Build Against the OpenAPI Spec
The API is versioned, and Printago maintains backwards compatibility within versions. Integrations you build today won't break because of a platform update.
The live OpenAPI specification is always available for download from the API Keys portal. It's generated from the running platform, not maintained separately — so it's always accurate. If you're building against the API, start with the spec. It's the authoritative source for endpoint behavior, field names, and data types.
This developer portal is also auto-generated from the live platform, so it stays current as the API evolves.
AI Agent Integration
Printago's structured API, consistent conventions, and comprehensive documentation are designed to be consumed by AI agents as much as by humans. The OpenAPI spec and this developer portal are oriented toward machine consumption.
Printago publishes a Claude Code skill that lets you manage your print farm through natural language — query queue status, manage parts, fulfill orders, generate reports. It's an example of what's possible when the underlying API is built for programmatic consumption, and a practical tool for operators who want to work faster without writing custom scripts.
Summary
- Scope every API key to the minimum permissions required
- Create one API key per integration — never share keys
- Use CIDR-based IP restrictions on production keys
- Revoke keys immediately when an integration is decommissioned
- Use webhooks for event-driven workflows, MQTT for real-time state
- Never poll when a push mechanism is available
- Build against the OpenAPI spec — it's always up to date
- Rely on API versioning for backwards compatibility
/v1/api-keys
Get all API keys
List all API keys for your store with optional search/filter
Query Parameters
Response Schema
/v1/api-keys/{id}
Get API key by ID
Get a single API key by ID
Path Parameters
Response Schema
Example Response
{
"hash": "string",
"salt": "string",
"name": "string",
"active": true,
"managed": true,
"fullAccess": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.925Z",
"updatedAt": "2026-03-30T17:16:46.925Z"
}
/v1/api-keys/{id}/permissions
Get API key permissions
Get direct permissions for an API key
Path Parameters
Response Schema
Example Response
[]
/v1/api-keys/{id}/roles
Get API key roles
Get assigned role IDs for an API key
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/api-keys
Create an API key
Generate a new API key. The full key is only returned once on creation.
Request Body
API key configuration
Example Request
{
"name": "string",
"fullAccess": true,
"permissions": [],
"roleIds": [
"string"
],
"ipAllowlist": [
"string"
],
"expiresAt": "2026-03-30T17:16:46.926Z"
}
Response Schema
Example Response
{
"id": "string",
"storeId": "string",
"name": "string",
"key": "string"
}
/v1/api-keys/search
Search API keys
Advanced search for API keys
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/api-keys/{id}
Update an API key
Update an API key's configuration including name, status, permissions, roles, and IP restrictions
Path Parameters
Request Body
Fields to update
Example Request
{
"active": true,
"name": "string",
"fullAccess": true,
"permissions": [],
"roleIds": [
"string"
]
}
Response Schema
Example Response
{
"hash": "string",
"salt": "string",
"name": "string",
"active": true,
"managed": true,
"fullAccess": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.927Z",
"updatedAt": "2026-03-30T17:16:46.927Z"
}
/v1/api-keys/{id}
Delete an API key
Permanently revoke an API key
Path Parameters
/v1/audit-logs
GET /v1/audit-logs
Query Parameters
Response Schema
/v1/audit-logs/search
POST /v1/audit-logs/search
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/cost-components
Get all cost components
Query Parameters
Response Schema
/v1/cost-components/{id}
Get cost component by ID
Path Parameters
Response Schema
Example Response
{
"id": "string",
"name": "string",
"unit": "string",
"rate": 1,
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.929Z",
"updatedAt": "2026-03-30T17:16:46.929Z"
}
/v1/cost-components
Create new cost component
Request Body
Cost component details
Example Request
{
"name": "string",
"unit": "string",
"rate": 1,
"id": "string",
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.930Z",
"createdAt": "2026-03-30T17:16:46.930Z"
}
Response Schema
Example Response
{
"id": "string",
"name": "string",
"unit": "string",
"rate": 1,
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.930Z",
"updatedAt": "2026-03-30T17:16:46.930Z"
}
/v1/cost-components/search
Search cost components
Search cost components with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/cost-components/{id}
Update cost component
Path Parameters
Request Body
Fields to update
Example Request
{
"name": "string",
"unit": "string",
"rate": 1,
"id": "string",
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.930Z",
"createdAt": "2026-03-30T17:16:46.930Z"
}
Response Schema
Example Response
{
"id": "string",
"name": "string",
"unit": "string",
"rate": 1,
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.930Z",
"updatedAt": "2026-03-30T17:16:46.930Z"
}
/v1/cost-components/{id}
Delete cost component
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/customers
Get all customers
List all customers associated with orders in the store
Query Parameters
Response Schema
/v1/customers/search
Search customers
Search customers with filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/filametrics/status
Get the Filametrics connection status
Get the Filametrics connection status.
Response Schema
Example Response
{
"connected": true
}
/v1/filametrics/connect
Connect Filametrics integration
Connect Filametrics integration. Creates a PubSub notification channel for material usage events.
Response Schema
Example Response
{
"connected": true
}
/v1/filametrics/disconnect
Disconnect Filametrics integration
Disconnect Filametrics integration. Removes the PubSub notification channel.
Response Schema
Example Response
{
"connected": true
}
/v1/entitlements/check/{entitlement}
Check if store has specific entitlement
Path Parameters
Response Schema
Example Response
{
"hasEntitlement": true
}
/v1/entitlements
Get all entitlements
Query Parameters
Response Schema
/v1/entitlements/{id}
Get entitlement by ID
Path Parameters
Response Schema
Example Response
{
"entitlement": "string",
"enabledAt": "2026-03-30T17:16:46.931Z",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.931Z",
"updatedAt": "2026-03-30T17:16:46.931Z"
}
/v1/entitlements/search
Search entitlements
Search entitlements with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/integrations/etsy/{integrationId}/listing/{listingId}
Get Etsy listing
Fetch a single listing with inventory
Path Parameters
Response Schema
/v1/integrations/etsy/{integrationId}/settings
Get Etsy settings
Get Etsy integration settings
Path Parameters
Response Schema
Example Response
{
"autoPrint": true
}
/v1/integrations/etsy/{integrationId}/status
Get Etsy status
Get Etsy integration status
Path Parameters
Response Schema
Example Response
{
"connected": true,
"shopId": "string",
"shopName": "string",
"shopUrl": "string",
"lastSyncedAt": "2026-03-30T17:16:46.931Z"
}
/v1/integrations/etsy/{integrationId}/usage
Get Etsy usage stats
Get current usage statistics for the Etsy integration
Path Parameters
Response Schema
Example Response
{
"orders": {
"current": 1
},
"listings": {
"current": 1
},
"cycleStartDate": "2026-03-30T17:16:46.931Z",
"cycleEndDate": "2026-03-30T17:16:46.931Z"
}
/v1/integrations/etsy
List Etsy integrations
List all connected Etsy shops for a store
Response Schema
Example Response
[
{
"integrationId": "string",
"shopId": "string",
"shopName": "string"
}
]
/v1/integrations/etsy/{integrationId}/sync-orders
Sync Etsy orders
Manually sync orders from Etsy
Path Parameters
Query Parameters
Response Schema
Example Response
{
"orders": [
{
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.931Z",
"updatedAt": "2026-03-30T17:16:46.931Z"
}
],
"totalSynced": 1,
"totalAvailable": 1,
"skipped": 1,
"limitReached": true
}
/v1/integrations/etsy/{integrationId}/settings
Update Etsy settings
Update Etsy integration settings
Path Parameters
Request Body
Settings to update
Example Request
{
"autoPrint": true
}
Response Schema
Example Response
{
"autoPrint": true
}
/v1/storage/signed-urls
Get signed download URLs
Request Body
File paths to generate URLs for
Example Request
{
"paths": [
"string"
],
"duration": 1
}
Response Schema
Example Response
{
"signedUrls": [
"string"
]
}
/v1/storage/signed-upload-urls
Get signed upload URLs
Request Body
File details for upload
Example Request
{
"filenames": [
"string"
]
}
Response Schema
Example Response
{
"signedUrls": [
{
"path": "string",
"uploadUrl": "string"
}
]
}
/v1/folders
Get all folders
Query Parameters
Response Schema
/v1/folders/{id}
Get folder by ID
Path Parameters
Response Schema
Example Response
{
"name": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.932Z",
"updatedAt": "2026-03-30T17:16:46.932Z"
}
/v1/folders/by-type/{type}
Get folders by type
Path Parameters
Response Schema
Example Response
[
{
"name": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.932Z",
"updatedAt": "2026-03-30T17:16:46.932Z"
}
]
/v1/folders/parts
Get part folders
Response Schema
Example Response
[
{
"name": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.932Z",
"updatedAt": "2026-03-30T17:16:46.932Z"
}
]
/v1/folders/skus
Get SKU folders
Response Schema
Example Response
[
{
"name": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.932Z",
"updatedAt": "2026-03-30T17:16:46.932Z"
}
]
/v1/folders
Create a new folder
Request Body
Folder creation details
Example Request
{
"name": "string"
}
Response Schema
Example Response
{
"name": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.932Z",
"updatedAt": "2026-03-30T17:16:46.932Z"
}
/v1/folders/search
Search folders
Search folders with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/folders/move
Move folders to a new parent
Request Body
Batch move request with folder IDs and new parent
Example Request
{
"entities": {
"folderIds": [
"string"
],
"partIds": [
"string"
],
"skuIds": [
"string"
]
}
}
Response Schema
Example Response
{
"folderIds": [
"string"
],
"partIds": [
"string"
],
"skuIds": [
"string"
]
}
/v1/folders/rename
Rename a folder
Request Body
Folder ID and new name
Example Request
{
"id": "string",
"name": "string"
}
Response Schema
Example Response
{
"name": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.933Z",
"updatedAt": "2026-03-30T17:16:46.933Z"
}
/v1/folders/delete
Delete folders
Request Body
List of folder IDs to delete
Example Request
{
"folderIds": [
"string"
]
}
Response Schema
Example Response
{
"success": true,
"affected": 1,
"message": "string"
}
/v1/hints
Get path schema
Get schema for an API endpoint Returns request/response schemas for the specified API path, including parameters, request body, and response types.
Path Parameters
Response Schema
Example Response
{}
/v1/hints/schema/types/{typeName}
Get type schema
Get JSON schema for a data type Returns the full JSON schema for the specified data type, useful for LLM introspection. Resolves $refs for readability.
Path Parameters
Response Schema
Example Response
{}
/v1/hints/schema/paths
List available paths
List available API paths Returns all API endpoint paths that have schema definitions.
Response Schema
Example Response
[ "string" ]
/v1/hints/schema/types
List available types
List available type schemas Returns the names of all data types that have schemas available.
Response Schema
Example Response
[ "string" ]
/v1/integrations/{id}
Get a specific integration by ID
Path Parameters
Response Schema
Example Response
{
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.933Z",
"updatedAt": "2026-03-30T17:16:46.933Z"
}
/v1/integrations
Get all integrations
List all integrations in your store
Query Parameters
Response Schema
/v1/integrations/search
Search integrations
Search integrations with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/linked-parts/{id}
Get a specific linked part by ID
Path Parameters
Response Schema
Example Response
{
"skuId": "string",
"partId": "string",
"parameters": [
{
"name": "string"
}
],
"quantity": 0,
"label": "string",
"exposedParameters": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.934Z",
"updatedAt": "2026-03-30T17:16:46.934Z"
}
/v1/linked-parts
Get all linked parts for a store
Query Parameters
Response Schema
/v1/linked-parts
Create a new linked part
Request Body
- Linked part data
Example Request
{
"skuId": "string",
"parameters": [
{
"name": "string"
}
],
"partId": "string",
"quantity": 0,
"label": "string",
"exposedParameters": [
"string"
]
}
Response Schema
Example Response
{
"skuId": "string",
"partId": "string",
"parameters": [
{
"name": "string"
}
],
"quantity": 0,
"label": "string",
"exposedParameters": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.936Z",
"updatedAt": "2026-03-30T17:16:46.936Z"
}
/v1/linked-parts/search
Search linked parts
Advanced search for linked parts
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/linked-parts/{id}
Update a linked part
Path Parameters
Request Body
- Updated linked part data
Example Request
{
"skuId": "string",
"parameters": [
{
"name": "string"
}
],
"partId": "string",
"quantity": 0,
"label": "string",
"exposedParameters": [
"string"
]
}
Response Schema
Example Response
{
"skuId": "string",
"partId": "string",
"parameters": [
{
"name": "string"
}
],
"quantity": 0,
"label": "string",
"exposedParameters": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.936Z",
"updatedAt": "2026-03-30T17:16:46.936Z"
}
/v1/linked-parts/{id}
Delete a linked part
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/maintenance/history
Get completion history
Get maintenance completion history
Query Parameters
Response Schema
Example Response
[
{
"enrollmentId": "string",
"printerId": "string",
"maintenanceItemId": "string",
"completedAt": "2026-03-30T17:16:46.936Z",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.936Z",
"updatedAt": "2026-03-30T17:16:46.936Z"
}
]
/v1/maintenance/fleet-status
Get fleet maintenance status
Get maintenance status for all enrolled printers
Response Schema
Example Response
[
{
"enrollmentId": "string",
"printerId": "string",
"maintenanceItemId": "string",
"printerName": "string",
"itemName": "string",
"interval": 1,
"elapsed": 1,
"progress": 1,
"warningThresholdPct": 1
}
]
/v1/maintenance/printers/{printerId}/status
Get printer maintenance status
Get maintenance enrollments and status for a specific printer
Path Parameters
Response Schema
Example Response
[
{
"enrollmentId": "string",
"printerId": "string",
"maintenanceItemId": "string",
"printerName": "string",
"itemName": "string",
"interval": 1,
"elapsed": 1,
"progress": 1,
"warningThresholdPct": 1
}
]
/v1/maintenance/recommended-profiles
Get recommended maintenance profiles
Get the recommended maintenance profile mapping (item name -> model codes). Global reference data, not per-store.
Response Schema
Example Response
{}
/v1/maintenance/enrollments
List enrollments
List all maintenance enrollments for the store
Response Schema
Example Response
[
{
"printerId": "string",
"maintenanceItemId": "string",
"currentOffset": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.937Z",
"updatedAt": "2026-03-30T17:16:46.937Z"
}
]
/v1/maintenance/items
List maintenance items
List all maintenance items for the store
Response Schema
Example Response
[
{
"name": "string",
"interval": 1,
"warningThresholdPct": 1,
"isSystemDefault": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.937Z",
"updatedAt": "2026-03-30T17:16:46.937Z"
}
]
/v1/maintenance/items
Create maintenance item
Create a new maintenance item
Request Body
Example Request
{
"name": "string",
"interval": 1,
"warningThresholdPct": 1,
"isSystemDefault": true
}
Response Schema
Example Response
{
"name": "string",
"interval": 1,
"warningThresholdPct": 1,
"isSystemDefault": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.937Z",
"updatedAt": "2026-03-30T17:16:46.937Z"
}
/v1/maintenance/items/{id}/duplicate
Duplicate maintenance item
Duplicate a maintenance item
Path Parameters
Response Schema
Example Response
{
"name": "string",
"interval": 1,
"warningThresholdPct": 1,
"isSystemDefault": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.937Z",
"updatedAt": "2026-03-30T17:16:46.937Z"
}
/v1/maintenance/enrollments
Enroll printers
Enroll printers in a maintenance item
Request Body
Example Request
{
"maintenanceItemId": "string",
"enrollments": [
{
"printerId": "string",
"currentOffset": 1
}
]
}
Response Schema
Example Response
[
{
"printerId": "string",
"maintenanceItemId": "string",
"currentOffset": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.937Z",
"updatedAt": "2026-03-30T17:16:46.937Z"
}
]
/v1/maintenance/recommended-enrollments
Enroll recommended maintenance
Enroll printers in recommended maintenance plans based on their model
Request Body
Example Request
{
"printerIds": [
"string"
],
"offsets": {}
}
Response Schema
Example Response
{
"enrolledCount": 1
}
/v1/maintenance/mark-done
Mark maintenance done
Mark maintenance as done for one or more enrollments
Request Body
Example Request
{
"enrollmentIds": [
"string"
],
"notes": "string",
"userId": "string"
}
/v1/maintenance/mode
Set maintenance mode
Toggle maintenance mode on or off for one or more printers. Entitlement is checked inside the service only when enabling, so users can always turn maintenance mode off.
Request Body
Example Request
{
"printerIds": [
"string"
],
"enabled": true
}
Response Schema
Example Response
[
{
"name": "string",
"nozzleDiameter": "string",
"enabled": true,
"tags": [
"string"
],
"confirmedReady": true,
"isAvailable": true,
"isOnline": true,
"continuousPrint": true,
"lifetimePrintHours": 1,
"lifetimeJobCount": 1,
"isInMaintenance": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.937Z",
"updatedAt": "2026-03-30T17:16:46.937Z"
}
]
/v1/maintenance/items/{id}
Update maintenance item
Update a maintenance item
Path Parameters
Request Body
Example Request
{
"name": "string",
"interval": 1,
"warningThresholdPct": 1
}
Response Schema
Example Response
{
"name": "string",
"interval": 1,
"warningThresholdPct": 1,
"isSystemDefault": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.938Z",
"updatedAt": "2026-03-30T17:16:46.938Z"
}
/v1/maintenance/items/{id}
Delete maintenance item
Delete a maintenance item
Path Parameters
/v1/maintenance/enrollments
Unenroll printers
Unenroll printers from maintenance items
Request Body
Example Request
{
"enrollmentIds": [
"string"
]
}
/v1/material-profile-assignments
Get all material profile assignments
List all material-to-profile assignments for automatic profile selection
Query Parameters
Response Schema
/v1/materials
Get all materials
List all material types (e.g., PLA, PETG, ABS)
Query Parameters
Response Schema
/v1/materials/{id}
Get material by ID
Get a single material type by ID
Path Parameters
Response Schema
Example Response
{
"name": "string",
"brand": "string",
"type": "string",
"tags": [
"string"
],
"starred": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.938Z",
"updatedAt": "2026-03-30T17:16:46.938Z"
}
/v1/materials
Create material
Create a new material type
Request Body
Material type data
Example Request
{
"name": "string",
"type": "string",
"brand": "string",
"tags": [
"string"
],
"starred": true
}
Response Schema
Example Response
{
"name": "string",
"brand": "string",
"type": "string",
"tags": [
"string"
],
"starred": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.938Z",
"updatedAt": "2026-03-30T17:16:46.938Z"
}
/v1/material-profile-assignments/search
Search material profile assignments
Search material profile assignments with filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/materials/search
Search materials
Search materials with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/materials/{id}
Update material
Update a material type's properties
Path Parameters
Request Body
Fields to update
Example Request
{
"name": "string",
"brand": "string",
"tags": [
"string"
],
"starred": true
}
Response Schema
Example Response
{
"name": "string",
"brand": "string",
"type": "string",
"tags": [
"string"
],
"starred": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
/v1/materials/{id}
Delete material
Delete a material type
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/materials
Delete materials
Delete multiple material types
Request Body
Material IDs to delete
Example Request
[ "string" ]
Response Schema
Example Response
[ "string" ]
/v1/materials/group-members
Get all group members
List all group memberships (variants assigned to groups)
Response Schema
Example Response
[
{
"materialGroupId": "string",
"materialType": "string",
"priority": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
]
/v1/materials/groups
Get all groups
List all material groups for organizing compatible materials
Response Schema
Example Response
[
{
"name": "string",
"priority": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
]
/v1/materials/groups/{id}
Get group by ID
Get a specific material group
Path Parameters
Response Schema
Example Response
{
"name": "string",
"priority": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
/v1/materials/group-members/{id}
Get group member by ID
Get a specific group member record
Path Parameters
Response Schema
/v1/materials/group-members/group/{groupId}
Get group members
Get members of a specific group
Path Parameters
Response Schema
Example Response
[
{
"materialGroupId": "string",
"materialType": "string",
"priority": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
]
/v1/materials/group-members
Add group member
Add a variant to a group
Request Body
Variant and group IDs
Example Request
{
"priority": 0,
"materialGroupId": "string"
}
Response Schema
Example Response
{
"materialGroupId": "string",
"materialType": "string",
"priority": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
/v1/materials/groups
Create group
Create a group to organize interchangeable materials
Request Body
Group name and configuration
Example Request
{
"name": "string",
"priority": 0
}
Response Schema
Example Response
{
"name": "string",
"priority": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
/v1/materials/groups/{id}
Update group
Update a material group's properties
Path Parameters
Request Body
Fields to update
Example Request
{
"name": "string",
"priority": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
Response Schema
Example Response
{
"name": "string",
"priority": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
/v1/materials/groups/{id}
Delete group
Delete a material group
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/materials/groups
Delete multiple groups
Delete multiple groups
Request Body
Group IDs to delete
Example Request
[ "string" ]
Response Schema
Example Response
[ "string" ]
/v1/materials/group-members
Remove group members
Remove variants from groups
Request Body
Membership IDs to remove
Example Request
[ "string" ]
Response Schema
Example Response
[ "string" ]
/v1/materials/instances
Get all material instances
List all physical filament spools in your inventory
Response Schema
Example Response
[
{
"variantId": "string",
"materialId": "string",
"materialType": "string",
"remainingMaterial": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
]
/v1/materials/instances/{id}
Get instance by ID
Get a specific material instance (spool)
Path Parameters
Response Schema
/v1/materials/instances
Create material instance
Add a new spool to your inventory
Request Body
Spool data with variant and remaining weight
Example Request
{
"materialId": "string",
"variantId": "string",
"materialType": "string",
"remainingMaterial": 0
}
Response Schema
Example Response
{
"variantId": "string",
"materialId": "string",
"materialType": "string",
"remainingMaterial": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
/v1/materials/instances/{id}
Update material instance
Update spool information (e.g., remaining weight)
Path Parameters
Request Body
Fields to update
Example Request
{
"variantId": "string",
"materialId": "string",
"materialType": "string",
"remainingMaterial": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.939Z",
"updatedAt": "2026-03-30T17:16:46.939Z"
}
Response Schema
Example Response
{
"variantId": "string",
"materialId": "string",
"materialType": "string",
"remainingMaterial": 0,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.940Z",
"updatedAt": "2026-03-30T17:16:46.940Z"
}
/v1/materials/instances/{id}
Delete material instance
Remove a spool from inventory
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/material-variants
Get all material variants
List all material variants (specific colors/brands of a material type)
Query Parameters
Response Schema
/v1/materials/variants
Get all variants
List all material variants (specific colors/brands of a material type)
Response Schema
Example Response
[
{
"name": "string",
"materialId": "string",
"tags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.940Z",
"updatedAt": "2026-03-30T17:16:46.940Z"
}
]
/v1/materials/variants/{id}
Get variant by ID
Get a specific material variant
Path Parameters
Response Schema
Example Response
{
"name": "string",
"materialId": "string",
"tags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.940Z",
"updatedAt": "2026-03-30T17:16:46.940Z"
}
/v1/materials/{materialId}/variants
Get variants by material
Get all variants of a specific material type
Path Parameters
Response Schema
Example Response
[
{
"name": "string",
"materialId": "string",
"tags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.940Z",
"updatedAt": "2026-03-30T17:16:46.940Z"
}
]
/v1/materials/variants/batch
Batch create variants
Create multiple variants at once
Request Body
Array of variant data
Example Request
[
{
"name": "string",
"tags": [
"string"
],
"materialId": "string"
}
]
Response Schema
Example Response
[
{
"name": "string",
"materialId": "string",
"tags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.940Z",
"updatedAt": "2026-03-30T17:16:46.940Z"
}
]
/v1/materials/variants
Create variant
Create a new material variant (e.g., "Bambu PLA Basic - Red")
Request Body
Variant data including material type and color
Example Request
{
"name": "string",
"tags": [
"string"
],
"materialId": "string"
}
Response Schema
Example Response
{
"name": "string",
"materialId": "string",
"tags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.940Z",
"updatedAt": "2026-03-30T17:16:46.940Z"
}
/v1/material-variants/search
Search material variants
Search material variants with filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/materials/variants/{id}
Update variant
Update a variant's properties
Path Parameters
Request Body
Fields to update
Example Request
{
"name": "string",
"materialId": "string",
"tags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.943Z",
"updatedAt": "2026-03-30T17:16:46.943Z"
}
Response Schema
Example Response
{
"name": "string",
"materialId": "string",
"tags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.943Z",
"updatedAt": "2026-03-30T17:16:46.943Z"
}
/v1/materials/variants
Delete multiple variants
Delete multiple variants
Request Body
Variant IDs to delete
Example Request
[ "string" ]
Response Schema
Example Response
[ "string" ]
/v1/materials/variants/{id}
Delete variant
Delete a material variant
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/orders/customers
Get all customers
Response Schema
Example Response
[
{
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.943Z",
"updatedAt": "2026-03-30T17:16:46.943Z"
}
]
/v1/ignored-skus
Get all ignored SKUs
List all ignored SKUs that should be skipped during order processing
Query Parameters
Response Schema
/v1/orders
Get all orders
Query Parameters
Response Schema
/v1/orders/full
Get complete order data
Response Schema
Example Response
{
"orders": [
{
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.944Z",
"updatedAt": "2026-03-30T17:16:46.944Z"
}
],
"orderItems": [
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.944Z",
"updatedAt": "2026-03-30T17:16:46.944Z"
}
],
"customers": [
{
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.944Z",
"updatedAt": "2026-03-30T17:16:46.944Z"
}
]
}
/v1/orders/customers/{customerId}
Get customer by ID
Path Parameters
Response Schema
Example Response
{
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.944Z",
"updatedAt": "2026-03-30T17:16:46.944Z"
}
/v1/orders/ignored-skus
Get ignored SKUs list
Response Schema
Example Response
{
"skus": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.944Z",
"updatedAt": "2026-03-30T17:16:46.944Z"
}
/v1/orders/{orderId}
Get order with full details
Path Parameters
Response Schema
Example Response
{
"order": {
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.944Z",
"updatedAt": "2026-03-30T17:16:46.944Z"
},
"items": [
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.944Z",
"updatedAt": "2026-03-30T17:16:46.944Z"
}
]
}
/v1/orders/{orderId}/only
Get order without related data
Path Parameters
Response Schema
Example Response
{
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.945Z",
"updatedAt": "2026-03-30T17:16:46.945Z"
}
/v1/orders/by-external/{source}/{externalId}/jobs
Get print jobs for an external order
Path Parameters
Response Schema
Example Response
{
"orderId": "string",
"jobs": [
{
"partBuildId": "string",
"quantityIndex": 1,
"quantityTotal": 1,
"filesToPrint": [
"string"
],
"isGcodeCached": true,
"partName": "string",
"parameterOverrides": [
{
"name": "string"
}
],
"label": "string",
"queueOrder": 0,
"requiredPrinterTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"taskId": 1,
"hidden": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.945Z",
"updatedAt": "2026-03-30T17:16:46.945Z"
}
]
}
/v1/orders/{orderId}/cancel
Cancel an order
Path Parameters
Response Schema
Example Response
{
"order": {
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.945Z",
"updatedAt": "2026-03-30T17:16:46.945Z"
},
"items": [
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.945Z",
"updatedAt": "2026-03-30T17:16:46.945Z"
}
]
}
/v1/orders/ignored-skus/check
Check if SKUs are ignored
Request Body
List of SKUs to check
Example Request
{
"skus": [
"string"
]
}
Response Schema
Example Response
{}
/v1/orders/customers
Create a new customer
Request Body
Customer information (requires at least name, email, or phone)
Example Request
{}
Response Schema
Example Response
{
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.946Z",
"updatedAt": "2026-03-30T17:16:46.946Z"
}
/v1/orders
Create a new order
Request Body
Order details including optional customer and items
Example Request
{
"order": {
"orderNumber": "string"
},
"customer": {},
"items": [
{
"quantity": 1
}
]
}
Response Schema
Example Response
{
"order": {
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.946Z",
"updatedAt": "2026-03-30T17:16:46.946Z"
},
"items": [
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.946Z",
"updatedAt": "2026-03-30T17:16:46.946Z"
}
]
}
/v1/orders/reconcile
Reconcile print jobs with orders
Request Body
Reconciliation parameters including SKUs, orders, printer tags, and priority
Example Request
{
"skuIds": [
"string"
],
"orderIds": [
"string"
],
"printerTags": {}
}
Response Schema
Example Response
{
"errors": [
"string"
]
}
/v1/orders/print
Reconcile print jobs with orders
Request Body
Reconciliation parameters including SKUs, orders, printer tags, and priority
Example Request
{
"skuIds": [
"string"
],
"orderIds": [
"string"
],
"printerTags": {}
}
Response Schema
Example Response
{
"errors": [
"string"
]
}
/v1/ignored-skus/search
Search ignored SKUs
Search ignored SKUs with filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/orders/search
Search orders
Advanced search for orders
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/orders/{orderId}
Update an order
Path Parameters
Request Body
Fields to update on the order
Example Request
{
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.947Z",
"updatedAt": "2026-03-30T17:16:46.947Z"
}
Response Schema
Example Response
{
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.947Z",
"updatedAt": "2026-03-30T17:16:46.947Z"
}
/v1/orders/batch/cancel
Batch cancel orders
Request Body
Order IDs to cancel
Example Request
{
"orderIds": [
"string"
]
}
Response Schema
Example Response
{
"cancelled": [
{
"order": {
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.947Z",
"updatedAt": "2026-03-30T17:16:46.947Z"
},
"items": [
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.947Z",
"updatedAt": "2026-03-30T17:16:46.947Z"
}
]
}
],
"errors": [
{
"orderId": "string",
"error": "string"
}
]
}
/v1/orders/batch/close
Batch close orders
Request Body
Order IDs to close
Example Request
{
"orderIds": [
"string"
]
}
Response Schema
Example Response
{
"closed": [
{
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.948Z",
"updatedAt": "2026-03-30T17:16:46.948Z"
}
],
"errors": [
{
"orderId": "string",
"error": "string"
}
]
}
/v1/orders/batch/reopen
Batch reopen orders
Request Body
Order IDs to reopen
Example Request
{
"orderIds": [
"string"
]
}
Response Schema
Example Response
{
"reopened": [
{
"orderNumber": "string",
"syncDisabled": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.948Z",
"updatedAt": "2026-03-30T17:16:46.948Z"
}
],
"errors": [
{
"orderId": "string",
"error": "string"
}
]
}
/v1/orders/ignored-skus
Update ignored SKUs list
Request Body
SKUs to add to or remove from the ignore list
Example Request
{
"add": [
"string"
],
"remove": [
"string"
]
}
Response Schema
/v1/orders/batch/delete
Batch delete orders
Request Body
Order IDs to delete permanently
Example Request
{
"orderIds": [
"string"
]
}
Response Schema
Example Response
{
"deleted": [
"string"
],
"errors": [
{
"orderId": "string",
"error": "string"
}
]
}
/v1/orders/{orderId}
Delete an order
Path Parameters
Response Schema
Example Response
{
"id": "string"
}
/v1/orders/items/{itemId}
Get a specific order item
Path Parameters
Response Schema
Example Response
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.948Z",
"updatedAt": "2026-03-30T17:16:46.948Z"
}
/v1/orders/items
Get all order items
Response Schema
Example Response
[
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.948Z",
"updatedAt": "2026-03-30T17:16:46.948Z"
}
]
/v1/order-items
Get all order items
List all order items across all orders in the store
Query Parameters
Response Schema
/v1/orders/{orderId}/items
Get items for a specific order
Path Parameters
Response Schema
Example Response
[
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.948Z",
"updatedAt": "2026-03-30T17:16:46.949Z"
}
]
/v1/orders/{orderId}/items
Add items to an order
Path Parameters
Request Body
Array of items to add to the order
Example Request
[
{
"quantity": 1
}
]
Response Schema
Example Response
[
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.949Z",
"updatedAt": "2026-03-30T17:16:46.949Z"
}
]
/v1/order-items/search
Search order items
Search order items with filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/orders/items/{itemId}
Update an order item
Path Parameters
Request Body
Fields to update on the order item
Example Request
{
"quantity": 1
}
Response Schema
Example Response
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.949Z",
"updatedAt": "2026-03-30T17:16:46.949Z"
}
/v1/orders/{orderId}/items/batch
Batch update order items
Path Parameters
Request Body
Array of item updates with item IDs and changes
Example Request
[
{
"itemId": "string",
"changes": {
"quantity": 1
}
}
]
Response Schema
Example Response
[
{
"orderId": "string",
"quantity": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.949Z",
"updatedAt": "2026-03-30T17:16:46.949Z"
}
]
/v1/orders/items/{itemId}
Delete an order item
Path Parameters
Response Schema
Example Response
{
"id": "string"
}
/v1/part-material-assignments
Get all part material assignments
List all material assignments to parts for filament channel mapping
Query Parameters
Response Schema
/v1/parts
Get all parts
List all parts in your store
Query Parameters
Response Schema
/v1/parts/{id}
Get part by ID
Get a single part by ID
Path Parameters
Response Schema
Example Response
{
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"fileHashes": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.950Z",
"updatedAt": "2026-03-30T17:16:46.950Z"
}
/v1/parts/{partId}/metadata
Get part metadata
Path Parameters
Response Schema
/v1/parts
Create a new part
Upload a new 3D model file. Supports STL, 3MF, STEP, GCODE, and OpenSCAD formats. After upload, metadata is automatically extracted from the file.
Request Body
Part data including file URIs and optional material assignments
Example Request
{
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"assignedMaterials": {}
}
Response Schema
Example Response
{
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"fileHashes": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.950Z",
"updatedAt": "2026-03-30T17:16:46.950Z"
}
/v1/parts/create-skus
Create SKUs from parts
Create SKU products from selected parts. Each part becomes a new SKU with the part linked to it.
Request Body
Array of part-to-SKU mappings with custom names
Example Request
[
{
"partId": "string",
"skuName": "string"
}
]
Response Schema
Example Response
[
{
"sku": "string",
"title": "string",
"description": "string",
"totalCogs": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.951Z",
"updatedAt": "2026-03-30T17:16:46.951Z"
}
]
/v1/part-material-assignments/search
Search part material assignments
Search part material assignments with filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/parts/search
Search parts
Search parts with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/parts/{id}/split-plates
Split multi-plate 3MF file
Split a multi-plate GCODE3MF file into separate files for each plate. Useful for sending individual plates to different printers.
Path Parameters
Response Schema
Example Response
{
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"fileHashes": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.951Z",
"updatedAt": "2026-03-30T17:16:46.951Z"
}
/v1/parts/{partId}/estimate
Trigger part estimation
Path Parameters
Response Schema
Example Response
{
"message": "string"
}
/v1/parts
Bulk update parts
Update the same fields on multiple parts at once
Request Body
Part IDs and shared update data
Example Request
{
"ids": [
"string"
],
"update": {
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"assignedMaterials": {}
}
}
Response Schema
Example Response
[
{
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"fileHashes": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.952Z",
"updatedAt": "2026-03-30T17:16:46.952Z"
}
]
/v1/parts/{id}
Update a part
Update part properties like name, description, or material assignments
Path Parameters
Request Body
Fields to update
Example Request
{
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"assignedMaterials": {}
}
Response Schema
Example Response
{
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"fileHashes": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.952Z",
"updatedAt": "2026-03-30T17:16:46.952Z"
}
/v1/parts/{id}
Delete a part
Delete a single part and its associated files
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/parts
Delete multiple parts
Delete multiple parts and their associated files
Request Body
Array of part IDs to delete
Example Request
[ "string" ]
Response Schema
Example Response
[ "string" ]
/v1/part-builds/{id}
Get a specific part build by ID
Path Parameters
Response Schema
Example Response
{
"partCopy": {
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"fileHashes": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "string",
"updatedAt": "string"
},
"requiredPrinterTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"quantity": 0,
"parameterOverrides": [
{
"name": "string"
}
],
"dismissed": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.957Z",
"updatedAt": "2026-03-30T17:16:46.957Z",
"steps": [
{
"partBuildId": "string",
"order": 0,
"inputFiles": [
"string"
],
"outputFiles": [
"string"
],
"logs": [
"string"
],
"requiresAssignedPrinter": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.957Z",
"updatedAt": "2026-03-30T17:16:46.957Z"
}
],
"printJobs": [
{
"partBuildId": "string",
"quantityIndex": 1,
"quantityTotal": 1,
"filesToPrint": [
"string"
],
"isGcodeCached": true,
"partName": "string",
"parameterOverrides": [
{
"name": "string"
}
],
"label": "string",
"queueOrder": 0,
"requiredPrinterTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"taskId": 1,
"hidden": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.957Z",
"updatedAt": "2026-03-30T17:16:46.957Z"
}
]
}
/v1/part-build-steps/{id}
Get a specific part build step by ID
Path Parameters
Response Schema
Example Response
{
"partBuildId": "string",
"order": 0,
"inputFiles": [
"string"
],
"outputFiles": [
"string"
],
"logs": [
"string"
],
"requiresAssignedPrinter": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.957Z",
"updatedAt": "2026-03-30T17:16:46.957Z"
}
/v1/part-build-steps
Get all part build steps
List all part build steps in your store
Query Parameters
Response Schema
/v1/part-builds
Get all part builds for a store
Query Parameters
Response Schema
/v1/part-build-steps/search
Search part build steps
Search part build steps with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/part-builds/search
Search part builds
Search part builds with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/passkeys/authentication/options
Get passkey authentication options
Get authentication options for passkey sign-in (public, no auth required)
Response Schema
Example Response
{
"options": {}
}
/v1/passkeys/registration/options
Get passkey registration options
Get registration options to create a new passkey
Response Schema
Example Response
{
"options": {}
}
/v1/passkeys
List passkeys
List all passkeys registered by the current user
Response Schema
Example Response
[
{
"id": "string",
"credentialDeviceType": "string",
"credentialBackedUp": true,
"createdAt": "string"
}
]
/v1/passkeys/signup/begin
Begin passkey signup
Begin passkey-first signup — generates registration options for a new user
Request Body
Example Request
{
"email": "string"
}
Response Schema
Example Response
{
"options": {}
}
/v1/passkeys/signup/complete
Complete passkey signup
Complete passkey-first signup — verifies credential, creates user, returns token
Request Body
Example Request
{
"email": "string",
"credential": {},
"name": "string",
"displayName": "string",
"organizationName": "string",
"termsAccepted": true,
"recaptchaToken": "string"
}
Response Schema
Example Response
{
"verified": true,
"firebaseCustomToken": "string",
"stores": [
{
"id": "string",
"name": "string"
}
]
}
/v1/passkeys/authentication/verify
Verify passkey authentication
Verify passkey authentication and return a Firebase custom token (public, no auth required)
Request Body
Example Request
{
"credential": {}
}
Response Schema
Example Response
{
"verified": true,
"firebaseCustomToken": "string"
}
/v1/passkeys/registration/verify
Verify passkey registration
Verify and store a newly created passkey credential
Request Body
Example Request
{
"credential": {},
"name": "string"
}
Response Schema
Example Response
{
"verified": true,
"credentialId": "string"
}
/v1/passkeys/{id}
Rename a passkey
Rename a passkey
Path Parameters
Request Body
Example Request
{
"name": "string"
}
/v1/passkeys/{id}
Delete a passkey
Delete a passkey
Path Parameters
/v1/permissions
Get all permissions
List all permissions in your store
Query Parameters
Response Schema
/v1/permissions/types
List permission types
List all available permission types
Response Schema
Example Response
[]
/v1/permissions/search
Search permissions
Search permissions with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/print-jobs
Get all print jobs
List all print jobs including queued, printing, and completed jobs
Query Parameters
Response Schema
/v1/print-jobs/stats/completed-count
Get completed job count
Get total number of completed print jobs
Response Schema
Example Response
1
/v1/print-jobs/{id}/matching-details
Get job matching details
Get details about why a job is or isn't matching to printers
Path Parameters
Response Schema
/v1/print-jobs/{id}/matching-troubleshoot
Get job matching troubleshooting details
Get troubleshooting details for why a job is or isn't matching to each printer
Path Parameters
Response Schema
/v1/print-jobs/{id}
Get print job
Get a single print job by ID
Path Parameters
Response Schema
Example Response
{
"partBuildId": "string",
"quantityIndex": 1,
"quantityTotal": 1,
"filesToPrint": [
"string"
],
"isGcodeCached": true,
"partName": "string",
"parameterOverrides": [
{
"name": "string"
}
],
"label": "string",
"queueOrder": 0,
"requiredPrinterTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"taskId": 1,
"hidden": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.959Z",
"updatedAt": "2026-03-30T17:16:46.959Z"
}
/v1/print-jobs/search
Search print jobs
Search print jobs with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/print-jobs/bulk-reorder
Bulk reorder jobs
Reorder multiple jobs at once
Request Body
Array of job IDs with their new positions
Example Request
{
"updates": [
{
"id": "string",
"newQueueOrder": 0,
"priority": 1
}
]
}
/v1/print-jobs/cancel
Cancel print jobs
Cancel job(s) that are queued or in progress. If in progress (printing), also sends the printer(s) a stop/cancel command.
Request Body
IDs of jobs to cancel
Example Request
{
"printJobIds": [
"string"
]
}
Response Schema
Example Response
[ "string" ]
/v1/print-jobs/clear
Clear finished jobs
Remove completed or cancelled jobs from the queue
Request Body
IDs of jobs to clear
Example Request
{
"printJobIds": [
"string"
]
}
Response Schema
Example Response
[ "string" ]
/v1/print-jobs/pause
Pause print jobs
Send printer a command to pause the job
Request Body
IDs of jobs to pause
Example Request
{
"printJobIds": [
"string"
]
}
Response Schema
Example Response
[ "string" ]
/v1/print-jobs/move-to-queue-front
Prioritize jobs
Move jobs to the front of the queue for priority printing
Request Body
IDs of jobs to prioritize
Example Request
{
"printJobIds": [
"string"
]
}
Response Schema
Example Response
[ "string" ]
/v1/print-jobs/{id}/reorder
Reorder a job
Change a job's position in the print queue
Path Parameters
Request Body
New queue position and priority
Example Request
{
"newQueueOrder": 0,
"priority": 1
}
/v1/print-jobs/resume
Resume paused jobs
Send printer a command to resume a paused job
Request Body
IDs of jobs to resume
Example Request
{
"printJobIds": [
"string"
]
}
Response Schema
Example Response
[ "string" ]
/v1/print-jobs/retry
Retry failed jobs
Retry cancelled or failed jobs by resetting them to queued status
Request Body
IDs of jobs to retry
Example Request
{
"printJobIds": [
"string"
]
}
Response Schema
Example Response
[ "string" ]
/v1/print-jobs/{id}
Update print job
Update a print job's properties
Path Parameters
Request Body
Fields to update
Example Request
{
"label": "string",
"requiredPrinterTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"parameterOverrides": [
{
"name": "string"
}
],
"partBuildId": "string",
"quantityIndex": 1,
"quantityTotal": 1,
"filesToPrint": [
"string"
],
"partName": "string"
}
Response Schema
Example Response
{
"partBuildId": "string",
"quantityIndex": 1,
"quantityTotal": 1,
"filesToPrint": [
"string"
],
"isGcodeCached": true,
"partName": "string",
"parameterOverrides": [
{
"name": "string"
}
],
"label": "string",
"queueOrder": 0,
"requiredPrinterTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"taskId": 1,
"hidden": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.960Z",
"updatedAt": "2026-03-30T17:16:46.960Z"
}
/v1/printers
Get all printers
List all printers connected to your store
Query Parameters
Response Schema
/v1/printers/{id}
Get printer by ID
Get a single printer by ID
Path Parameters
Response Schema
Example Response
{
"name": "string",
"nozzleDiameter": "string",
"enabled": true,
"tags": [
"string"
],
"confirmedReady": true,
"isAvailable": true,
"isOnline": true,
"continuousPrint": true,
"lifetimePrintHours": 1,
"lifetimeJobCount": 1,
"isInMaintenance": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.961Z",
"updatedAt": "2026-03-30T17:16:46.961Z"
}
/v1/printers/search
Search printers
Search printers with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/printer-commands/send
Send command to printers
Request Body
Printer IDs and command to send
Example Request
{
"ids": [
"string"
]
}
Response Schema
Example Response
[ "string" ]
/v1/printers
Bulk update printers
Update the same fields on multiple printers
Request Body
Printer IDs and shared update data
Example Request
{
"ids": [
"string"
],
"update": {
"name": "string",
"tags": [
"string"
],
"nozzleDiameter": "string",
"enabled": true
}
}
Response Schema
Example Response
[
{
"name": "string",
"nozzleDiameter": "string",
"enabled": true,
"tags": [
"string"
],
"confirmedReady": true,
"isAvailable": true,
"isOnline": true,
"continuousPrint": true,
"lifetimePrintHours": 1,
"lifetimeJobCount": 1,
"isInMaintenance": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.961Z",
"updatedAt": "2026-03-30T17:16:46.961Z"
}
]
/v1/printers/confirm-ready
Confirm printer ready
Mark printers as ready or not ready to receive jobs
Request Body
Printer IDs and ready status
Example Request
{
"ready": true,
"ids": [
"string"
]
}
Response Schema
Example Response
[
{
"name": "string",
"nozzleDiameter": "string",
"enabled": true,
"tags": [
"string"
],
"confirmedReady": true,
"isAvailable": true,
"isOnline": true,
"continuousPrint": true,
"lifetimePrintHours": 1,
"lifetimeJobCount": 1,
"isInMaintenance": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.961Z",
"updatedAt": "2026-03-30T17:16:46.961Z"
}
]
/v1/printers/multi
Multi-update printers
Update different fields on each printer in a single request
Request Body
Array of individual printer updates
Example Request
[
{
"name": "string",
"tags": [
"string"
],
"nozzleDiameter": "string",
"enabled": true,
"id": "string"
}
]
/v1/printers/{id}/rename
Rename a printer
Change a printer's display name
Path Parameters
Request Body
New name for the printer
Example Request
{
"name": "string"
}
Response Schema
Example Response
{
"name": "string",
"nozzleDiameter": "string",
"enabled": true,
"tags": [
"string"
],
"confirmedReady": true,
"isAvailable": true,
"isOnline": true,
"continuousPrint": true,
"lifetimePrintHours": 1,
"lifetimeJobCount": 1,
"isInMaintenance": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.961Z",
"updatedAt": "2026-03-30T17:16:46.961Z"
}
/v1/printers/continous-print
Set Fabmatic
Enable or disable Fabmatic (continuous printing) for printers
Request Body
Printer IDs, enabled status, and optional job limit
Example Request
{
"enabled": true,
"ids": [
"string"
]
}
Response Schema
Example Response
[
{
"name": "string",
"nozzleDiameter": "string",
"enabled": true,
"tags": [
"string"
],
"confirmedReady": true,
"isAvailable": true,
"isOnline": true,
"continuousPrint": true,
"lifetimePrintHours": 1,
"lifetimeJobCount": 1,
"isInMaintenance": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.962Z",
"updatedAt": "2026-03-30T17:16:46.962Z"
}
]
/v1/printers/enabled
Set printer enabled status
Enable or disable printers for automatic job assignment
Request Body
Printer IDs and enabled status
Example Request
{
"enabled": true,
"ids": [
"string"
]
}
Response Schema
Example Response
[
{
"name": "string",
"nozzleDiameter": "string",
"enabled": true,
"tags": [
"string"
],
"confirmedReady": true,
"isAvailable": true,
"isOnline": true,
"continuousPrint": true,
"lifetimePrintHours": 1,
"lifetimeJobCount": 1,
"isInMaintenance": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.962Z",
"updatedAt": "2026-03-30T17:16:46.962Z"
}
]
/v1/printers/set-config
Set provider config
Configure printer provider settings (e.g., Bambu Lab cloud connection)
Request Body
Provider configuration for selected printers
Example Request
{
"printerIds": [
"string"
],
"providerConfig": {
"use_ams": true,
"do_bed_leveling": true,
"do_flow_cali": true,
"enable_timelapse": true
}
}
Response Schema
Example Response
[
{
"name": "string",
"nozzleDiameter": "string",
"enabled": true,
"tags": [
"string"
],
"confirmedReady": true,
"isAvailable": true,
"isOnline": true,
"continuousPrint": true,
"lifetimePrintHours": 1,
"lifetimeJobCount": 1,
"isInMaintenance": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.962Z",
"updatedAt": "2026-03-30T17:16:46.962Z"
}
]
/v1/printers/{id}
Update a printer
Update a printer's properties
Path Parameters
Request Body
Fields to update
Example Request
{
"name": "string",
"tags": [
"string"
],
"nozzleDiameter": "string",
"enabled": true
}
Response Schema
Example Response
{
"name": "string",
"nozzleDiameter": "string",
"enabled": true,
"tags": [
"string"
],
"confirmedReady": true,
"isAvailable": true,
"isOnline": true,
"continuousPrint": true,
"lifetimePrintHours": 1,
"lifetimeJobCount": 1,
"isInMaintenance": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.962Z",
"updatedAt": "2026-03-30T17:16:46.962Z"
}
/v1/printers/{id}
Delete a printer
Remove a printer from your store
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/printers
Delete multiple printers
Remove multiple printers from your store
Request Body
Printer IDs to delete
Example Request
{
"ids": [
"string"
]
}
Response Schema
Example Response
[ "string" ]
/v1/materials/printer-slots
Get all printer slots
List all printer filament slot configurations
Response Schema
Example Response
[
{
"printerId": "string",
"amsIndex": 1,
"slotIndex": 1,
"slot": -64,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.962Z",
"updatedAt": "2026-03-30T17:16:46.962Z"
}
]
/v1/printer-slots
Get all printer slots
List all printer filament slot configurations (external spool slots and AMS slots)
Query Parameters
Response Schema
/v1/printer-slots/search
Search printer slots
Search printer slots with filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/materials/printer-slots/assign
Assign to printer slots
Assign materials to printer filament slots (AMS slots)
Request Body
Printer IDs, visual slot positions, and material to assign
/v2/builds
Create and queue prints
Create prints containing parts and/or SKUs. You can issue prints by specifying individual parts and/or complete SKUs (products). Each part or SKU can be customized with specific quantities, parameters, materials, and other configuration options.
Request Body
- Build configuration specifying parts and SKUs to include
Example Request
{
"parts": [
{
"partId": "string",
"quantity": 0,
"parameters": {},
"label": "string",
"tags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"plateQuantities": {}
}
],
"skus": []
}
Response Schema
Example Response
{
"partBuilds": [
{
"partCopy": {
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"fileHashes": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "string",
"updatedAt": "string"
},
"requiredPrinterTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"quantity": 0,
"parameterOverrides": [
{
"name": "string"
}
],
"dismissed": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.964Z",
"updatedAt": "2026-03-30T17:16:46.964Z"
}
],
"skuBuilds": [
{
"skuCopy": {
"sku": "string",
"title": "string",
"description": "string",
"totalCogs": 1,
"id": "string",
"storeId": "string",
"createdAt": "string",
"updatedAt": "string"
},
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.964Z",
"updatedAt": "2026-03-30T17:16:46.964Z"
}
]
}
/v2/builds/preview
Preview part builds and jobs (dry run)
Preview builds and jobs that would be created without queueing anything.
Request Body
- Build configuration specifying parts and SKUs to preview
Example Request
{
"parts": [
{
"partId": "string",
"quantity": 0,
"parameters": {},
"label": "string",
"tags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"plateQuantities": {}
}
],
"skus": []
}
Response Schema
Example Response
{
"partBuilds": [
{
"partId": "string",
"partName": "string",
"label": "string",
"quantity": 1,
"jobs": [
{
"label": "string",
"quantityIndex": 1,
"quantityTotal": 1
}
]
}
],
"summary": {
"partBuildCount": 1,
"skuBuildCount": 1,
"jobCount": 1
}
}
/v1/profiles/{id}
Get a specific profile
Path Parameters
Response Schema
Example Response
{
"id": "string",
"name": "string",
"inherits": "string",
"compatibilityList": "string",
"data": {},
"metadata": {},
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.966Z",
"createdAt": "2026-03-30T17:16:46.966Z"
}
/v1/profiles/printer-models
Get all available printer models
Response Schema
Example Response
[
{
"id": 1,
"vendorId": 1,
"name": "string",
"nozzleDiameters": [
"string"
]
}
]
/v1/profiles
Get all slicer profiles
Query Parameters
Response Schema
/v1/profiles/slicer-versions
Get available slicer versions
Response Schema
Example Response
[
{
"version": "string"
}
]
/v1/profiles/{id}/versions
Get available slicer versions for a profile
Path Parameters
Response Schema
Example Response
[
{
"version": "string"
}
]
/v1/profiles/{id}/full
Get full profile data with optional slicer version
Path Parameters
Query Parameters
Response Schema
Example Response
{}
/v1/profiles/my-printer-models
Get printer models used in your store
Response Schema
Example Response
[
{
"id": 1,
"vendorId": 1,
"name": "string",
"nozzleDiameters": [
"string"
]
}
]
/v1/profiles/{id}/view
Get profile with inheritance details
Path Parameters
Query Parameters
Response Schema
Example Response
{
"merged": {},
"ownKeys": [
"string"
],
"inheritedKeys": [
"string"
]
}
/v1/profiles/compatible/{machineModel}/{nozzleDiameter}
Get profiles by machine model and nozzle size
Path Parameters
Response Schema
Example Response
{
"machine": {
"system": [
{
"id": 1,
"vendorId": 1,
"name": "string",
"shown": true,
"compatibilityList": "string",
"data": {}
}
],
"user": [
{
"id": "string",
"name": "string",
"inherits": "string",
"compatibilityList": "string",
"data": {},
"metadata": {},
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.971Z",
"createdAt": "2026-03-30T17:16:46.971Z"
}
]
},
"filament": {
"system": [
{
"id": 1,
"vendorId": 1,
"name": "string",
"shown": true,
"compatibilityList": "string",
"data": {}
}
],
"user": [
{
"id": "string",
"name": "string",
"inherits": "string",
"compatibilityList": "string",
"data": {},
"metadata": {},
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.971Z",
"createdAt": "2026-03-30T17:16:46.971Z"
}
]
},
"process": {
"system": [
{
"id": 1,
"vendorId": 1,
"name": "string",
"shown": true,
"compatibilityList": "string",
"data": {}
}
],
"user": [
{
"id": "string",
"name": "string",
"inherits": "string",
"compatibilityList": "string",
"data": {},
"metadata": {},
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.971Z",
"createdAt": "2026-03-30T17:16:46.971Z"
}
]
}
}
/v1/profiles/compatible/{id}
Get profiles compatible with a printer
Path Parameters
Response Schema
Example Response
{
"machine": {
"system": [
{
"id": 1,
"vendorId": 1,
"name": "string",
"shown": true,
"compatibilityList": "string",
"data": {}
}
],
"user": [
{
"id": "string",
"name": "string",
"inherits": "string",
"compatibilityList": "string",
"data": {},
"metadata": {},
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.972Z",
"createdAt": "2026-03-30T17:16:46.972Z"
}
]
},
"filament": {
"system": [
{
"id": 1,
"vendorId": 1,
"name": "string",
"shown": true,
"compatibilityList": "string",
"data": {}
}
],
"user": [
{
"id": "string",
"name": "string",
"inherits": "string",
"compatibilityList": "string",
"data": {},
"metadata": {},
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.972Z",
"createdAt": "2026-03-30T17:16:46.972Z"
}
]
},
"process": {
"system": [
{
"id": 1,
"vendorId": 1,
"name": "string",
"shown": true,
"compatibilityList": "string",
"data": {}
}
],
"user": [
{
"id": "string",
"name": "string",
"inherits": "string",
"compatibilityList": "string",
"data": {},
"metadata": {},
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.972Z",
"createdAt": "2026-03-30T17:16:46.972Z"
}
]
}
}
/v1/profiles/supported
Get supported printer models
Response Schema
Example Response
[
{
"name": "string",
"nozzleDiameter": [
"string"
]
}
]
/v1/profiles
Create a new profile
Request Body
- Profile data
Example Request
{
"name": "string",
"data": {},
"inherits": "string",
"compatibilityList": "string",
"metadata": {}
}
Response Schema
Example Response
{
"id": "string",
"name": "string",
"inherits": "string",
"compatibilityList": "string",
"data": {},
"metadata": {},
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.972Z",
"createdAt": "2026-03-30T17:16:46.972Z"
}
/v1/profiles/import-data
Import pre-parsed profiles
Request Body
- Pre-parsed profile data and import options
Example Request
{
"profiles": [
{
"name": "string",
"data": {},
"inherits": "string",
"compatiblePrinters": [
"string"
],
"filamentType": "string",
"filamentVendor": "string",
"color": "string"
}
],
"createMaterials": true,
"overwriteExisting": true,
"materialIdentifiers": [
"string"
],
"filamentProfilesForMaterials": [
{
"name": "string",
"data": {},
"inherits": "string",
"compatiblePrinters": [
"string"
],
"filamentType": "string",
"filamentVendor": "string",
"color": "string"
}
]
}
Response Schema
Example Response
{
"profiles": {
"created": [
"string"
],
"updated": [
"string"
],
"skipped": [
"string"
]
},
"materials": {
"created": [
"string"
]
}
}
/v1/profiles/import
Import profiles from a file
Response Schema
Example Response
{
"profiles": {
"created": [
"string"
],
"updated": [
"string"
],
"skipped": [
"string"
]
},
"materials": {
"created": [
"string"
]
}
}
/v1/profiles/preview
Preview profiles from a file
Response Schema
Example Response
{
"profiles": {
"machine": [
{
"name": "string",
"inherits": "string",
"filamentType": "string",
"filamentVendor": "string",
"color": "string",
"existsInStore": true
}
],
"filament": [
{
"name": "string",
"inherits": "string",
"filamentType": "string",
"filamentVendor": "string",
"color": "string",
"existsInStore": true
}
],
"process": [
{
"name": "string",
"inherits": "string",
"filamentType": "string",
"filamentVendor": "string",
"color": "string",
"existsInStore": true
}
]
},
"totalCount": 1
}
/v1/profiles/search
Search profiles
Search profiles with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/profiles/{id}
Update a profile
Path Parameters
Request Body
- Profile update data
Example Request
{
"name": "string",
"data": {},
"inherits": "string"
}
Response Schema
Example Response
{
"id": "string",
"name": "string",
"inherits": "string",
"compatibilityList": "string",
"data": {},
"metadata": {},
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.973Z",
"createdAt": "2026-03-30T17:16:46.973Z"
}
/v1/profiles/{id}
Delete a profile
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/profiles
Delete multiple profiles
Request Body
- Array of profile IDs to delete
Example Request
[ "string" ]
Response Schema
Example Response
[ "string" ]
/v1/settings/slicers
Get available slicer versions
Response Schema
Example Response
{
"slicerVersions": [
{
"id": "string",
"version": "string",
"order": 1,
"latest": true,
"default": true
}
]
}
/v1/settings/store
Get store settings
Response Schema
Example Response
{
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.973Z",
"updatedAt": "2026-03-30T17:16:46.973Z",
"processLowPriorityJobs": true
}
/v1/settings/user
Get user settings
Response Schema
Example Response
{}
/v1/settings/notifications/search
Search notification settings
Request Body
Search query with filters
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/settings/store/search
Search store settings
Request Body
Search query with filters
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/settings/store
Update store settings
Request Body
Settings to update
Example Request
{
"processLowPriorityJobs": true,
"experimentalFeatures": {
"financial-tracking": true
}
}
Response Schema
Example Response
{
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.974Z",
"updatedAt": "2026-03-30T17:16:46.974Z",
"processLowPriorityJobs": true
}
/v1/settings/user
Update user settings
Request Body
Settings to update
Example Request
{}
Response Schema
Example Response
{}
/v1/integrations/shopify/{integrationId}/settings
Get Shopify settings
Get Shopify integration settings
Path Parameters
Response Schema
Example Response
{
"autoPrint": true,
"writeProgressTags": true,
"tagWhenPrinted": "string",
"propertyWhitelist": [
"string"
]
}
/v1/integrations/shopify/{integrationId}/status
Get Shopify status
Get Shopify integration status
Path Parameters
Response Schema
Example Response
{
"connected": true,
"shop": "string",
"connectedAt": "2026-03-30T17:16:46.974Z",
"lastSyncedAt": "2026-03-30T17:16:46.974Z"
}
/v1/integrations/shopify
List Shopify integrations
List all connected Shopify stores for a store
Response Schema
Example Response
[
{
"integrationId": "string",
"shop": "string",
"shopName": "string",
"connectedAt": "2026-03-30T17:16:46.974Z"
}
]
/v1/integrations/shopify/{integrationId}/disconnect
Disconnect Shopify
Disconnect Shopify integration
Path Parameters
Response Schema
Example Response
{
"message": "string"
}
/v1/integrations/shopify/orders/{orderId}/retry-variant-enrichment
Retry variant enrichment
Retry fetching variant options from Shopify for order items that failed during initial webhook processing.
Path Parameters
Response Schema
Example Response
{
"updated": 1,
"failed": 1
}
/v1/integrations/shopify/{integrationId}/settings
Update Shopify settings
Update Shopify integration settings
Path Parameters
Request Body
Settings to update
Example Request
{
"autoPrint": true,
"writeProgressTags": true,
"tagWhenPrinted": "string",
"propertyWhitelist": [
"string"
]
}
Response Schema
Example Response
{
"autoPrint": true,
"writeProgressTags": true,
"tagWhenPrinted": "string",
"propertyWhitelist": [
"string"
]
}
/v1/skus/{id}
Get a specific SKU
Path Parameters
Response Schema
Example Response
{
"sku": "string",
"title": "string",
"description": "string",
"totalCogs": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.975Z",
"updatedAt": "2026-03-30T17:16:46.975Z",
"linkedParts": [
{
"skuId": "string",
"partId": "string",
"parameters": [
{
"name": "string"
}
],
"quantity": 0,
"label": "string",
"exposedParameters": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.975Z",
"updatedAt": "2026-03-30T17:16:46.975Z",
"part": {
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"fileHashes": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.975Z",
"updatedAt": "2026-03-30T17:16:46.975Z"
}
}
]
}
/v1/skus
List all SKUs
Query Parameters
Response Schema
/v1/skus
Create a new SKU
Request Body
The SKU data including name, price, and linked parts
Example Request
{
"linkedParts": [
{
"skuId": "string",
"parameters": [
{
"name": "string"
}
],
"partId": "string",
"quantity": 0,
"label": "string",
"exposedParameters": [
"string"
]
}
],
"inputs": [
{
"id": "string",
"name": "string"
}
],
"optionBindings": [
"string"
],
"description": "string",
"sku": "string",
"title": "string"
}
Response Schema
Example Response
{
"sku": "string",
"title": "string",
"description": "string",
"totalCogs": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.975Z",
"updatedAt": "2026-03-30T17:16:46.975Z",
"linkedParts": [
{
"skuId": "string",
"partId": "string",
"parameters": [
{
"name": "string"
}
],
"quantity": 0,
"label": "string",
"exposedParameters": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.975Z",
"updatedAt": "2026-03-30T17:16:46.975Z"
}
]
}
/v1/skus/delete-many
Delete multiple SKUs
Request Body
Array of SKU identifiers to delete
Example Request
[ "string" ]
Response Schema
Example Response
[ "string" ]
/v1/skus/search
Search SKUs
Search SKUs with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/skus/{id}
Update a SKU
Path Parameters
Request Body
The partial SKU data to update
Example Request
{
"linkedParts": [
{
"skuId": "string",
"parameters": [
{
"name": "string"
}
],
"partId": "string",
"quantity": 0,
"label": "string",
"exposedParameters": [
"string"
]
}
],
"inputs": [
{
"id": "string",
"name": "string"
}
],
"optionBindings": [
"string"
],
"description": "string",
"sku": "string",
"title": "string"
}
Response Schema
Example Response
{
"sku": "string",
"title": "string",
"description": "string",
"totalCogs": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.976Z",
"updatedAt": "2026-03-30T17:16:46.976Z"
}
/v1/skus/{id}
Delete a SKU
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/sku-builds/{id}
Get a specific SKU build by ID
Path Parameters
Response Schema
Example Response
{
"skuCopy": {
"sku": "string",
"title": "string",
"description": "string",
"totalCogs": 1,
"id": "string",
"storeId": "string",
"createdAt": "string",
"updatedAt": "string"
},
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.977Z",
"updatedAt": "2026-03-30T17:16:46.977Z",
"partBuilds": [
{
"partCopy": {
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"fileHashes": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "string",
"updatedAt": "string"
},
"requiredPrinterTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"quantity": 0,
"parameterOverrides": [
{
"name": "string"
}
],
"dismissed": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.977Z",
"updatedAt": "2026-03-30T17:16:46.977Z",
"printJobs": [
{
"partBuildId": "string",
"quantityIndex": 1,
"quantityTotal": 1,
"filesToPrint": [
"string"
],
"isGcodeCached": true,
"partName": "string",
"parameterOverrides": [
{
"name": "string"
}
],
"label": "string",
"queueOrder": 0,
"requiredPrinterTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"taskId": 1,
"hidden": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.977Z",
"updatedAt": "2026-03-30T17:16:46.977Z"
}
],
"steps": [
{
"partBuildId": "string",
"order": 0,
"inputFiles": [
"string"
],
"outputFiles": [
"string"
],
"logs": [
"string"
],
"requiresAssignedPrinter": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.977Z",
"updatedAt": "2026-03-30T17:16:46.977Z"
}
]
}
]
}
/v1/sku-builds
Get all SKU builds for a store
Query Parameters
Response Schema
/v1/sku-builds/search
Search SKU builds
Search SKU builds with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/sku-costs/{id}
Get a specific SKU cost by ID
Path Parameters
Response Schema
Example Response
{
"id": "string",
"skuId": "string",
"costComponentId": "string",
"quantity": 1,
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.977Z",
"updatedAt": "2026-03-30T17:16:46.977Z"
}
/v1/sku-costs/by-sku/{skuId}
Get all costs for a specific SKU
Path Parameters
Response Schema
Example Response
[
{
"component": {
"id": "string",
"name": "string",
"unit": "string",
"rate": 1,
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.977Z",
"updatedAt": "2026-03-30T17:16:46.977Z"
},
"id": "string",
"skuId": "string",
"costComponentId": "string",
"quantity": 1,
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.977Z",
"updatedAt": "2026-03-30T17:16:46.977Z"
}
]
/v1/sku-costs
Get all SKU costs for a store
Query Parameters
Response Schema
/v1/sku-costs/breakdown/{skuId}
Get cost breakdown for a specific SKU
Path Parameters
Response Schema
Example Response
{
"materials": 1,
"labor": 1,
"overhead": 1,
"total": 1
}
/v1/sku-costs
Create a new SKU cost
Request Body
- SKU cost data
Example Request
{
"skuId": "string",
"costComponentId": "string",
"id": "string",
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.977Z",
"createdAt": "2026-03-30T17:16:46.977Z",
"quantity": 1
}
Response Schema
Example Response
{
"id": "string",
"skuId": "string",
"costComponentId": "string",
"quantity": 1,
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.977Z",
"updatedAt": "2026-03-30T17:16:46.977Z"
}
/v1/sku-costs/search
Search SKU costs
Search SKU costs with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/sku-costs/{id}
Update a SKU cost
Path Parameters
Request Body
- Updated SKU cost data
Example Request
{
"skuId": "string",
"costComponentId": "string",
"id": "string",
"storeId": "string",
"updatedAt": "2026-03-30T17:16:46.978Z",
"createdAt": "2026-03-30T17:16:46.978Z",
"quantity": 1
}
Response Schema
Example Response
{
"id": "string",
"skuId": "string",
"costComponentId": "string",
"quantity": 1,
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
/v1/sku-costs/{id}
Delete a SKU cost
Path Parameters
Response Schema
Example Response
{
"success": true
}
/v1/sku-costs/by-sku/{skuId}
Delete all costs for a specific SKU
Path Parameters
Response Schema
Example Response
{
"success": true
}
/v1/sku-variants/prop-values/{id}
Get a specific property value by ID
Path Parameters
Response Schema
Example Response
{
"propertyId": "string",
"optionValueId": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
/v1/sku-variants/{id}
Get a specific SKU variant by ID
Path Parameters
Response Schema
Example Response
{
"name": "string",
"isPersonalization": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
/v1/sku-variants/bindings/{id}
Get a specific variant binding by ID
Path Parameters
Response Schema
Example Response
{
"optionId": "string",
"skuId": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
/v1/sku-variants/props/{id}
Get a specific variant property by ID
Path Parameters
Response Schema
Example Response
{
"optionId": "string",
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
/v1/sku-variants/values/{id}
Get a specific variant value by ID
Path Parameters
Response Schema
Example Response
{
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
/v1/sku-variants/prop-values
Get all property values for a store
Response Schema
Example Response
[
{
"propertyId": "string",
"optionValueId": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
]
/v1/sku-variants
Get all SKU variants for a store
Query Parameters
Response Schema
/v1/sku-variants/filters/{skuId}
Get all value filters for a SKU
Path Parameters
Response Schema
Example Response
[
{
"bindingId": "string",
"skuId": "string",
"optionId": "string",
"optionValueId": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
]
/v1/sku-variants/bindings
Get all variant bindings for a store
Response Schema
Example Response
[
{
"optionId": "string",
"skuId": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
]
/v1/sku-variants/props
Get all variant properties for a store
Response Schema
Example Response
[
{
"optionId": "string",
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
]
/v1/sku-variants/values
Get all variant values for a store
Response Schema
Example Response
[
{
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
]
/v1/sku-variants/filtered-values/{skuId}/{optionId}
Get filtered option values for a SKU
Path Parameters
Response Schema
Example Response
[
{
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
]
/v1/sku-variants/bindings/{id}/properties
Get SKU-specific properties
Path Parameters
Response Schema
Example Response
[
{
"optionId": "string",
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
]
/v1/sku-variants/filters/{skuId}/{optionId}
Get value filters for a SKU and option
Path Parameters
Response Schema
Example Response
[
{
"bindingId": "string",
"skuId": "string",
"optionId": "string",
"optionValueId": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.978Z",
"updatedAt": "2026-03-30T17:16:46.978Z"
}
]
/v1/sku-variants/{groupId}/values
Get variant values for a specific group
Path Parameters
Response Schema
Example Response
[
{
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.979Z",
"updatedAt": "2026-03-30T17:16:46.979Z"
}
]
/v1/sku-variants/sku-match/{skuString}
Match a SKU string with variants
Path Parameters
Response Schema
/v1/sku-variants
Create a new SKU variant
Request Body
- SKU variant data
Example Request
{
"name": "string",
"isPersonalization": true
}
Response Schema
Example Response
{
"name": "string",
"isPersonalization": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.979Z",
"updatedAt": "2026-03-30T17:16:46.983Z"
}
/v1/sku-variants/bindings
Create a new variant binding
Request Body
- Variant binding data
Example Request
{
"optionId": "string",
"skuId": "string"
}
Response Schema
Example Response
{
"optionId": "string",
"skuId": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.983Z",
"updatedAt": "2026-03-30T17:16:46.983Z"
}
/v1/sku-variants/props
Create a new variant property
Request Body
- Variant property data
Example Request
{
"optionId": "string",
"name": "string"
}
Response Schema
Example Response
{
"optionId": "string",
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.983Z",
"updatedAt": "2026-03-30T17:16:46.983Z"
}
/v1/sku-variants/values
Create a new variant value
Request Body
- Variant value data
Example Request
{
"name": "string",
"optionId": "string",
"skuSuffixes": [
"string"
]
}
Response Schema
Example Response
{
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.983Z",
"updatedAt": "2026-03-30T17:16:46.983Z"
}
/v1/sku-variants/prop-values
Create multiple property values
Request Body
- Bulk create request with property values
Example Request
{
"values": [
{
"optionValueId": "string",
"propertyId": "string"
}
]
}
Response Schema
Example Response
[
{
"propertyId": "string",
"optionValueId": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.983Z",
"updatedAt": "2026-03-30T17:16:46.983Z"
}
]
/v1/sku-variants/bindings/reorder
Reorder a variant binding
Request Body
- Reorder request with binding ID and new order
Example Request
{
"bindingId": "string",
"newOrder": 1
}
/v1/sku-variants/props/reorder
Reorder a variant property
Request Body
- Reorder request with property ID and new order
Example Request
{
"propertyId": "string",
"newOrder": 1
}
/v1/sku-variants/values/reorder
Reorder a variant value
Request Body
- Reorder request with value ID and new order
Example Request
{
"optionValueId": "string",
"newOrder": 1
}
/v1/sku-variants/search
Search SKU options
Search SKU options with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/sku-variants/filters
Set filtered values for a SKU option
Request Body
- Filter configuration with SKU, option, and allowed values
Example Request
{
"skuId": "string",
"optionId": "string",
"valueIds": [
"string"
]
}
Response Schema
Example Response
[
{
"bindingId": "string",
"skuId": "string",
"optionId": "string",
"optionValueId": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.984Z",
"updatedAt": "2026-03-30T17:16:46.984Z"
}
]
/v1/sku-variants/{id}
Update a SKU variant
Path Parameters
Request Body
- Updated SKU variant data
Example Request
{
"name": "string"
}
Response Schema
Example Response
{
"name": "string",
"isPersonalization": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.984Z",
"updatedAt": "2026-03-30T17:16:46.984Z"
}
/v1/sku-variants/bindings/{id}
Update a variant binding
Path Parameters
Request Body
- Updated binding data
Example Request
{
"optionId": "string",
"skuId": "string",
"order": 1
}
Response Schema
Example Response
{
"optionId": "string",
"skuId": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.984Z",
"updatedAt": "2026-03-30T17:16:46.984Z"
}
/v1/sku-variants/props/{id}
Update a variant property
Path Parameters
Request Body
- Updated property data
Example Request
{
"name": "string"
}
Response Schema
Example Response
{
"optionId": "string",
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.984Z",
"updatedAt": "2026-03-30T17:16:46.984Z"
}
/v1/sku-variants/values/{id}
Update a variant value
Path Parameters
Request Body
- Updated variant value data
Example Request
{
"name": "string",
"skuSuffixes": [
"string"
]
}
Response Schema
Example Response
{
"name": "string",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.984Z",
"updatedAt": "2026-03-30T17:16:46.984Z"
}
/v1/sku-variants/prop-values
Update multiple property values
Request Body
- Bulk update request with property value updates
Example Request
{
"updates": [
{
"id": "string"
}
]
}
/v1/sku-variants/{id}
Delete a SKU variant
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/sku-variants/bindings/{id}
Delete a variant binding
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/sku-variants/props/{id}
Delete a variant property
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/sku-variants/values/{id}
Delete a variant value
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/sku-variants/prop-values
Delete multiple property values
Request Body
- Bulk delete request with IDs
Example Request
{
"ids": [
"string"
]
}
Response Schema
Example Response
[ "string" ]
/v1/sku-variants/filters/{id}
Remove a value filter
Path Parameters
Response Schema
Example Response
[ "string" ]
/v1/slicer
Get all slicer jobs
List all slicer jobs in your store
Query Parameters
Response Schema
/v1/slicer/search
Search slicer jobs
Search slicer jobs with complex filters
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/stores
Get all stores for current user
Response Schema
Example Response
[
{
"name": "string",
"auditEnabled": true,
"id": "string",
"updatedAt": "2026-03-30T17:16:46.985Z",
"createdAt": "2026-03-30T17:16:46.985Z"
}
]
/v1/stores
Update organization settings
Request Body
The fields to update
Example Request
{
"name": "string"
}
Response Schema
Example Response
{
"name": "string",
"auditEnabled": true,
"id": "string",
"updatedAt": "2026-03-30T17:16:46.985Z",
"createdAt": "2026-03-30T17:16:46.985Z"
}
/v1/addons/{addonType}
Get addon by type with tiers
Path Parameters
Response Schema
/v1/addon-subscriptions/{addonType}
Get addon subscription by type
Path Parameters
Response Schema
/v1/addon-subscriptions
Get all addon subscriptions
Query Parameters
Response Schema
/v1/addons
Get all available addons
Response Schema
Example Response
[
{
"id": "string",
"addonType": "string",
"name": "string",
"requiresCommercial": true,
"isActive": true,
"metadata": {},
"createdAt": "2026-03-30T17:16:46.985Z",
"updatedAt": "2026-03-30T17:16:46.985Z"
}
]
/v1/subscriptions
Get current subscription
Response Schema
Example Response
{
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.986Z",
"updatedAt": "2026-03-30T17:16:46.986Z"
}
/v1/addon-subscriptions/search
Search addon subscriptions
Advanced search for addon subscriptions
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/subscriptions/search
Search subscriptions
Advanced search for subscriptions
Request Body
Example Request
{
"sort": "string",
"limit": 1,
"offset": 0,
"fields": "string",
"include": "string",
"meta": true,
"hints": true
}
Response Schema
Example Response
{
"data": [
{}
],
"meta": {
"total": 1,
"count": 1,
"offset": 1,
"limit": 1,
"hasMore": true,
"executionTime": 1
}
}
/v1/subscriptions/audit-logs
Configure audit logs
Enable or disable audit logging
Request Body
Example Request
{
"enabled": true
}
Response Schema
Example Response
{
"id": "string",
"storeId": "string",
"createdAt": "2026-03-30T17:16:46.986Z",
"updatedAt": "2026-03-30T17:16:46.986Z"
}
/v1/permissions/user/{userId}
GET /v1/permissions/user/{userId}
Path Parameters
Response Schema
Example Response
{
"owner": true,
"permissions": [
{
"userId": "string",
"id": "string"
}
],
"roles": [
"string"
],
"roleNames": [
"string"
],
"effectivePermissions": []
}
/v1/roles
GET /v1/roles
Response Schema
Example Response
[
{
"id": "string",
"name": "string",
"isSystem": true
}
]
/v1/roles/{roleId}/permissions
GET /v1/roles/{roleId}/permissions
Path Parameters
Response Schema
Example Response
[]
/v1/roles/with-permissions
GET /v1/roles/with-permissions
Response Schema
Example Response
[
{
"permissions": [],
"id": "string",
"name": "string",
"isSystem": true
}
]
/v1/users
GET /v1/users
Query Parameters
Response Schema
Example Response
{
"users": [
{
"userId": "string",
"email": "string",
"displayName": "string",
"isOwner": true,
"roles": [
"string"
],
"permissions": [],
"lastActive": "2026-03-30T17:16:46.986Z",
"createdAt": "2026-03-30T17:16:46.986Z",
"invitationId": "string",
"expiresAt": "2026-03-30T17:16:46.986Z",
"invitedByEmail": "string"
}
],
"total": 1
}
/v1/users/{userId}
GET /v1/users/{userId}
Path Parameters
Response Schema
Example Response
{
"activityLog": [
{
"id": "string",
"action": "string",
"timestamp": "2026-03-30T17:16:46.987Z",
"details": "string"
}
],
"userId": "string",
"email": "string",
"displayName": "string",
"isOwner": true,
"roles": [
"string"
],
"permissions": [],
"lastActive": "2026-03-30T17:16:46.987Z",
"createdAt": "2026-03-30T17:16:46.987Z",
"invitationId": "string",
"expiresAt": "2026-03-30T17:16:46.987Z",
"invitedByEmail": "string"
}
/v1/users/{userId}/permissions
POST /v1/users/{userId}/permissions
Path Parameters
Request Body
Example Request
{
"permissions": []
}
Response Schema
Example Response
{
"activityLog": [
{
"id": "string",
"action": "string",
"timestamp": "2026-03-30T17:16:46.987Z",
"details": "string"
}
],
"userId": "string",
"email": "string",
"displayName": "string",
"isOwner": true,
"roles": [
"string"
],
"permissions": [],
"lastActive": "2026-03-30T17:16:46.987Z",
"createdAt": "2026-03-30T17:16:46.987Z",
"invitationId": "string",
"expiresAt": "2026-03-30T17:16:46.987Z",
"invitedByEmail": "string"
}
/v1/users/{userId}/roles
POST /v1/users/{userId}/roles
Path Parameters
Request Body
Example Request
{
"roleId": "string"
}
Response Schema
Example Response
{
"activityLog": [
{
"id": "string",
"action": "string",
"timestamp": "2026-03-30T17:16:46.987Z",
"details": "string"
}
],
"userId": "string",
"email": "string",
"displayName": "string",
"isOwner": true,
"roles": [
"string"
],
"permissions": [],
"lastActive": "2026-03-30T17:16:46.987Z",
"createdAt": "2026-03-30T17:16:46.987Z",
"invitationId": "string",
"expiresAt": "2026-03-30T17:16:46.987Z",
"invitedByEmail": "string"
}
/v1/users/bulk
POST /v1/users/bulk
Request Body
Example Request
{
"userIds": [
"string"
],
"roleId": "string",
"permissions": []
}
Response Schema
Example Response
{
"succeeded": [
"string"
],
"failed": [
{
"userId": "string",
"error": "string"
}
]
}
/v1/users/invite
POST /v1/users/invite
Request Body
Example Request
{
"email": "user@example.com",
"roleId": "string",
"permissions": []
}
Response Schema
Example Response
{
"invitationId": "string",
"email": "string",
"expiresAt": "2026-03-30T17:16:46.987Z"
}
/v1/users/invite/{invitationId}/resend
POST /v1/users/invite/{invitationId}/resend
Path Parameters
Response Schema
Example Response
{
"success": true
}
/v1/users/invite/{invitationId}/revoke
POST /v1/users/invite/{invitationId}/revoke
Path Parameters
Response Schema
Example Response
{
"success": true
}
/v1/users/{userId}/permissions
PUT /v1/users/{userId}/permissions
Path Parameters
Request Body
Example Request
{
"permissions": []
}
Response Schema
Example Response
{
"activityLog": [
{
"id": "string",
"action": "string",
"timestamp": "2026-03-30T17:16:46.987Z",
"details": "string"
}
],
"userId": "string",
"email": "string",
"displayName": "string",
"isOwner": true,
"roles": [
"string"
],
"permissions": [],
"lastActive": "2026-03-30T17:16:46.987Z",
"createdAt": "2026-03-30T17:16:46.987Z",
"invitationId": "string",
"expiresAt": "2026-03-30T17:16:46.987Z",
"invitedByEmail": "string"
}
/v1/users/{userId}/roles
PUT /v1/users/{userId}/roles
Path Parameters
Request Body
Example Request
{
"roleIds": [
"string"
]
}
Response Schema
Example Response
{
"activityLog": [
{
"id": "string",
"action": "string",
"timestamp": "2026-03-30T17:16:46.988Z",
"details": "string"
}
],
"userId": "string",
"email": "string",
"displayName": "string",
"isOwner": true,
"roles": [
"string"
],
"permissions": [],
"lastActive": "2026-03-30T17:16:46.988Z",
"createdAt": "2026-03-30T17:16:46.988Z",
"invitationId": "string",
"expiresAt": "2026-03-30T17:16:46.988Z",
"invitedByEmail": "string"
}
/v1/users/{userId}
DELETE /v1/users/{userId}
Path Parameters
Request Body
Example Request
{
"userId": "string",
"transferOwnershipTo": "string"
}
Response Schema
Example Response
{
"success": true,
"message": "string"
}
/v1/users/{userId}/permissions
DELETE /v1/users/{userId}/permissions
Path Parameters
Request Body
Example Request
{
"permissions": []
}
Response Schema
Example Response
{
"activityLog": [
{
"id": "string",
"action": "string",
"timestamp": "2026-03-30T17:16:46.988Z",
"details": "string"
}
],
"userId": "string",
"email": "string",
"displayName": "string",
"isOwner": true,
"roles": [
"string"
],
"permissions": [],
"lastActive": "2026-03-30T17:16:46.988Z",
"createdAt": "2026-03-30T17:16:46.988Z",
"invitationId": "string",
"expiresAt": "2026-03-30T17:16:46.988Z",
"invitedByEmail": "string"
}
/v1/users/{userId}/roles/{roleId}
DELETE /v1/users/{userId}/roles/{roleId}
Path Parameters
Response Schema
Example Response
{
"activityLog": [
{
"id": "string",
"action": "string",
"timestamp": "2026-03-30T17:16:46.988Z",
"details": "string"
}
],
"userId": "string",
"email": "string",
"displayName": "string",
"isOwner": true,
"roles": [
"string"
],
"permissions": [],
"lastActive": "2026-03-30T17:16:46.988Z",
"createdAt": "2026-03-30T17:16:46.988Z",
"invitationId": "string",
"expiresAt": "2026-03-30T17:16:46.988Z",
"invitedByEmail": "string"
}