Campaigns

The campaigns plugin provides a HTTP API that allows you to create new campaigns.

Resource description

The campaign resource contains the following public fields:

Field

Type

Description

id

integer

Internal campaign ID

code

string

The URL component of the campaign, e.g. with code BAR the campaign URL would to be https://<server>/<organizer>/<event>/c/BAR/. This value needs to be globally unique and we do not recommend setting it manually. If you omit it, a random value will be chosen.

description

string

An internal, human-readable name of the campaign.

external_target

string

An URL to redirect to from the tracking link. To redirect to the ticket shop, use an empty string.

order_count

integer

Number of orders tracked on this campaign (read-only)

click_count

integer

Number of clicks tracked on this campaign (read-only)

Endpoints

GET /api/v1/organizers/(organizer)/events/(event)/campaigns/

Returns a list of all campaigns configured for an event.

Example request:

GET /api/v1/organizers/bigevents/events/sampleconf/campaigns/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript

Example response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 1,
      "code": "wZnL11fjq",
      "description": "Facebook",
      "external_target": "",
      "order_count:" 0,
      "click_count:" 0
    }
  ]
}
Query Parameters:
  • page – The page number in case of a multi-page result set, default is 1

Parameters:
  • organizer – The slug field of a valid organizer

  • event – The slug field of the event to fetch

Status Codes:
GET /api/v1/organizers/(organizer)/events/(event)/campaigns/(id)/

Returns information on one campaign, identified by its ID.

Example request:

GET /api/v1/organizers/bigevents/events/sampleconf/campaigns/1/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript

Example response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json

{
  "id": 1,
  "code": "wZnL11fjq",
  "description": "Facebook",
  "external_target": "",
  "order_count:" 0,
  "click_count:" 0
}
Parameters:
  • organizer – The slug field of the organizer to fetch

  • event – The slug field of the event to fetch

  • id – The id field of the campaign to fetch

Status Codes:
  • 200 OK – no error

  • 401 Unauthorized – Authentication failure

  • 403 Forbidden – The requested organizer/event/campaign does not exist or you have no permission to view it.

POST /api/v1/organizers/(organizer)/events/(event)/campaigns/

Create a new campaign.

Example request:

POST /api/v1/organizers/bigevents/events/sampleconf/campaigns/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
Content-Length: 166

{
  "description": "Twitter"
}

Example response:

HTTP/1.1 201 Created
Vary: Accept
Content-Type: application/json

{
  "id": 2,
  "code": "IfVJQzSBL",
  "description": "Twitter",
  "external_target": "",
  "order_count:" 0,
  "click_count:" 0
}
Parameters:
  • organizer – The slug field of the organizer to create a campaign for

  • event – The slug field of the event to create a campaign for

Status Codes:
PATCH /api/v1/organizers/(organizer)/events/(event)/campaigns/(id)/

Update a campaign. You can also use PUT instead of PATCH. With PUT, you have to provide all fields of the resource, other fields will be reset to default. With PATCH, you only need to provide the fields that you want to change.

Example request:

PATCH /api/v1/organizers/bigevents/events/sampleconf/campaigns/1/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
Content-Length: 34

{
  "external_target": "https://mywebsite.com"
}

Example response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

{
  "id": 2,
  "code": "IfVJQzSBL",
  "description": "Twitter",
  "external_target": "https://mywebsite.com",
  "order_count:" 0,
  "click_count:" 0
}
Parameters:
  • organizer – The slug field of the organizer to modify

  • event – The slug field of the event to modify

  • id – The id field of the campaign to modify

Status Codes:
  • 200 OK – no error

  • 400 Bad Request – The campaign could not be modified due to invalid submitted data.

  • 401 Unauthorized – Authentication failure

  • 403 Forbidden – The requested organizer/event/campaign does not exist or you have no permission to change it.

DELETE /api/v1/organizers/(organizer)/events/(event)/campaigns/(id)/

Delete a campaign and all associated data.

Example request:

DELETE /api/v1/organizers/bigevents/events/sampleconf/campaigns/1/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript

Example response:

HTTP/1.1 204 No Content
Vary: Accept
Parameters:
  • organizer – The slug field of the organizer to modify

  • event – The slug field of the event to modify

  • id – The id field of the campaign to delete

Status Codes: