Create a campaign
Creates a reusable UTM configuration. name must be unique within the caller's workspace (409 on conflict). Every UTM field is optional and defaults to '' — omitted fields never block creation, they're simply left blank in the snapshot links copy from this campaign.
View as MarkdownAuthorization
bearer In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/campaigns" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "campaign": { "id": "string", "name": "string", "utmSource": "string", "utmMedium": "string", "utmCampaign": "string", "utmTerm": "string", "utmContent": "string", "archived": true, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }}List the workspace's campaigns
Campaigns in the caller's workspace, newest first, paginated — shared by everyone in the workspace, not just their creator (EAS-73). Archived campaigns are hidden unless archived=1. q searches name server-side.
Get a campaign
Not archived-filtered (unlike listCampaigns' default): an archived campaign stays readable forever so a link that still references it, and its analytics, keep resolving to something the caller can see.