Get profile by ID

Retrieves detailed information about a specific sender profile within an organization, including brand and KYC information if a brand has been configured.

GET
/v3/profiles/{profileId}

Path Parameters

profileId*string

Header Parameters

x-profile-id?string

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.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X GET "https://api.sent.dm/v3/profiles/string"
{
  "success": true,
  "data": {
    "id": "770e8400-e29b-41d4-a716-446655440002",
    "organization_id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Sales Team",
    "email": "team@acme.com",
    "icon": "https://example.com/sales-icon.png",
    "description": "Sales department sender profile",
    "short_name": "SALES",
    "status": "approved",
    "created_at": "2025-12-11T21:50:50.1534402+00:00",
    "updated_at": "2026-03-06T21:50:50.1534428+00:00",
    "allow_contact_sharing": true,
    "allow_template_sharing": false,
    "inherit_contacts": true,
    "inherit_templates": true,
    "inherit_tcr_brand": false,
    "inherit_tcr_campaign": false,
    "billing_model": "profile",
    "sending_phone_number_profile_id": null,
    "sending_whatsapp_number_profile_id": null,
    "sending_phone_number": null,
    "whatsapp_phone_number": null,
    "allow_number_change_during_onboarding": null,
    "waba_id": null,
    "billing_contact": null,
    "brand": {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "tcr_brand_id": null,
      "status": null,
      "identity_status": null,
      "universal_ein": null,
      "csp_id": null,
      "submitted_to_tcr": false,
      "submitted_at": null,
      "is_inherited": false,
      "created_at": "2025-12-11T21:50:50.1534439+00:00",
      "updated_at": null,
      "contact": {
        "name": "John Smith",
        "business_name": "Acme Corp",
        "role": null,
        "phone": null,
        "email": "john@acmecorp.com",
        "phone_country_code": null
      },
      "business": {
        "legal_name": "Acme Corporation LLC",
        "tax_id": null,
        "tax_id_type": null,
        "entity_type": null,
        "street": null,
        "city": null,
        "state": null,
        "postal_code": null,
        "country": "US",
        "url": null,
        "country_of_registration": null
      },
      "compliance": {
        "vertical": "PROFESSIONAL",
        "brand_relationship": "SMALL_ACCOUNT",
        "primary_use_case": null,
        "expected_messaging_volume": null,
        "is_tcr_application": true,
        "phone_number_prefix": null,
        "destination_countries": [
          {
            "id": "US",
            "isMain": false
          }
        ],
        "notes": null
      }
    }
  },
  "error": null,
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-03-11T21:50:50.1534471+00:00",
    "version": "v3"
  }
}
Empty
Empty
{
  "success": false,
  "data": null,
  "error": {
    "code": "RESOURCE_014",
    "message": "Profile not found",
    "details": null,
    "doc_url": "https://docs.sent.dm/errors/RESOURCE_014"
  },
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-03-11T21:50:50.1534502+00:00",
    "version": "v3"
  }
}
{
  "success": false,
  "data": null,
  "error": {
    "code": "INTERNAL_001",
    "message": "Failed to retrieve profile. 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.1534535+00:00",
    "version": "v3"
  }
}

List profiles in organization GET

Retrieves all sender profiles within an organization, including brand information for each profile. Profiles represent different brands, departments, or use cases within an organization, each with their own messaging configuration.

Create a new profile POST

Creates a new sender profile within an organization. Profiles represent different brands, departments, or use cases, each with their own messaging configuration and settings. Requires admin role in the organization. ## WhatsApp Business Account Every profile must be linked to a WhatsApp Business Account. There are two ways to do this: **1. Inherit from organization (default)** — Omit the `whatsapp_business_account` field. The profile will share the organization's WhatsApp Business Account, which must have been set up via WhatsApp Embedded Signup. This is the recommended path for most use cases. **2. Direct credentials** — Provide a `whatsapp_business_account` object with `waba_id`, `phone_number_id`, and `access_token`. Use this when the profile needs its own independent WhatsApp Business Account. Obtain these from Meta Business Manager by creating a System User with `whatsapp_business_messaging` and `whatsapp_business_management` permissions. If the `whatsapp_business_account` field is omitted and the organization has no WhatsApp Business Account configured, the request will be rejected with HTTP 422. ## Brand Include the optional `brand` field to create the brand for this profile at the same time. Cannot be used when `inherit_tcr_brand` is `true`. ## Payment Details When `billing_model` is `"profile"` or `"profile_and_organization"` you may include a `payment_details` object containing the card number, expiry (MM/YY), CVC, and billing ZIP code. Payment details are **never stored** on our servers and are forwarded directly to the payment processor. Providing `payment_details` when `billing_model` is `"organization"` is not allowed.