Get campaigns for a profile's brand
Retrieves all campaigns linked to the profile's brand, including use cases and sample messages. Returns inherited campaigns if inherit_tcr_campaign=true.
Path Parameters
Profile ID from route
uuidHeader Parameters
Profile UUID to scope the request to a child profile. Only organization API keys can use this header. The profile must belong to the calling organization.
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://api.sent.dm/v3/profiles/770e8400-e29b-41d4-a716-446655440002/campaigns"{
"success": true,
"data": [
{
"useCases": [
{
"campaignId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"customerId": "00000000-0000-0000-0000-000000000000",
"messagingUseCaseUs": "ACCOUNT_NOTIFICATION",
"sampleMessages": [
"Hi {name}, your appointment is confirmed for {date} at {time}.",
"Your order #{order_id} has been shipped. Track at {url}"
],
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"createdAt": "0001-01-01T00:00:00+00:00",
"updatedAt": null
}
],
"tcrSyncError": null,
"kycSubmissionFormId": null,
"type": "App",
"customerId": "00000000-0000-0000-0000-000000000000",
"name": "Customer Notifications",
"description": "Appointment reminders and account notifications",
"submittedToTCR": false,
"submittedAt": null,
"billedDate": null,
"cost": null,
"telnyxCampaignId": null,
"tcrCampaignId": null,
"cspId": null,
"status": null,
"brandId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"resellerId": null,
"messageFlow": "User signs up on website and opts in to receive SMS notifications",
"privacyPolicyLink": null,
"termsAndConditionsLink": null,
"optinMessage": null,
"optoutMessage": null,
"helpMessage": null,
"optinKeywords": null,
"optoutKeywords": null,
"helpKeywords": null,
"upstreamCnpId": null,
"sharingStatus": null,
"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"createdAt": "2026-03-11T21:50:50.2593126+00:00",
"updatedAt": null
}
],
"error": null,
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-11T21:50:50.2593143+00:00",
"version": "v3"
}
}{
"success": false,
"data": null,
"error": {
"code": "RESOURCE_009",
"message": "Brand not found for this profile",
"details": null,
"doc_url": "https://docs.sent.dm/errors/RESOURCE_009"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-11T21:50:50.2593172+00:00",
"version": "v3"
}
}{
"success": false,
"data": null,
"error": {
"code": "INTERNAL_001",
"message": "Failed to retrieve campaigns. Please contact support with request ID: req_7X9zKp2jDw",
"details": null,
"doc_url": "https://docs.sent.dm/errors/INTERNAL_001"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-11T21:50:50.2593179+00:00",
"version": "v3"
}
}Complete profile setup POST
Final step in profile compliance workflow. Validates all prerequisites (general data, brand, campaigns), connects profile to Telnyx/WhatsApp, and sets status based on configuration. The process runs in the background and calls the provided webhook URL when finished. Prerequisites: - Profile must be completed - If inheritTcrBrand=false: Profile must have existing brand - If inheritTcrBrand=true: Parent must have existing brand - If TCR application: Must have at least one campaign (own or inherited) - If inheritTcrCampaign=false: Profile should have campaigns - If inheritTcrCampaign=true: Parent must have campaigns Status Logic: - If both SMS and WhatsApp channels are missing → SUBMITTED - If TCR application and not inheriting brand/campaigns → SUBMITTED - If non-TCR with destination country (IsMain=true) → SUBMITTED - Otherwise → COMPLETED
Create a campaign for a profile's brand POST
Creates a new campaign scoped under the brand of the specified profile. Each campaign must include at least one use case with sample messages.