List sender profiles
Lists the sender profiles under your organization, newest first, paginated with page and page_size.
Each entry is the same document GET /v3/sender-profiles/{id} returns, with one difference: listed markets carry no compliance. Working out what a market still owes means a catalog lookup and a document read per market, and doing that for every profile on a page would turn one request into dozens to answer a question you did not ask. Read a single profile for that.
compliance being absent is not the same as it being empty. Absent means it was not worked out here; empty means the market owes nothing.
api_key is never returned. It is shown once, by create.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v3/sender-profiles?page=0&page_size=0"{
"success": true,
"data": {
"sender_profiles": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
"name": "string",
"short_name": "string",
"description": "string",
"api_key": "string",
"billing": {
"inherit": true,
"fallback": true
},
"channels": {
"customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
"sms": [
{
"country": "string",
"number_type": "string",
"sender_value": "string",
"status": "PROVISIONING",
"compliance": {
"brand": {
"property1": null,
"property2": null
},
"campaign": {
"property1": null,
"property2": null
},
"documents": [
{
"key": "string",
"file_name": "string",
"document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6"
}
]
}
}
],
"whatsapp": {
"waba_id": "string",
"phone_number_id": "string",
"solution_id": "string",
"owner_business_id": "string",
"status": "PROVISIONING"
},
"rcs": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"status": "PROVISIONING",
"phone_number": "string",
"display_name": "string",
"description": "string",
"agent_use_case": "string",
"brand_name": "string",
"privacy_policy_url": "string",
"terms_and_conditions_url": "string",
"website_url": "string",
"brand_color": "string",
"brand_phone_number": "string",
"customer_support_phone_number": "string",
"brand_email": "string",
"customer_support_email": "string",
"contact_name_and_title": "string",
"company_ein": "string",
"entity_type": "string",
"official_address": {
"street": "string",
"city": "string",
"state": "string",
"postal_code": "string",
"country": "string"
},
"brief_company_description": "string",
"opt_in_process_description": "string",
"start_message": "string",
"help_message": "string",
"stop_message": "string",
"sample_messages": [
"string"
],
"created_at": "2019-08-24T14:15:22Z"
}
},
"compliance": {
"brand": {
"property1": null,
"property2": null
},
"campaign": {
"property1": null,
"property2": null
},
"documents": [
{
"key": "string",
"file_name": "string",
"document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6"
}
]
},
"created_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {
"page": 0,
"page_size": 0,
"total_count": 0,
"total_pages": 0,
"has_more": true,
"cursors": {
"after": "string",
"before": "string"
}
}
},
"error": {
"code": "string",
"message": "string",
"details": {
"property1": [
"string"
],
"property2": [
"string"
]
},
"doc_url": "string"
},
"meta": {
"request_id": "string",
"timestamp": "2019-08-24T14:15:22Z",
"version": "string"
}
}{
"success": true,
"error": {
"code": "string",
"message": "string",
"details": {
"property1": [
"string"
],
"property2": [
"string"
]
},
"doc_url": "string"
},
"meta": {
"request_id": "string",
"timestamp": "2019-08-24T14:15:22Z",
"version": "string"
}
}{
"success": true,
"error": {
"code": "string",
"message": "string",
"details": {
"property1": [
"string"
],
"property2": [
"string"
]
},
"doc_url": "string"
},
"meta": {
"request_id": "string",
"timestamp": "2019-08-24T14:15:22Z",
"version": "string"
}
}Delete a template DELETE
Deletes a template by ID. Optionally, you can also delete the template from WhatsApp/Meta by setting delete_from_meta=true.
Get a sender profile GET
Reads one of your sender profiles. The document mirrors `POST /v3/sender-profiles`, with three differences that follow from this being a read rather than a request. `channels.sms` is a **list**. Create takes the one market a profile starts in; a profile can go on to send in several, and this reports all of them, each with its own `status` and its own outstanding `compliance`. `brand` comes back **in full, with `inherit` saying whose it is**. On a request `{ "inherit": true }` carries no data because there is nothing to send; here it carries the data, because the point of a read is to say what the profile actually sends under. **There is no `campaigns` array.** A campaign is only ever a registration, so what a read can usefully say about one is whether anything is still owed for it — and that is reported per market, in `channels.sms[].compliance.requirements`. A profile running on your organization's campaign is asked for none of the campaign fields, so an empty `requirements` is how an inherited campaign reads. `api_key` is **never** returned here. It is shown once, by create. A profile belonging to another organization reads as `404`, not `403`: saying which of the two it is would confirm the id exists.