Skip to content
View as Markdown

POST Fetch Contact Export Page​

POST
/subscribers-export

Fetch one page of contact-export rows. The admin export runs by calling this repeatedly and assembling the CSV client-side, which is what keeps a six-figure export from timing out in a single request.

Paging is fixed at 500 rows per request and cannot be changed. Keep requesting while has_more is true, incrementing page.

total and headers are returned only on page 1 — capture them on the first call, because later pages carry just page, rows, and has_more.

The maximum page is 200, a hard ceiling of 100,000 rows per export; beyond that the endpoint returns 400.

filter_type selects one of two mutually exclusive branches: simple reads tags, lists, and statuses, while advanced reads advanced_filters and ignores the others.

Prefer this POST form: export selections routinely exceed what fits in a query string.

Required capability: fcrm_manage_contacts_export

Enforced by ExportPolicy::verifyRequest(), the policy default for this route group.

Requires: FluentCampaign Pro. Without it the route does not exist.

Authorizations​

ApplicationPasswords

WordPress Application Passwords — use Basic auth with your WordPress username and an application password in the format: username:application_password

Type
API Key (header: Authorization)

Request Body​

application/json
JSON
{
"columns": [
"string"
],
"custom_fields": [
"string"
],
"commerce_columns": [
"string"
],
"page": 1,
"limit": 0,
"offset": 0,
"filter_type": "simple",
"tags": [
0
],
"lists": [
0
],
"statuses": [
"string"
],
"advanced_filters": "string",
"contact_ids": [
0
],
"company_ids": [
0
],
"search": "string",
"sort_by": "id",
"sort_type": "DESC",
"has_commerce": "string"
}

Responses​

One page of export rows.

application/json
JSON
{
"page": 0,
"total": 0,
"headers": [
"string"
],
"rows": [
[
]
],
"has_more": true
}

Playground​

Authorization
Body

Samples​

Powered by VitePress OpenAPI