Trumpet logo
trumpetAPI

Endpoints

List Custom Statuses

GET/v1/custom-statuses

Lists your brand's custom Pod statuses, including the ID you pass to the Update Pod endpoint. Requires the ReadCustomStatuses scope.


Authentication

This endpoint requires a valid API key with the ReadCustomStatuses scope. Pass it via the Authorization header:

Authorization: Bearer trpt_a1b2c3_your_key_here

Query Parameters

Query Parameters

ParameterTypeRequiredDescription
pod_typestringOptionalFilter to statuses assignable to a single Pod type, e.g. "content" or "customer". Omit to return every custom status configured for your brand.
💡

Custom vs internal statuses

Every custom status maps to one of four internal statuses (draft, active, completed, lost). Custom statuses are a display and filter layer your brand configures in Settings → Pods & Templates → Statuses; the internal status is what drives reporting and CRM sync.

Example Request

cURL
curl https://trumpet.app/api/v1/custom-statuses \
  -H "Authorization: Bearer trpt_a1b2c3_your_key_here"
cURL (filtered by Pod type)
curl "https://trumpet.app/api/v1/custom-statuses?pod_type=customer" \
  -H "Authorization: Bearer trpt_a1b2c3_your_key_here"
JavaScript
const response = await fetch("https://trumpet.app/api/v1/custom-statuses", {
  headers: {
    "Authorization": `Bearer ${process.env.TRUMPET_API_KEY}`,
  },
});

const { success, data } = await response.json();
Python
import os, requests

response = requests.get(
    "https://trumpet.app/api/v1/custom-statuses",
    headers={"Authorization": f"Bearer {os.environ['TRUMPET_API_KEY']}"},
)

data = response.json()

Success Response

Returns 200 OKwith an array of the brand's custom statuses, ordered by pipeline position:

200 OK
{
  "success": true,
  "data": [
    {
      "id": "69f0bafc4cc54b506b0355d8",
      "name": "Discovery",
      "color": "#2E90FA",
      "internal_status": "active",
      "pod_types": ["content"],
      "order": 1,
      "is_default": true
    },
    {
      "id": "69f0bafc4cc54b506b0355e2",
      "name": "Won",
      "color": "#12B76A",
      "internal_status": "completed",
      "pod_types": ["content"],
      "order": 2,
      "is_default": true
    }
  ]
}
FieldTypeDescription
idstringThe custom status ID. Pass this as the status field when updating a Pod (see Update Pod).
namestringThe brand-defined display name, e.g. "Discovery", "Renewal", "Won".
colorstringHex colour used for the status chip, e.g. "#12B76A".
internal_statusstringThe internal status this maps to — one of "draft", "active", "completed", "lost". All system behaviour (analytics, win rates, CRM sync) keys off this value.
pod_typesstring[]The Pod types this status can be assigned to, e.g. ["content"] or ["customer"].
ordernumberPosition of the status within your brand's pipeline (ascending).
is_defaultbooleanWhether this is the default status for its internal status within its Pod-type group. Internal-status-driven changes land on the default.

Error Responses

StatusErrorCause
401Invalid or revoked API keyThe API key is missing, malformed, revoked, or deleted.
403Insufficient permissionsThe API key lacks the ReadCustomStatuses scope.
404Brand not foundThe brand associated with the API key has been deleted.
429Rate limit exceededMore than 60 requests per minute for this key. Retry after a short delay.

💡

Next: update a Pod's status

Use an id from this response as the status value when calling the Update Pod endpoint to move a Pod to that status.