GET

List Statuses

Retrieve a list of all custom order statuses configured in your system.

Endpoint

HTTP Request
GET /v1/statuses

Authentication

This endpoint requires a valid API key with canViewStatuses permission. The API key must be passed in the X-API-Key header.
Required Header
X-API-Key: ucos_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Response

Returns all custom statuses with detailed configuration:
200 OK - Success Response
{
  "success": true,
  "data": {
    "statuses": [
      {
        "id": "string",
        "name": "string",
        "public_name": null,
        "use_public_name": true,
        "display_name": "string",
        "color": "string",
        "order": 0,
        "is_independent": true,
        "is_addon": true,
        "workflow_id": "string",
        "workflow_name": "string",
        "notifications": {
          "email": true,
          "sms": true,
          "whatsapp": true
        },
        "shopify_order_effect": "string",
        "max_duration": {
          "enabled": true,
          "seconds": 0,
          "skip_weekends": true,
          "skip_holidays": true,
          "show_public_overdue_date": true
        },
        "sub_status_group": null
      }
    ],
    "summary": {
      "total": 0,
      "addon_count": 0,
      "independent_count": 0,
      "workflow_count": 0
    },
    "workflows_enabled": true,
    "workflows": [
      {
        "id": "string",
        "name": "string",
        "description": null,
        "color": "string",
        "order": 0
      }
    ]
  }
}

Response Fields

Root Response Object

FieldTypeDescription
successbooleanAlways true on a successful response.
dataobjectThe endpoint's payload. Its fields are listed in the tables below.
statusesarrayArray of status objects
summaryobjectSummary object with count
workflows_enabledbooleanWhether the multi-workflow feature is active for this shop
workflowsarrayList of all workflows with id, name, description, color, and order

Status Object Fields

FieldTypeDescription
idstringUUID of the status
namestringInternal name of the status
public_namestring | nullCustomer-facing name
use_public_namebooleanWhether to use public name for customers
display_namestringComputed display name (public_name if use_public_name is true, otherwise name)
colorstringHex color code for the status
ordernumberDisplay order in workflow
is_independentbooleanWhether status can be used independently of workflow
is_addonbooleanWhether this is an addon status (v1.1+ only)
workflow_idstring | nullUUID of the workflow this status belongs to (v1.3+ only)
workflow_namestring | nullName of the workflow this status belongs to (v1.3+ only)
notificationsobjectObject containing notification settings
shopify_order_effectstringEffect on Shopify order (e.g., NONE, MARKS_ORDER_FULFILLED)
max_durationobjectObject containing duration limit settings
sub_status_groupobject | nullObject containing sub-status group details, or null

Notifications Object Fields

FieldTypeDescription
emailbooleanWhether email notifications are enabled
smsbooleanWhether SMS notifications are enabled
whatsappbooleanWhether WhatsApp notifications are enabled

Max Duration Object Fields

FieldTypeDescription
enabledbooleanWhether max duration is enabled
secondsnumberMaximum duration in seconds
skip_weekendsbooleanWhether to skip weekends in duration calculation
skip_holidaysbooleanWhether to skip holidays in duration calculation (v1.2+)
show_public_overdue_datebooleanWhether to show overdue date to customers

Sub-Status Group Object Fields

FieldTypeDescription
idstringUUID of the sub-status group
namestringName of the sub-status group
optionsarrayArray of sub-status options

Sub-Status Option Fields

FieldTypeDescription
idstringUUID of the sub-status option
namestringName of the sub-status option
ordernumberDisplay order of the sub-status option

Workflow Object Fields

FieldTypeDescription
idstringUnique identifier for the workflow
namestringDisplay name of the workflow
descriptionstring | nullOptional description of the workflow's purpose
colorstringHex color code for UI display
ordernumberDisplay order position (ascending)

Summary Object Fields

FieldTypeDescription
totalnumberTotal number of statuses
addon_countnumberNumber of addon statuses
independent_countnumberNumber of independent statuses
workflow_countnumberNumber of workflows containing statuses

Examples

Basic Request

cURL Request
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/statuses" \
  -H "X-API-Key: ucos_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "X-API-Version: 1.5"

Rate Limiting

This endpoint is subject to per-minute and per-day rate limits based on your API key. Rate limit information is returned in the response headers:
  • X-RateLimit-Limit-Minute: Maximum requests per minute
  • X-RateLimit-Remaining-Minute: Remaining requests in current minute
  • X-RateLimit-Reset-Minute: Unix timestamp when minute window resets
  • X-RateLimit-Limit-Day: Maximum requests per day
  • X-RateLimit-Remaining-Day: Remaining requests in current day
  • X-RateLimit-Reset-Day: Unix timestamp when day window resets
  • Retry-After: Seconds to wait before retrying (when rate limited)

Error Responses

401 Unauthorized

Missing or invalid API key

401 Unauthorized
{
  "success": false,
  "error": "Missing API key. Include it in the X-API-Key header"
}

403 Forbidden

API key lacks required permissions

403 Forbidden
{
  "success": false,
  "error": "Insufficient permissions. Required: canViewStatuses"
}

500 Internal Server Error

Server error occurred

500 Internal Server Error
{
  "success": false,
  "error": "Internal server error",
  "details": {
    "message": "An unexpected error occurred"
  }
}