Campaigns
List campaigns
Get Scribeless campaigns available to the authenticated team.
List the campaigns that the API key can access. Use this endpoint to populate campaign selectors or inspect campaign configuration before creating recipients.
GET https://platform.scribeless.co/api/campaigns
Headers
X-API-Key: YOUR_API_KEY
Query parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Optional. Filter by pending, ready, paused, stopped, shipped, or deleted. |
frequency | string | Optional. Filter by oneTime or recurring. |
Example request
curl --request GET 'https://platform.scribeless.co/api/campaigns?status=pending' \
--header 'X-API-Key: YOUR_API_KEY'
Response
Successful requests return a top-level JSON array. The response is not wrapped in a data property.
Each campaign includes its core configuration, product and template summaries, recipient metrics, template variables, and the latest rendered recipient where available.
[
{
"id": "CAMPAIGN_ID",
"name": "Customer follow-up",
"status": "pending",
"product_id": "PRODUCT_ID",
"template_id": "TEMPLATE_ID",
"delivery_method": "directMail",
"frequency": "recurring",
"shipping_address_id": null,
"return_address_id": null,
"include_envelope": true,
"envelope_sealed": true,
"stamp_on_envelope": true,
"batch_individually": false,
"stamp_class": null,
"billing_method": "subscription",
"subscription_id": null,
"invoice_id": null,
"team_id": "TEAM_ID",
"created_at": "2026-01-01T10:00:00.000Z",
"updated_at": "2026-01-01T10:00:00.000Z",
"ready_at": null,
"shipped_at": null,
"deleted_at": null,
"print_house_override_id": null,
"tracking_email": "mail@example.com",
"render_mode": "standard",
"latest_recipient": {
"id": "RECIPIENT_ID"
},
"template": {
"id": "TEMPLATE_ID",
"name": "Customer follow-up",
"render_mode": "standard"
},
"return_address": null,
"shipping_address": null,
"product": {
"id": "PRODUCT_ID",
"name": "A6 postcard",
"category": "postcard",
"standard": "ISO",
"alternate": null,
"product_family": "handwritten"
},
"metrics": {
"total": 1,
"pending": 1,
"invalid": 0,
"ready": 0,
"printing": 0,
"shipped": 0,
"delivered": 0,
"deleted": 0
},
"cart": {
"id": "CART_ID"
},
"variables": [
{
"id": "VARIABLE_ID",
"context": "Custom 1",
"label": "Custom 1",
"mapper": "return recipient.variables?.custom1 ?? ''"
}
],
"directMailHandwritingWarning": null
}
]
Notes
- Omitting both query parameters returns all campaigns available to the authenticated team.
- The response order is newest campaign first.
- Use
idascampaignIdwhen callingPOST /api/recipients. - Treat any non-
2xxresponse as failed and inspect the response body for the error message.
Status codes
| Status | Meaning |
|---|---|
200 | Campaigns returned. |
400 | An unsupported query parameter value was supplied. |
401 | Missing, malformed, invalid, or unauthorized API key. |
500 | Campaigns could not be fetched. Retry later or contact support if it persists. |