Skip to main content
POST
/
projects
Create Project
curl --request POST \
  --url https://api.politicalcomms.com/v1/projects \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "organization_id": "01HX0000000000000000000000",
  "brand_id": "01HX0000000000000000000001",
  "campaign_id": "01HX0000000000000000000002",
  "phone_number_id": "01HX0000000000000000000003",
  "name": "Spring Outreach",
  "protocol": "sms",
  "contact_list_ids": [
    "01HX0000000000000000000004"
  ],
  "suppression_list_ids": [],
  "message_text": "Hi {first_name}, early voting starts Monday. More info: {link}",
  "media_ids": [],
  "link_tracking_enabled": true,
  "link_tracking_destination_url": "https://example.com/vote",
  "link_tracking_domain_id": "01HX0000000000000000000005"
}
'
{
  "success": true,
  "data": {
    "id": "proj_new123",
    "name": "Spring Outreach",
    "status": "draft",
    "organization_id": "01HX0000000000000000000000",
    "brand_id": "01HX0000000000000000000001",
    "campaign_id": "01HX0000000000000000000002",
    "phone_number_id": "01HX0000000000000000000003",
    "protocol": "sms",
    "message_text": "Hi {first_name}, early voting starts Monday. More info: {link}",
    "created_at": "2026-03-20T11:00:00Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.politicalcomms.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

X-API-Key
string
header
required

Authenticate every request by passing your API key in the X-API-Key header. Keys are scoped to your organization hierarchy.

Body

application/json
organization_id
string
required
brand_id
string
required
campaign_id
string
required
phone_number_id
string
required
name
string
required
protocol
enum<string>
required
Available options:
sms,
mms
contact_list_ids
string[]
required
message_text
string
required
suppression_list_ids
string[]
media_ids
string[]

Response

Project created (in draft status)