Endpoints
List Custom Statuses
GET
/v1/custom-statusesLists 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_hereQuery Parameters
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
pod_type | string | Optional | Filter 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
}
]
}| Field | Type | Description |
|---|---|---|
id | string | The custom status ID. Pass this as the status field when updating a Pod (see Update Pod). |
name | string | The brand-defined display name, e.g. "Discovery", "Renewal", "Won". |
color | string | Hex colour used for the status chip, e.g. "#12B76A". |
internal_status | string | The internal status this maps to — one of "draft", "active", "completed", "lost". All system behaviour (analytics, win rates, CRM sync) keys off this value. |
pod_types | string[] | The Pod types this status can be assigned to, e.g. ["content"] or ["customer"]. |
order | number | Position of the status within your brand's pipeline (ascending). |
is_default | boolean | Whether this is the default status for its internal status within its Pod-type group. Internal-status-driven changes land on the default. |
Error Responses
| Status | Error | Cause |
|---|---|---|
401 | Invalid or revoked API key | The API key is missing, malformed, revoked, or deleted. |
403 | Insufficient permissions | The API key lacks the ReadCustomStatuses scope. |
404 | Brand not found | The brand associated with the API key has been deleted. |
429 | Rate limit exceeded | More 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.