Skip Main Navigation
Page Content

Cross Event Discounts

For returning developers, you may notice that many of our endpoints now start with the ‘/organizations/:organization_id/’ path. This is a result of changes we made in the first half of 2018 to support users associated with multiple organizations on Eventbrite. Please visit our Organizations page for further context on this change.

GET /organizations/:id/discounts/

Returns a paginated response of cross_event_discount for the specified organization.

Scopes:

  • event - searches single event discounts associated to given event_id (event_id required).
  • multi_events - searches for multi event discounts (ticket_group_id optional).
  • user - searches for all discounts associated to the given event_id (event_id required).

Parameters

Name Type Required Description
page_size integer No Number of records in each page.
order_by string No How to order the results (Valid choices are: code_asc, code_desc, discount_type_asc, discount_type_desc, start_asc, or start_desc)
type list No Filter discounts with a specific discount type set. This should be a comma delimited string of discount types. Valid discount type: coded, access, public, hold
ticket_group_id string No ID of the ticket group.
scope string No Type of discount scopes. (Valid choices are: event, multi_events, or user)
code_filter string No Search term to filter discounts by name.
code string No Search term to find discounts by code/name, in an exact match behavior.
event_id string No ID of the event. Will only search discounts of this event.

Errors

  • CODE_AND_CODE_FILTER_PROVIDED: Only one of code or code_filter may be provided at the same time.
  • INVALID
  • INVALID_USAGE_FOR_EVENT_ID: Event ID can not be used along with multi_events discount_scope.
  • ORDER_BY_NOT_SUPPORTED: code is the only field by which results may be ordered. Exactly one of code or code_filter filters must be provided for sorting to be allowed.

Example Request

GET
https://www.eventbriteapi.com/v3/organizations/12345/discounts/?scope=user&event_id=:event_id
  • Returns all single and cross event discounts associated with the event_id provided.
GET
https://www.eventbriteapi.com/v3/organizations/12345/discounts/?scope=event&event_id=:event_id
  • Returns all single event discounts associated with the event_id provided.
GET
https://www.eventbriteapi.com/v3/organizations/12345/discounts/?scope=multi_events&ticket_group_id=:ticket_group_id
  • Returns all cross event discounts associated with the ticket_group_id provided.
GET
https://www.eventbriteapi.com/v3/organizations/12345/discounts/?scope=event&event_id=:event_id&code=SUMMER2017
  • Returns all single event discounts associated with the event_id provided, that exactly match the code provided.
  • The code parameter must be at least two characters long.
GET
https://www.eventbriteapi.com/v3/organizations/12345/discounts/?scope=event&event_id=:event_id&code_filter=SUMM
  • Returns all single event discounts associated with the event_id provided and with codes that start with the code_filter parameter provided.
  • The code_filter parameter must be at least two characters long.

POST /organizations/:id/discounts/

Creates a discount. Returns the created cross_event_discount.

The following conditions define the span of the discount’s effect:

  • If event_id is provided and ticket_class_ids is not provided, a single-event discount for all the tickets in the event is created.
  • If both event_id and ticket_class_ids are provided, a single-event discount for the specified event tickets is created.
  • If ticket_group_id is provided, a cross-event discount for the specified ticket group is created.
  • If neither event_id nor ticket_group_id are provided, a discount that applies to all the events and all tickets of the organization is created. This means that the discount will apply to future events too.

Parameters

Name Type Required Description
discount.code string Yes Code used to activate discount.
discount.type string No The type of discount. (Valid choices are: access, hold, coded, or public)
discount.amount_off string No Fixed reduction amount.
discount.percent_off string No Percentage reduction.
discount.event_id string No ID of the event. Only used for single event discounts.
discount.ticket_class_ids list No IDs of tickets to limit discount to.
discount.quantity_available integer No Number of discount uses.
discount.start_date string No Allow use from this date. A datetime represented as a string in Naive Local ISO8601 date and time format, in the timezone of the event.
discount.start_date_relative integer No Allow use from this number of seconds before the event starts. Greater than 59 and multiple of 60.
discount.end_date string No Allow use until this date. A datetime represented as a string in Naive Local ISO8601 date and time format, in the timezone of the event.
discount.end_date_relative integer No Allow use until this number of seconds before the event starts. Greater than 59 and multiple of 60.
discount.ticket_group_id string No ID of the ticket group.
discount.hold_ids list No IDs of holds this discount can unlock.

Errors

  • AMOUNT_AND_PERCENT_OFF_PROVIDED: Cannot provide discount.amount_off and discount.percent_off at the same time.
  • END_DATE_AND_END_DATE_RELATIVE_PROVIDED: Cannot provide discount.end_date and discount.end_date_relative at the same time.
  • INVALID
  • MULTI_EVENT_DISCOUNT_NOT_SUPPORTED: Creating Public, Cross-Event Discounts is forbidden at this time.
  • PUBLIC_DISCOUNT_NOT_SUPPORTED
  • START_DATE_AND_START_DATE_RELATIVE_PROVIDED: Cannot provide discount.start_date and discount.start_date_relative at the same time.

Argument Errors

  • discount.code - REQUIRED: The discount.code is required.
  • discount.code - DUPLICATE: The discount.code already exists.
  • discount.code - INVALID: The discount.code has invalid characters.
  • discount.discount_type - REQUIRED: The discount.discount_type is required.
  • discount.amount_off - REQUIRED: The discount.amount_off is required if discount.percent_off is not present.
  • discount.amount_off - INVALID: The discount amount should be a decimal number.
  • discount.percent_off - REQUIRED: The discount.percent_off is required if discount.amount_off is not present.
  • discount.percent_off - INVALID: The discount percentage off should be a decimal number.
  • discount.start_date - INVALID: The value provided for discount.start_date does not conform to ISO 8601.
  • discount.end_date - INVALID: The value provided for discount.end_date does not conform to ISO 8601.

Notes

  • Public and coded discounts can have either an amount off or a percentage off, but not both. Access codes cannot have an amount or percentage off.
  • Public discounts should not contain apostrophes or non-alphanumeric characters (except “-”, “_”, ” ”, “(”, ”)”, “/”, and “”).
  • Coded discounts and access codes should not contain spaces, apostrophes or non-alphanumeric characters (except “-”, “_”, “(”, ”)”, “/”, and “”).
  • If the start_date and start_date_relative are null or empty, that means that the discount is usable effective immediately.
  • If the end_date and end_date_relative are null or empty, that means that the discount is usable until the event finishes.
  • If start_date_relative is provided, the discount will be usable after the given number of seconds prior to the event start.
  • If end_date_relative is provided, the discount will be usable until the given number of seconds prior to the event start. asd.

Example Request: Single event coded discount

POST https://www.eventbriteapi.com/v3/organizations/12345/discounts/

JSON Payload Examples:

{
    "discount": {
        "code": "summer2018",
        "event_id": "3339494556677",
        "type": "coded",
        "amount_off": "5.00"
    }
}
{
    "discount": {
        "code": "summer2018",
        "event_id": "3339494556677",
        "type": "coded",
        "percent_off": "15.00",
        "start_date": "2018-01-01T10:00:00",
        "end_date": "2018-01-01T10:00:00"
    }
}

Returns a cross_event_discount

Example Request: Cross event coded discount

POST https://www.eventbriteapi.com/v3/organizations/12345/discounts/

JSON Payload examples:

{
    "discount": {
        "code": "summer2019",
        "ticket_group_id": "4567",
        "type": "coded",
        "percent_off": "10.50"
    }
}
{
    "discount": {
        "code": "summer2019",
        "ticket_group_id": "4567",
        "type": "coded",
        "percent_off": "10.50",
        "start_date_relative": 3600,
        "end_date_relative": 86400
    }
}

Returns a cross_event_discount

GET /discounts/:discount_id/

Returns the cross_event_discount with the specified :discount_id.

Parameters

Takes no parameters

Errors

  • NOT_AUTHORIZED: The authenticated user does not have the required permissions to manage discounts.

POST /discounts/:discount_id/

Updates the discount with the specified :discount_id. Returns the updated cross_event_discount. The fields sent are the ones that are going to be updated, the fields that are not sent will be unchanged. The same conditions and notes for the discount creation apply.

Parameters

Name Type Required Description
discount.code string No Code used to activate discount.
discount.amount_off string No Fixed reduction amount.
discount.percent_off string No Percentage reduction.
discount.ticket_class_ids list No IDs of tickets to limit discount to.
discount.quantity_available integer No Number of discount uses.
discount.start_date string No Allow use from this date. A datetime represented as a string in Naive Local ISO8601 date and time format, in the timezone of the event.
discount.start_date_relative integer No Allow use from this number of seconds before the event starts. Greater than 59 and multiple of 60.
discount.end_date string No Allow use until this date. A datetime represented as a string in Naive Local ISO8601 date and time format, in the timezone of the event.
discount.end_date_relative integer No Allow use until this number of seconds before the event starts. Greater than 59 and multiple of 60.
discount.hold_ids list No IDs of holds this discount can unlock.

Errors

  • AMOUNT_AND_PERCENT_OFF_PROVIDED: Can not provide discount.amount_off and discount.percent_off at the same time.
  • END_DATE_AND_END_DATE_RELATIVE_PROVIDED: Can not provide discount.end_date and discount.end_date_relative at the same time.
  • INVALID
  • START_DATE_AND_START_DATE_RELATIVE_PROVIDED: Can not provide discount.start_date and discount.start_date_relative at the same time.

Argument Errors

  • discount.code - DUPLICATE: The discount.code already has been used.
  • discount.code - INVALID: The discount.code has invalid characters.
  • discount.amount_off - REQUIRED: The discount.amount_off is required if discount.percent_off is not present.
  • discount.amount_off - INVALID: The discount amount should be a decimal number.
  • discount.percent_off - REQUIRED: The discount.percent_off is required if discount.amount_off is not present.
  • discount.percent_off - INVALID: The discount percentage off should be a decimal number.
  • discount.start_date - INVALID: The value provided for discount.start_date does not conform to ISO 8601.
  • discount.end_date - INVALID: The value provided for discount.end_date does not conform to ISO 8601.

DELETE /discounts/:discount_id/

Deletes the cross_event_discount with the specified :discount_id. Only unused discounts can be deleted.

Warning: The discount cannot be restored after deletion.

Parameters

Takes no parameters

Errors

  • DISCOUNT_CANNOT_BE_DELETED: A discount that has been used cannot be deleted.
  • NOT_AUTHORIZED: The authenticated user does not have the required permissions to manage discounts.

POST /discounts/

Please use POST /organizations/:id/discounts/.

Warning

This endpoint is in the process of being deprecated.

Creates a discount. Returns the created cross_event_discount.

The following conditions define the span of the discount’s effect:

  • If event_id is provided and ticket_class_ids is not provided, a single-event discount for all the tickets in the event is created.
  • If both event_id and ticket_class_ids are provided, a single-event discount for the specified event tickets is created.
  • If ticket_group_id is provided, a cross-event discount for the specified ticket group is created.
  • If neither event_id nor ticket_group_id are provided, a discount that applies to all the events and all tickets of the user is created. This means that the discount will apply to future events also.

Notes:

  • Public and coded discounts can have either an amount off or a percentage off, but not both. Access codes cannot have an amount or percentage off.
  • Public discounts should not contain apostrophes or non-alphanumeric characters (except “-”, “_”, ” ”, “(”, ”)”, “/”, and “”).
  • Coded discounts and access codes should not contain spaces, apostrophes or non-alphanumeric characters (except “-”, “_”, “(”, ”)”, “/”, and “”).
  • If the start_date and start_date_relative are null or empty, that means that the discount is usable effective immediately.
  • If the end_date and end_date_relative are null or empty, that means that the discount is usable until the event finishes.
  • If start_date_relative is provided, the discount will be usable after the given number of seconds prior to the event start.
  • If end_date_relative is provided, the discount will be usable until the given number of seconds prior to the event start.
  • Discount for series events should be associated with the parent event, not its children.

Parameters

Name Type Required Description
discount.code string Yes Code used to activate discount.
discount.type string No The type of discount. (Valid choices are: access, hold, coded, or public)
discount.amount_off string No Fixed reduction amount.
discount.percent_off string No Percentage reduction.
discount.event_id string No ID of the event. Only used for single event discounts.
discount.ticket_class_ids list No IDs of tickets to limit discount to.
discount.quantity_available integer No Number of discount uses.
discount.start_date string No Allow use from this date. A datetime represented as a string in Naive Local ISO8601 date and time format, in the timezone of the event.
discount.start_date_relative integer No Allow use from this number of seconds before the event starts. Greater than 59 and multiple of 60.
discount.end_date string No Allow use until this date. A datetime represented as a string in Naive Local ISO8601 date and time format, in the timezone of the event.
discount.end_date_relative integer No Allow use until this number of seconds before the event starts. Greater than 59 and multiple of 60.
discount.ticket_group_id string No ID of the ticket group.
discount.hold_ids list No IDs of holds this discount can unlock.

Errors

  • AMOUNT_AND_PERCENT_OFF_PROVIDED: Cannot provide discount.amount_off and discount.percent_off at the same time.
  • END_DATE_AND_END_DATE_RELATIVE_PROVIDED: Cannot provide discount.end_date and discount.end_date_relative at the same time.
  • INVALID
  • MULTI_EVENT_DISCOUNT_NOT_SUPPORTED: Creating Public, Cross-Event Discounts is forbidden at this time.
  • PUBLIC_DISCOUNT_NOT_SUPPORTED
  • START_DATE_AND_START_DATE_RELATIVE_PROVIDED: Cannot provide discount.start_date and discount.start_date_relative at the same time.

Argument Errors

  • discount.code - REQUIRED: The discount.code is required.
  • discount.code - DUPLICATE: The discount.code already exists.
  • discount.code - INVALID: The discount.code has invalid characters.
  • discount.discount_type - REQUIRED: The discount.discount_type is required.
  • discount.amount_off - REQUIRED: The discount.amount_off is required if discount.percent_off is not present.
  • discount.amount_off - INVALID: The discount amount should be a decimal number.
  • discount.percent_off - REQUIRED: The discount.percent_off is required if discount.amount_off is not present.
  • discount.percent_off - INVALID: The discount percentage off should be a decimal number.
  • discount.start_date - INVALID: The value provided for discount.start_date does not conform to ISO 8601.
  • discount.end_date - INVALID: The value provided for discount.end_date does not conform to ISO 8601.

Example request

POST Create single event coded discount
https://www.eventbriteapi.com/v3/discounts/

JSON Data example:

{
    "discount": {
        "code": "summer2018",
        "event_id": "3339494556677",
        "type": "coded",
        "amount_off": "5.00"
    }
}
{
    "discount": {
        "code": "summer2018",
        "event_id": "3339494556677",
        "type": "coded",
        "percent_off": "15.00",
        "start_date": "2018-01-01T10:00:00",
        "end_date": "2018-01-01T10:00:00"
    }
}

Returns a cross_event_discount

POST Create cross event coded discount
https://www.eventbriteapi.com/v3/discounts/

JSON Data example:

{
    "discount": {
        "code": "summer2019",
        "ticket_group_id": "4567",
        "type": "coded",
        "percent_off": "10.50"
    }
}
{
    "discount": {
        "code": "summer2019",
        "ticket_group_id": "4567",
        "type": "coded",
        "percent_off": "10.50",
        "start_date_relative": 3600,
        "end_date_relative": 86400
    }
}

Returns a cross_event_discount

GET /users/:user_id/discounts/

Please use GET /organizations/:id/discounts/.

Warning

This endpoint is in the process of being deprecated.

Returns a paginated response of cross_event_discount for the specified user. This operation is only supported for the currently authenticated user. The alias me (/users/me/) may be used.

Scopes:

  • event - searches single event discounts associated to given event_id (event_id required).
  • multi_events - searches for multi event discounts (ticket_group_id optional).
  • user - searches for all discounts associated to the given event_id (event_id required).

Parameters

Name Type Required Description
page_size integer No Number of records in each page.
order_by string No How to order the results (Valid choices are: code_asc, code_desc, discount_type_asc, discount_type_desc, start_asc, or start_desc)
type list No Filter discounts with a specific discount type set. This should be a comma delimited string of discount types. Valid discount type: coded, access, public, hold
ticket_group_id string No ID of the ticket group.
scope string No Type of discount scopes. (Valid choices are: event, multi_events, or user)
code_filter string No Search term to filter discounts by name.
code string No Search term to find discounts by code/name, in an exact match behavior.
event_id string No ID of the event. Will only search discounts of this event.

Errors

  • CODE_AND_CODE_FILTER_PROVIDED: Only one of code or code_filter may be provided at the same time.
  • INVALID
  • INVALID_USAGE_FOR_EVENT_ID: Event ID can not be used along with multi_events discount_scope.
  • ORDER_BY_NOT_SUPPORTED: code is the only field by which results may be ordered. Exactly one of code or code_filter filters must be provided for sorting to be allowed.

Example Request

GET
https://www.eventbriteapi.com/v3/users/me/discounts/?scope=user&event_id=:event_id
  • Returns all single and cross event discounts associated with the event_id provided.
GET
https://www.eventbriteapi.com/v3/users/me/discounts/?scope=event&event_id=:event_id
  • Returns all single event discounts associated with the event_id provided.
GET
https://www.eventbriteapi.com/v3/users/me/discounts/?scope=multi_events&ticket_group_id=:ticket_group_id
  • Returns all cross event discounts associated with the ticket_group_id provided.
GET
https://www.eventbriteapi.com/v3/users/me/discounts/?scope=event&event_id=:event_id&code=SUMMER2017
  • Returns all single event discounts associated with the event_id provided, that exactly match the code provided.
  • The code parameter must be at least two characters long.
GET
https://www.eventbriteapi.com/v3/users/me/discounts/?scope=event&event_id=:event_id&code_filter=SUMM
  • Returns all single event discounts associated with the event_id provided and with codes that start with the code_filter parameter provided.
  • The code_filter parameter must be at least two characters long.