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: your_api_key_here

Response

Returns all custom statuses with detailed configuration:
200 OK - Success Response
{
  "statuses": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "Processing",
      "public_name": "Your order is being processed",
      "use_public_name": true,
      "display_name": "Your order is being processed",
      "color": "#2948ff",
      "order": 1,
      "is_independent": false,
      "notifications": {
        "email": true,
        "sms": false,
        "whatsapp": true
      },
      "shopify_order_effect": "NONE",
      "max_duration": {
        "enabled": true,
        "seconds": 86400,
        "skip_weekends": false,
        "show_public_overdue_date": true
      },
      "sub_status_group": {
        "id": "660e8400-e29b-41d4-a716-446655440001",
        "name": "Shipping Methods",
        "options": [
          {
            "id": "770e8400-e29b-41d4-a716-446655440002",
            "name": "Standard Shipping",
            "order": 1
          },
          {
            "id": "880e8400-e29b-41d4-a716-446655440003",
            "name": "Express Shipping",
            "order": 2
          }
        ]
      }
    },
    {
      "id": "990e8400-e29b-41d4-a716-446655440004",
      "name": "Completed",
      "public_name": "Order completed",
      "use_public_name": false,
      "display_name": "Completed",
      "color": "#10b981",
      "order": 5,
      "is_independent": true,
      "notifications": {
        "email": false,
        "sms": false,
        "whatsapp": false
      },
      "shopify_order_effect": "MARKS_ORDER_FULFILLED",
      "max_duration": {
        "enabled": false,
        "seconds": 0,
        "skip_weekends": false,
        "show_public_overdue_date": false
      },
      "sub_status_group": null
    }
  ],
  "summary": {
    "total": 2
  }
}

Response Fields

Root Response Object

FieldTypeDescription
statusesarrayArray of status objects
summaryobjectSummary object with count

Status Object Fields

FieldTypeDescription
idstringUUID of the status
namestringInternal name of the status
public_namestringCustomer-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
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
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

Summary Object Fields

FieldTypeDescription
totalnumberTotal number of statuses

Examples

Basic Request

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

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
{
  "error": "Invalid API key"
}

403 Forbidden

API key lacks required permissions

403 Forbidden
{
  "error": "Insufficient permissions"
}

500 Internal Server Error

Server error occurred

500 Internal Server Error
{
  "error": "Internal server error",
  "details": {
    "message": "Error description"
  }
}