List automated campaigns
Overview
Get the campaigns set up for automatic sending, with their file formats.
Use this to see what's running automatically.
You'll need an account token.
Returns one entry per automated campaign (type automation), each with its file_header (or null). Results are paginated.
Prerequisites
- A bearer token. See Authentication.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/campaign/automate/list
Authentication
Account token
- Lists the automated campaigns of the account of the user behind the token.
Rate limit
This endpoint has no rate limit.
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | No | The page to return, from 1. Default 1. |
per_page | query | integer | No | Campaigns per page, 10–100. Default 15. Values below 10 are raised to 10; above 100 returns 422. |
Request body
None.
Request payload
None.
Response body
The payload is inside data.
| Field | Type | Description |
|---|---|---|
status | string | success. |
data | object | A page of automated campaigns. |
data.data | array of objects | The automated campaigns. An empty array [] when there are none. |
data.data[].id | integer | The campaign's id. |
data.data[].name | string | The campaign's name. |
data.data[].description | string or null | The campaign's description, or null. |
data.data[].status | string | draft, scheduled, in_progress, paused, completed or cancelled. |
data.data[].type | string | automation. |
data.data[].created_at | string | When the campaign was created. |
data.data[].updated_at | string | When the campaign last changed. |
data.data[].request_after_time_pst | string or null | Always null here. |
data.data[].request_file_url | string or null | Always null here. |
data.data[].unique_code | string | The campaign's unique code. |
data.data[].file_header | object or null | The campaign's file format, or null when it has none. |
data.data[].file_header.id | integer | The file format's id (fileHeaderId). |
data.data[].file_header.rs_campaign_id | integer | The campaign it belongs to. |
data.data[].file_header.headers | object | Which column in your file holds each field: email, phone, customer_name and location_identifier map to column names. |
data.data[].file_header.sample_file_path | string | Storage path of the sample file. |
data.data[].file_header.location_identifier | string | The value in the location column that marks this campaign's rows. |
data.data[].file_header.sample_file_url | string | URL of the sample file. |
data.current_page | integer | The page returned. |
data.per_page | integer | Campaigns per page. |
data.total | integer | Automated campaigns across all pages. |
data.last_page | integer | The last page number. |
data.from | integer or null | Position of the first campaign on this page, or null when the page is empty. |
data.to | integer or null | Position of the last campaign on this page, or null when the page is empty. |
data.first_page_url | string | URL of the first page. |
data.last_page_url | string | URL of the last page. |
data.prev_page_url | string or null | URL of the previous page, or null. |
data.next_page_url | string or null | URL of the next page, or null. |
data.path | string | The endpoint URL without the query string. |
data.links | array of objects | Page links for a pager, each with url, label, page and active. |
Response payload
{
"data": {
"status": "success",
"data": {
"current_page": 1,
"data": [
{
"id": 4827,
"name": "Weekly review push",
"description": null,
"status": "in_progress",
"type": "automation",
"created_at": "2026-10-01T10:30:00.000000Z",
"updated_at": "2026-10-01T10:30:00.000000Z",
"request_after_time_pst": null,
"request_file_url": null,
"unique_code": "a1b2c3",
"file_header": {
"id": 4,
"rs_campaign_id": 4827,
"headers": {
"email": "Email Address",
"phone": "Phone Number",
"customer_name": "Customer Name",
"location_identifier": "Store ID"
},
"sample_file_path": "campaign_automation/sample_files/1718447400_sample.xlsx",
"location_identifier": "loc-00123",
"sample_file_url": "https://d2ny6zb7otrnhl.cloudfront.net/campaign_automation/sample_files/1718447400_sample.xlsx"
}
}
],
"first_page_url": "https://production-api.shoutaboutus.com/api/v1/campaign/automate/list?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "https://production-api.shoutaboutus.com/api/v1/campaign/automate/list?page=1",
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "https://production-api.shoutaboutus.com/api/v1/campaign/automate/list?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"next_page_url": null,
"path": "https://production-api.shoutaboutus.com/api/v1/campaign/automate/list",
"per_page": 15,
"prev_page_url": null,
"to": 1,
"total": 1
}
}
}Examples
Success payload
One automated campaign: see Response payload. With none, data.data is empty:
{
"data": {
"status": "success",
"data": {
"current_page": 1,
"data": [],
"first_page_url": "https://production-api.shoutaboutus.com/api/v1/campaign/automate/list?page=1",
"from": null,
"last_page": 1,
"last_page_url": "https://production-api.shoutaboutus.com/api/v1/campaign/automate/list?page=1",
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "https://production-api.shoutaboutus.com/api/v1/campaign/automate/list?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"next_page_url": null,
"path": "https://production-api.shoutaboutus.com/api/v1/campaign/automate/list",
"per_page": 15,
"prev_page_url": null,
"to": null,
"total": 0
}
}
}Error payload
422 per_page above 100
{
"message": "The per page field must not be greater than 100.",
"errors": {
"per_page": [
"The per page field must not be greater than 100."
]
}
}| Status | Meaning |
|---|---|
200 | A page of automated campaigns, or an empty data.data array. |
401 | The token is missing, expired or invalid. |
422 | per_page is above 100, or page isn't a positive integer. |
500 | Unexpected server error. |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/campaign/automate/list?page=1&per_page=15" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 17 days ago
Did this page help you?
