Get a campaign
Changed onRetrieve a single message campaign by its identifier. Resolves both newsletters and flow campaigns — no type parameter needed. A flow campaign names the flow that sends it in flow; newsletters omit that field.
A /v1/campaigns row already carries this exact shape, so following up per campaign adds nothing — reach for this when the id came from somewhere else, such as a flow node's data.campaign_id or a report row's campaign_id. Performance is /v1/reports/campaigns/{campaign_id}.
Required scope: campaigns_read
Request
- Base URLhttps://api.privy.com/v1
- AuthHTTP bearer
Path parameters
The campaign's unique identifier (returned as id in campaign responses). Ids are opaque public strings — a numeric id from a Privy dashboard URL is not a valid API id and will 404; list campaigns and match by title instead.
Headers
Target a subaccount instead of the main connected account. Pass a subaccount id from get_account's subaccounts list. Only direct subaccounts of the connected account are reachable — omit this for the main account itself.
Response
The message campaign.
Example response
{
"data": {
"id": "Nw8K2rT5xY",
"type": "newsletter",
"title": "June Restock Announcement",
"channel": "email",
"status": "sent",
"subject": "The restock you asked for is here",
"send_date": "2026-06-18T15:00:00Z",
"flow": {
"id": "0Rqw3Z8",
"title": "Welcome Series"
},
"audience": {
"included_segments": [
{
"id": "aBc1234",
"name": "Engaged 90d"
}
],
"excluded_segments": [
{
"id": "aBc1234",
"name": "Engaged 90d"
}
]
},
"coupon": {
"id": "Xk2fW9qLpV",
"title": "Welcome 10%"
},
"ab_test": {
"winning_metric": "click_rate",
"test_duration_seconds": 86400,
"versions": [
{
"id": "cpv_dkyYZmk",
"name": "Version A",
"is_control": true,
"audience_share": 0.125,
"subject": "The restock you asked for is here",
"preheader": "Back in stock and going fast",
"coupon": {
"id": "Xk2fW9qLpV",
"title": "Welcome 10%"
}
}
]
},
"created_at": "2026-06-10T09:00:00Z",
"updated_at": "2026-06-18T15:05:00Z"
}
}Changes
- warning
added the new
forbiddenenum value to the/response property for the response status - warning
added the new
forbiddenenum value to the/response property for the response status - warning
added the new
forbiddenenum value to the/response property for the response status - warning
added the new
forbiddenenum value to the/response property for the response status - warning
added the new
segment_builder_requiredenum value to the/response property for the response status - warning
added the new
segment_builder_requiredenum value to the/response property for the response status - warning
added the new
segment_builder_requiredenum value to the/response property for the response status - warning
added the new
segment_builder_requiredenum value to the/response property for the response status
- warning
- info
endpoint added
- info