Items¶
Resource description¶
Items (better known as products) are the things that can be sold using pretix. The item resource contains the following public fields:
Field |
Type |
Description |
---|---|---|
id |
integer |
Internal ID of the item |
name |
multi-lingual string |
The item’s visible name |
internal_name |
string |
An optional name that is only used in the backend |
default_price |
money (string) |
The item price that is applied if the price is not overwritten by variations or other options. |
category |
integer |
The ID of the category this item belongs to
(or |
active |
boolean |
If |
description |
multi-lingual string |
A public description of the item. May contain Markdown
syntax or can be |
free_price |
boolean |
If |
free_price_suggestion |
money (string) |
A suggested price, used as a default value if
|
tax_rate |
decimal (string) |
The VAT rate to be applied for this item (read-only,
set through |
tax_rule |
integer |
The internal ID of the applied tax rule (or |
admission |
boolean |
|
personalized |
boolean |
|
position |
integer |
An integer, used for sorting |
picture |
file |
A product picture to be displayed in the shop
(can be |
all_sales_channels |
boolean |
If |
limit_sales_channels |
list of strings |
List of sales channel identifiers the item is available on
if |
sales_channels |
list of strings |
DEPRECATED. Legacy interface, use |
available_from |
datetime |
The first date time at which this item can be bought
(or |
available_from_mode |
string |
If |
available_until |
datetime |
The last date time at which this item can be bought
(or |
available_until_mode |
string |
If |
hidden_if_available |
integer |
DEPRECATED The internal ID of a quota object, or |
hidden_if_item_available |
integer |
The internal ID of a different item, or |
require_voucher |
boolean |
If |
hide_without_voucher |
boolean |
If |
allow_cancel |
boolean |
If |
min_per_order |
integer |
This product can only be bought if it is included at
least this many times in the order (or |
max_per_order |
integer |
This product can only be bought if it is included at
most this many times in the order (or |
checkin_attention |
boolean |
If |
checkin_text |
string |
Text that will be shown if a ticket of this type is
scanned (or |
original_price |
money (string) |
An original price, shown for comparison, not used
for price calculations (or |
require_approval |
boolean |
If |
require_bundling |
boolean |
If |
require_membership |
boolean |
If |
require_membership_hidden |
boolean |
If |
require_membership_types |
list of integers |
Internal IDs of membership types valid if |
grant_membership_type |
integer |
If set to the internal ID of a membership type, purchasing this item will create a membership of the given type. |
grant_membership_duration_like_event |
boolean |
If |
grant_membership_duration_days |
integer |
If |
grant_membership_duration_months |
integer |
If |
validity_mode |
string |
If |
validity_fixed_from |
datetime |
If |
validity_fixed_until |
datetime |
If |
validity_dynamic_duration_minutes |
integer |
If |
validity_dynamic_duration_hours |
integer |
If |
validity_dynamic_duration_days |
integer |
If |
validity_dynamic_duration_months |
integer |
If |
validity_dynamic_start_choice |
boolean |
If |
validity_dynamic_start_choice_day_limit |
boolean |
If |
generate_tickets |
boolean |
If |
allow_waitinglist |
boolean |
If |
issue_giftcard |
boolean |
If |
media_policy |
string |
Policy on how to handle reusable media (experimental feature).
Possible values are |
media_type |
string |
Type of reusable media to work on (experimental feature). See Reusable media for possible choices. |
show_quota_left |
boolean |
Publicly show how many tickets are still available.
If this is |
has_variations |
boolean |
Shows whether or not this item has variations. |
variations |
list of objects |
A list with one object for each variation of this item. Can be empty. Only writable during creation, use separate endpoint to modify this later. |
├ id |
integer |
Internal ID of the variation |
├ value |
multi-lingual string |
The “name” of the variation |
├ default_price |
money (string) |
The price set directly for this variation or |
├ price |
money (string) |
The price used for this variation. This is either the
same as |
├ free_price_suggestion |
money (string) |
A suggested price, used as a default value if
|
├ original_price |
money (string) |
An original price, shown for comparison, not used
for price calculations (or |
├ active |
boolean |
If |
├ description |
multi-lingual string |
A public description of the variation. May contain |
├ checkin_attention |
boolean |
If |
├ checkin_text |
string |
Text that will be shown if a ticket of this type is
scanned (or |
├ require_approval |
boolean |
If |
├ require_membership |
boolean |
If |
├ require_membership_hidden |
boolean |
If |
├ require_membership_types |
list of integers |
Internal IDs of membership types valid if |
├ all_sales_channels |
boolean |
If |
├ limit_sales_channels |
list of strings |
List of sales channel identifiers the variation is available on
if |
├ sales_channels |
list of strings |
DEPRECATED. Legacy interface, use |
├ available_from |
datetime |
The first date time at which this variation can be bought
(or |
├ available_from_mode |
string |
If |
├ available_until |
datetime |
The last date time at which this variation can be bought
(or |
├ available_until_mode |
string |
If |
├ hide_without_voucher |
boolean |
If |
├ meta_data |
object |
Values set for event-specific meta data parameters. |
└ position |
integer |
An integer, used for sorting |
addons |
list of objects |
Definition of add-ons that can be chosen for this item. Only writable during creation, use separate endpoint to modify this later. |
├ addon_category |
integer |
Internal ID of the item category the add-on can be chosen from. |
├ min_count |
integer |
The minimal number of add-ons that need to be chosen. |
├ max_count |
integer |
The maximal number of add-ons that can be chosen. |
├ position |
integer |
An integer, used for sorting |
├ multi_allowed |
boolean |
Adding the same item multiple times is allowed |
└ price_included |
boolean |
Adding this add-on to the item is free |
bundles |
list of objects |
Definition of bundles that are included in this item. Only writable during creation, use separate endpoint to modify this later. |
├ bundled_item |
integer |
Internal ID of the item that is included. |
├ bundled_variation |
integer |
Internal ID of the variation of the item (or |
├ count |
integer |
Number of items included |
└ designated_price |
money (string) |
Designated price of the bundled product. This will be used to split the price of the base item e.g. for mixed taxation. This is not added to the price. |
meta_data |
object |
Values set for event-specific meta data parameters. |
Changed in version 4.0:
- The attributes
require_membership
,require_membership_types
,grant_membership_type
,grant_membership_duration_like_event
, grant_membership_duration_days
andgrant_membership_duration_months
have been added.
Changed in version 4.4: The attributes require_membership_hidden
attribute has been added.
Changed in version 4.16: The variations[x].meta_data
and variations[x].checkin_attention
attributes have been added.
The personalized
attribute has been added.
Changed in version 4.17: The validity_*
attributes have been added.
Changed in version 4.18: The media_policy
and media_type
attributes have been added.
Changed in version 2023.10: The checkin_text
and variations[x].checkin_text
attributes have been added.
The free_price_suggestion
and variations[x].free_price_suggestion
attributes have been added.
Changed in version 2023.10: The hidden_if_item_available
attributes has been added, the hidden_if_available
attribute has been
deprecated.
Notes¶
Please note that an item either always has variations or never has. Once created with variations the item can never change to an item without and vice versa. To create an item with variations ensure that you POST an item with at least one variation.
Also note that variations
, bundles
, and addons
are only supported on POST
. To update/delete variations,
bundles, and add-ons please use the dedicated nested endpoints. By design this endpoint does not support PATCH
and PUT
with nested variations
, bundles
and/or addons
.
Endpoints¶
- GET /api/v1/organizers/(organizer)/events/(event)/items/¶
Returns a list of all items within a given event.
Example request:
GET /api/v1/organizers/bigevents/events/sampleconf/items/ 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, "name": {"en": "Standard ticket"}, "internal_name": "", "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "default_price": "23.00", "original_price": null, "category": null, "active": true, "description": null, "free_price": false, "free_price_suggestion": null, "tax_rate": "0.00", "tax_rule": 1, "admission": false, "personalized": false, "issue_giftcard": false, "media_policy": null, "media_type": null, "meta_data": {}, "position": 0, "picture": null, "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hidden_if_available": null, "hidden_if_item_available": null, "require_voucher": false, "hide_without_voucher": false, "allow_cancel": true, "min_per_order": null, "max_per_order": null, "checkin_attention": false, "checkin_text": null, "has_variations": false, "generate_tickets": null, "allow_waitinglist": true, "show_quota_left": null, "require_approval": false, "require_bundling": false, "require_membership": false, "require_membership_types": [], "grant_membership_type": null, "grant_membership_duration_like_event": true, "grant_membership_duration_days": 0, "grant_membership_duration_months": 0, "validity_fixed_from": null, "validity_fixed_until": null, "validity_dynamic_duration_minutes": null, "validity_dynamic_duration_hours": null, "validity_dynamic_duration_days": null, "validity_dynamic_duration_months": null, "validity_dynamic_start_choice": false, "validity_dynamic_start_choice_day_limit": null, "variations": [ { "value": {"en": "Student"}, "default_price": "10.00", "price": "10.00", "original_price": null, "free_price_suggestion": null, "active": true, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_membership": false, "require_membership_types": [], "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hide_without_voucher": false, "description": null, "meta_data": {}, "position": 0 }, { "value": {"en": "Regular"}, "default_price": null, "price": "23.00", "original_price": null, "free_price_suggestion": null, "active": true, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_membership": false, "require_membership_types": [], "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hide_without_voucher": false, "description": null, "meta_data": {}, "position": 1 } ], "addons": [], "bundles": [] } ] }
- Query Parameters:
page (integer) – The page number in case of a multi-page result set, default is 1
search (string) – Filter the list by internal name or name of the item (substring search).
active (boolean) – If set to
true
orfalse
, only items with this value for the fieldactive
will be returned.category (integer) – If set to the ID of a category, only items within that category will be returned.
admission (boolean) – If set to
true
orfalse
, only items with this value for the fieldadmission
will be returned.tax_rate (string) – If set to a decimal value, only items with this tax rate will be returned.
free_price (boolean) – If set to
true
orfalse
, only items with this value for the fieldfree_price
will be returned.ordering (string) – Manually set the ordering of results. Valid fields to be used are
id
andposition
. Default:position
- Parameters:
organizer – The
slug
field of the organizer to fetchevent – The
slug
field of the event to fetch
- Status Codes:
200 OK – no error
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to view this resource.
- GET /api/v1/organizers/(organizer)/events/(event)/items/(id)/¶
Returns information on one item, identified by its ID.
Example request:
GET /api/v1/organizers/bigevents/events/sampleconf/items/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, "name": {"en": "Standard ticket"}, "internal_name": "", "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "default_price": "23.00", "original_price": null, "category": null, "active": true, "description": null, "free_price": false, "free_price_suggestion": null, "tax_rate": "0.00", "tax_rule": 1, "admission": false, "personalized": false, "issue_giftcard": false, "media_policy": null, "media_type": null, "meta_data": {}, "position": 0, "picture": null, "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hidden_if_available": null, "hidden_if_item_available": null, "require_voucher": false, "hide_without_voucher": false, "allow_cancel": true, "generate_tickets": null, "allow_waitinglist": true, "show_quota_left": null, "min_per_order": null, "max_per_order": null, "checkin_attention": false, "checkin_text": null, "has_variations": false, "require_approval": false, "require_bundling": false, "require_membership": false, "require_membership_types": [], "grant_membership_type": null, "grant_membership_duration_like_event": true, "grant_membership_duration_days": 0, "grant_membership_duration_months": 0, "validity_fixed_from": null, "validity_fixed_until": null, "validity_dynamic_duration_minutes": null, "validity_dynamic_duration_hours": null, "validity_dynamic_duration_days": null, "validity_dynamic_duration_months": null, "validity_dynamic_start_choice": false, "validity_dynamic_start_choice_day_limit": null, "variations": [ { "value": {"en": "Student"}, "default_price": "10.00", "price": "10.00", "original_price": null, "free_price_suggestion": null, "active": true, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_membership": false, "require_membership_types": [], "description": null, "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hide_without_voucher": false, "meta_data": {}, "position": 0 }, { "value": {"en": "Regular"}, "default_price": null, "price": "23.00", "original_price": null, "free_price_suggestion": null, "active": true, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_membership": false, "require_membership_types": [], "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hide_without_voucher": false, "description": null, "meta_data": {}, "position": 1 } ], "addons": [], "bundles": [] }
- Parameters:
organizer – The
slug
field of the organizer to fetchevent – The
slug
field of the event to fetchid – The
id
field of the item to fetch
- Status Codes:
200 OK – no error
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to view this resource.
- POST /api/v1/organizers/(organizer)/events/(event)/items/¶
Creates a new item
Example request:
POST /api/v1/organizers/bigevents/events/sampleconf/items/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript Content-Type: application/json { "id": 1, "name": {"en": "Standard ticket"}, "internal_name": "", "all_sales_channels": false, "limit_sales_channels": ["web"], "default_price": "23.00", "original_price": null, "category": null, "active": true, "description": null, "free_price": false, "free_price_suggestion": null, "tax_rate": "0.00", "tax_rule": 1, "admission": false, "personalized": false, "issue_giftcard": false, "media_policy": null, "media_type": null, "meta_data": {}, "position": 0, "picture": null, "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hidden_if_available": null, "hidden_if_item_available": null, "require_voucher": false, "hide_without_voucher": false, "allow_cancel": true, "generate_tickets": null, "allow_waitinglist": true, "show_quota_left": null, "min_per_order": null, "max_per_order": null, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_bundling": false, "require_membership": false, "require_membership_types": [], "grant_membership_type": null, "grant_membership_duration_like_event": true, "grant_membership_duration_days": 0, "grant_membership_duration_months": 0, "validity_fixed_from": null, "validity_fixed_until": null, "validity_dynamic_duration_minutes": null, "validity_dynamic_duration_hours": null, "validity_dynamic_duration_days": null, "validity_dynamic_duration_months": null, "validity_dynamic_start_choice": false, "validity_dynamic_start_choice_day_limit": null, "variations": [ { "value": {"en": "Student"}, "default_price": "10.00", "price": "10.00", "original_price": null, "free_price_suggestion": null, "active": true, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_membership": false, "require_membership_types": [], "all_sales_channels": false, "limit_sales_channels": ["web"], "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hide_without_voucher": false, "description": null, "meta_data": {}, "position": 0 }, { "value": {"en": "Regular"}, "default_price": null, "price": "23.00", "original_price": null, "free_price_suggestion": null, "active": true, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_membership": false, "require_membership_types": [], "all_sales_channels": false, "limit_sales_channels": ["web"], "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hide_without_voucher": false, "description": null, "meta_data": {}, "position": 1 } ], "addons": [], "bundles": [] }
Example response:
HTTP/1.1 201 Created Vary: Accept Content-Type: application/json { "id": 1, "name": {"en": "Standard ticket"}, "internal_name": "", "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "default_price": "23.00", "original_price": null, "category": null, "active": true, "description": null, "free_price": false, "free_price_suggestion": null, "tax_rate": "0.00", "tax_rule": 1, "admission": false, "personalized": false, "issue_giftcard": false, "media_policy": null, "media_type": null, "meta_data": {}, "position": 0, "picture": null, "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hidden_if_available": null, "hidden_if_item_available": null, "require_voucher": false, "hide_without_voucher": false, "allow_cancel": true, "min_per_order": null, "max_per_order": null, "generate_tickets": null, "allow_waitinglist": true, "show_quota_left": null, "checkin_attention": false, "checkin_text": null, "has_variations": true, "require_approval": false, "require_bundling": false, "require_membership": false, "require_membership_types": [], "grant_membership_type": null, "grant_membership_duration_like_event": true, "grant_membership_duration_days": 0, "grant_membership_duration_months": 0, "validity_fixed_from": null, "validity_fixed_until": null, "validity_dynamic_duration_minutes": null, "validity_dynamic_duration_hours": null, "validity_dynamic_duration_days": null, "validity_dynamic_duration_months": null, "validity_dynamic_start_choice": false, "validity_dynamic_start_choice_day_limit": null, "variations": [ { "value": {"en": "Student"}, "default_price": "10.00", "price": "10.00", "original_price": null, "free_price_suggestion": null, "active": true, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_membership": false, "require_membership_types": [], "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hide_without_voucher": false, "description": null, "meta_data": {}, "position": 0 }, { "value": {"en": "Regular"}, "default_price": null, "price": "23.00", "original_price": null, "free_price_suggestion": null, "active": true, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_membership": false, "require_membership_types": [], "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hide_without_voucher": false, "description": null, "meta_data": {}, "position": 1 } ], "addons": [], "bundles": [] }
- Parameters:
organizer – The
slug
field of the organizer of the event to create an item forevent – The
slug
field of the event to create an item for
- Status Codes:
201 Created – no error
400 Bad Request – The item could not be created due to invalid submitted data.
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to create this resource.
- PATCH /api/v1/organizers/(organizer)/events/(event)/items/(id)/¶
Update an item. You can also use
PUT
instead ofPATCH
. WithPUT
, you have to provide all fields of the resource, other fields will be reset to default. WithPATCH
, you only need to provide the fields that you want to change.You can change all fields of the resource except the
has_variations
,variations
and theaddon
field. If you need to update/delete variations or add-ons please use the nested dedicated endpoints.Example request:
PATCH /api/v1/organizers/bigevents/events/sampleconf/items/1/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript Content-Type: application/json Content-Length: 94 { "name": {"en": "Ticket"}, "default_price": "25.00" }
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "id": 1, "name": {"en": "Ticket"}, "internal_name": "", "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "default_price": "25.00", "original_price": null, "category": null, "active": true, "description": null, "free_price": false, "free_price_suggestion": null, "tax_rate": "0.00", "tax_rule": 1, "admission": false, "personalized": false, "issue_giftcard": false, "media_policy": null, "media_type": null, "meta_data": {}, "position": 0, "picture": null, "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hidden_if_available": null, "hidden_if_item_available": null, "require_voucher": false, "hide_without_voucher": false, "generate_tickets": null, "allow_waitinglist": true, "show_quota_left": null, "allow_cancel": true, "min_per_order": null, "max_per_order": null, "checkin_attention": false, "checkin_text": null, "has_variations": true, "require_approval": false, "require_bundling": false, "require_membership": false, "require_membership_types": [], "grant_membership_type": null, "grant_membership_duration_like_event": true, "grant_membership_duration_days": 0, "grant_membership_duration_months": 0, "validity_fixed_from": null, "validity_fixed_until": null, "validity_dynamic_duration_minutes": null, "validity_dynamic_duration_hours": null, "validity_dynamic_duration_days": null, "validity_dynamic_duration_months": null, "validity_dynamic_start_choice": false, "validity_dynamic_start_choice_day_limit": null, "variations": [ { "value": {"en": "Student"}, "default_price": "10.00", "price": "10.00", "original_price": null, "free_price_suggestion": null, "active": true, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_membership": false, "require_membership_types": [], "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hide_without_voucher": false, "description": null, "meta_data": {}, "position": 0 }, { "value": {"en": "Regular"}, "default_price": null, "price": "23.00", "original_price": null, "free_price_suggestion": null, "active": true, "checkin_attention": false, "checkin_text": null, "require_approval": false, "require_membership": false, "require_membership_types": [], "all_sales_channels": false, "limit_sales_channels": ["web"], "sales_channels": ["web"], "available_from": null, "available_from_mode": "hide", "available_until": null, "available_until_mode": "hide", "hide_without_voucher": false, "description": null, "meta_data": {}, "position": 1 } ], "addons": [], "bundles": [] }
- Parameters:
organizer – The
slug
field of the organizer to modifyevent – The
slug
field of the event to modifyid – The
id
field of the item to modify
- Status Codes:
200 OK – no error
400 Bad Request – The item could not be modified due to invalid submitted data
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to change this resource.
- DELETE /api/v1/organizers/(organizer)/events/(event)/items/(id)/¶
Delete an item.
Example request:
DELETE /api/v1/organizers/bigevents/events/sampleconf/items/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 modifyevent – The
slug
field of the event to modifyid – The
id
field of the item to delete
- Status Codes:
204 No Content – no error
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to delete this resource.