Kenso

Campaign images

The current images of a campaign's leads, and one image with a fresh preview link.

Campaigns and sequences2 endpointsKen-Version: 2026-11-02AuthenticationWorkspacesErrors

Current images of some leads of a campaign: each image variable's and the lead's own custom_image

GET/v1/campaigns/{campaignId}/imagescampaign-images.list

Needs the campaign_images feature on your workspace. Until it is on, calls answer 404.

Try it on developer.ken.so

contactIds (required) is 1 to 200 comma-separated contact ids. variableKey keeps one key: an image variable's key, or custom_image for the lead's own image; an unknown key is an empty list. One item per lead and key that has an image, any status, ordered by contactId then variableKey; an image of a deleted variable is left out. status is pending, ready or failed; a failed image carries errorCode and errorDetail. A ready image carries previewUrl, which works until previewExpiresAt (1 hour). One page: hasMore is always false. Requires the Campaigns page.

Parameters

Name
In
Type
Required
Description
campaignId
In: path
integer (int64)
required
contactIds
In: query
string
optional
variableKey
In: query
string
optional
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a list of CampaignImageModel. Each item has these fields. The response also carries pagination.

Field
Type
Description
imageKey
string
contactId
integer (int64)
variableKey
string
status
string
errorCode
string
errorDetail
string
width
integer (int32)
height
integer (int32)
previewUrl
string
previewExpiresAt
string (date-time)
updatedAt
string (date-time)
Request
curl -X GET "https://api.ken.so/v1/campaigns/812/images" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": [
    {
      "imageKey": "string",
      "contactId": 812,
      "variableKey": "string",
      "status": "string",
      "errorCode": "string",
      "errorDetail": "string",
      "width": 1,
      "height": 1,
      "previewUrl": "https://example.com",
      "previewExpiresAt": "2026-09-23T15:02:11Z",
      "updatedAt": "2026-09-23T15:02:11Z"
    }
  ],
  "pagination": {
    "nextCursor": "eyJpZCI6ODE1fQ",
    "hasMore": true,
    "total": 1,
    "isTotalCapped": true
  }
}

One image with a fresh preview URL (1 hour)

GET/v1/campaign-images/{imageKey}campaign-images.get

Needs the campaign_images feature on your workspace. Until it is on, calls answer 404.

Try it on developer.ken.so

imageKey is the image's 26-character key from the list. A ready image carries previewUrl, which works until previewExpiresAt (1 hour); call again for a new one. An unknown or malformed key is 404. Requires the Campaigns page.

Parameters

Name
In
Type
Required
Description
imageKey
In: path
string
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a CampaignImageModel.

Field
Type
Description
imageKey
string
contactId
integer (int64)
variableKey
string
status
string
errorCode
string
errorDetail
string
width
integer (int32)
height
integer (int32)
previewUrl
string
previewExpiresAt
string (date-time)
updatedAt
string (date-time)
Request
curl -X GET "https://api.ken.so/v1/campaign-images/string" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": {
    "imageKey": "string",
    "contactId": 812,
    "variableKey": "string",
    "status": "string",
    "errorCode": "string",
    "errorDetail": "string",
    "width": 1,
    "height": 1,
    "previewUrl": "https://example.com",
    "previewExpiresAt": "2026-09-23T15:02:11Z",
    "updatedAt": "2026-09-23T15:02:11Z"
  }
}