API Documentation
Use this API to retrieve and update design approvals.
Authentication
Get your API key from the app settings page. Include this header in all requests:
Authorization: Bearer YOUR_API_KEY
Rate Limits
- All
/api/v1endpoints are limited to 60 requests per minute per API client. POST /api/v1/orders/bulk-statusis additionally limited to 5 requests per minute.
Endpoint Summary
| Method | Endpoint | Description |
|---|---|---|
| POST | /orders/{order}/status | Update an order status. |
| POST | /orders/bulk-status | Queue a bulk status update for up to 50 orders. |
| POST | /orders/{order}/comment | Add a comment to the order. |
| POST | /orders/{order}/due-date | Set a due date on the order, with optional due date range support. |
| GET | /orders/{order} | Retrieve details of a specific order. |
| GET | /orders | Retrieve a paginated list of orders. |
| GET | /statuses | Get all defined statuses for your account. |
| GET | /orders/lookup | Retrieve an order by order number and customer email. |
| GET | /orders/{order}/viable-statuses | Get viable statuses for an order based on its tags, excluding its current status. |
Common Response Codes
| Status | Description |
|---|---|
| 200 | Success. The request was successful. |
| 201 | Created. The resource was successfully created. |
| 202 | Accepted. The request has been accepted for asynchronous processing. |
| 400 | Bad Request. The request was malformed or missing required headers. |
| 404 | Not Found. The requested resource does not exist. |
| 422 | Unprocessable Entity. The request was well-formed but contains invalid data or failed validation. |
| 429 | Too Many Requests. The request was rate limited. Wait before retrying. |
| 500 | Internal Server Error. An unexpected error occurred. |
POST
/orders/{order}/status
Update an order status.
| Name | Type | Required | Description |
|---|---|---|---|
| order | integer | Yes | The ID of the order (passed as a URL parameter). |
| status_code | string | Yes | Code identifying the new status to apply to the order. |
| comment | string | No | An optional comment to be associated with the status change. |
| public | boolean | No | Whether the comment should be visible to the customer. Defaults to false. |
| email_customer | boolean | No | Whether the customer should be notified by email about this status change. Defaults to true. |
| email_additional | boolean | No | Whether to notify additional recipients by email (if configured). Defaults to true. |
Request Example
Response Example
POST
/orders/bulk-status
Queue a bulk status update for up to 50 orders.
| Name | Type | Required | Description |
|---|---|---|---|
| order_ids | array<integer> | Yes | Order IDs to update (1-50). |
| status_code | string | Yes | Code identifying the new status to apply. |
| comment | string | No | Optional comment to associate with each status change. |
| public | boolean | No | Whether the comment should be visible to the customer. Defaults to false. |
| email_customer | boolean | No | Whether customers should receive status emails. Defaults to true. |
| email_additional | boolean | No | Whether additional recipients should receive status emails. Defaults to true. |
| send_at | integer | No | Optional Unix timestamp to schedule status emails. |
| due_date | string | No | Optional due date in YYYY-MM-DD format to apply during the bulk update. |
Request Example
Response Example
POST
/orders/{order}/comment
Add a comment to the order.
| Name | Type | Required | Description |
|---|---|---|---|
| order | integer | Yes | The ID of the order (passed as a URL parameter). |
| comment | string | Yes | The comment to add to the order. Plain text only (3-1000 chars). |
| public | boolean | No | Whether the comment should be visible to the customer. Defaults to false. |
Request Example
Response Example
POST
/orders/{order}/due-date
Set a due date on the order, with optional due date range support.
| Name | Type | Required | Description |
|---|---|---|---|
| order | integer | Yes | The ID of the order (passed as a URL parameter). |
| due_date | string | Yes | Due date in YYYY-MM-DD format. Send null to clear. |
| due_date_to | string | No | Optional end date in YYYY-MM-DD format. Must be after due_date and requires due date range to be enabled. |
Request Example
Response Example
GET
/orders/{order}
Retrieve details of a specific order.
| Name | Type | Required | Description |
|---|---|---|---|
| order | integer | Yes | The ID of the order (passed as a URL parameter). |
Response Example
GET
/orders
Retrieve a paginated list of orders.
| Name | Type | Required | Description |
|---|---|---|---|
| search | string | No | Filter by partial match against order name, order number, customer name, or customer email. |
| status_code | string | No | Filter by a single status code like st000002. |
| tags | array<string> | No | Filter by tags that must all be present using repeated query params such as tags[]=commercial&tags[]=commercial-lease. |
| tags_any | array<string> | No | Filter by tags where any listed tag may be present using repeated query params such as tags_any[]=commercial&tags_any[]=commercial-flooring. |
| financial_status | array<string> | No | Filter by one or more financial statuses using repeated query params such as financial_status[]=partially_paid&financial_status[]=pending. Accepted values: paid, partially_paid, partially_refunded, refunded, voided, pending, authorized, unpaid. |
| fulfillment_status | array<string> | No | Filter by one or more fulfillment statuses using repeated query params such as fulfillment_status[]=fulfilled. Accepted values: unfulfilled, partial, restocked, fulfilled. |
| exclude_cancelled | boolean | No | When true, excludes orders where cancelled_at is set. |
| due_date_from | string | No | Filter to orders with a due date on or after this YYYY-MM-DD date. |
| due_date_to | string | No | Filter to orders with a due date on or before this YYYY-MM-DD date. |
| per_page | integer | No | Number of orders to return per page. Defaults to 15. Maximum 100. |
Request Example
Response Example
GET
/statuses
Get all defined statuses for your account.
Response Example
GET
/orders/lookup
Retrieve an order by order number and customer email.
| Name | Type | Required | Description |
|---|---|---|---|
| number | string | Yes | Order number or name (for example: 1188 or #1188). |
| string | Yes | Customer email address. |
Request Example
Response Example
GET
/orders/{order}/viable-statuses
Get viable statuses for an order based on its tags, excluding its current status.
| Name | Type | Required | Description |
|---|---|---|---|
| order | integer | Yes | The ID of the order (passed as a URL parameter). |
Response Example