Skip to navigation

Download the CSV template

View as Markdown

Returns a one-line CSV with the recommended headers (phone_number,name,email,whatsapp_number) as the attachment contacts-template.csv. Add any extra columns you want as metadata, fill it in with numbers that include the country code, and upload it with POST /api/campaigns/{campaignId}/contacts/upload-preview.

The template is static: campaignId is neither validated nor looked up.

Access

  • Required scope: read (or write/full).
  • Rate limit: General API — 120 requests/min per workspace on Starter or with no active plan, 200 on Growth, 300 on Business, 600 on Enterprise. The 5/min contacts-import limit does not apply to this route. See Rate limits.
  • Plan: Available on every plan.

Authentication

AuthorizationBearer

Workspace API key: jl_ followed by 64 lowercase hex characters, created by the workspace owner in the dashboard (Settings → API Keys) and sent as Authorization: Bearer jl_.... The plaintext is shown once, at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys.

ScopeGET / HEADPOST / PUT / PATCH / DELETEAdmin-only routes
readYesNoNo
writeYesYesNo
fullYesYesYes

Operations restricted to admins or owners reject keys without the full scope with 403, and say so in their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret — that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds. See Authentication.

Path parameters

campaignIdstringRequiredformat: "uuid"
Any campaign id. It is not validated or looked up, so the template is returned for any value.

Response headers

Content-DispositionstringOptional

Always an attachment named contacts-template.csv.

Response

The CSV template.

Errors

401
Unauthorized Error
403
Forbidden Error
429
Too Many Requests Error