List domains and campaigns
Returns the domains and campaigns owned by the authenticated account.
On this page
Returns the domains and campaigns owned by the authenticated account. Powers Zapier's "Watch which channel?" dropdown.
Sort order: domains first (alphabetical by domain), then campaigns (alphabetical by name).
Endpoint
http
GET /api/v1/channels
Authentication
Bearer Personal Access Token. See Authentication.
Example request
bash
curl https://www.voicegram.io/api/v1/channels \
-H "Authorization: Bearer vg_pat_<your-token>"
Responses
200OK
Channel list
| Field | Type | Required | Description |
|---|---|---|---|
channels | array of object | yes | |
channels[].id | string (uuid) | yes | Channel identifier. Stable across renames. |
channels[].type | enum ("domain", "campaign") | yes | |
channels[].name | string | yes | For type=domain this is the hostname (e.g. acme.com). For type=campaign this is the campaign display name. |
channels[].slug | string | no | URL-safe slug. Only present for type=campaign; absent on domain rows. |
json
{
"channels": [
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "domain",
"name": "acme.com"
},
{
"id": "22222222-2222-2222-2222-222222222222",
"type": "domain",
"name": "shop.acme.com"
},
{
"id": "33333333-3333-3333-3333-333333333333",
"type": "campaign",
"name": "Store Feedback",
"slug": "store-feedback"
}
]
}
401Unauthorized
The PAT is missing, malformed, expired, or revoked.
See Errors for the shared error response shape.
403Forbidden
PAT is valid but the account is on the free plan.
See Errors for the shared error response shape.
Need help? Email support@voicegram.io.