Skip to main content
GET
/
discounts
/
{discount_id}
Get One Discount Code
curl --request GET \
  --url https://api.swoogo.com/api/v1/discounts/{discount_id} \
  --header 'Authorization: Bearer <token>'
{
  "id": 6095869,
  "parent_id": null,
  "event_id": 261977,
  "code": "SPRINGSALE2024",
  "type": "percentage",
  "capacity": 10,
  "min_group_size": 0,
  "registrants_per_use": 0,
  "sold_out_message": null,
  "percentage_discount": 15,
  "absolute_discount": 0,
  "applicable_line_items": [
    "session",
    "package"
  ],
  "apply_to_all": 1,
  "custom_fees": {
    "session": {
      "4147126": "315",
      "4147127": "337.5"
    }
  },
  "notes": "Discount for early bird registrants.",
  "created_at": "2026-04-28 21:00:15",
  "updated_at": "2026-04-28 21:00:15"
}

Authorizations

Authorization
string
header
required

OAuth 2.0 bearer token obtained from POST /oauth2/token. Tokens expire after 30 minutes. Include in the Authorization header as Bearer {access_token}.

Path Parameters

discount_id
integer
required

integer - required - The ID of the discount you want to get

Example:

1

Query Parameters

fields
string

string - optional - Comma separated list of fields you want to return

Example:

"absolute_discount,applicable_line_items,capacity,code,created_at,custom_fees,event_id,id,notes,parent_id,percentage_discount,sold_out_message,type,updated_at"

expand
string

string - optional - Comma separated list of expandable objects to include. Valid values: alternates, autopopulate, registrantCount, reservedCount.

Example:

"alternates,registrantCount"

Response

Get Discount Code

The discount payload returned by every read endpoint. Reflects Discount::fields() exactly — every property is always present in the response (values may be null).

id
integer
Example:

6095869

parent_id
integer | null

ID of the primary discount when this row is an alternate code; null (or 0) for primary codes.

Example:

null

event_id
integer
Example:

261977

code
string
Example:

"SPRINGSALE2024"

type
enum<string>
Available options:
percentage,
absolute,
specific
Example:

"percentage"

capacity
integer

Maximum number of times this discount can be used. 0 means unlimited.

Example:

10

min_group_size
integer
Example:

0

registrants_per_use
integer
Example:

0

sold_out_message
string | null
Example:

null

percentage_discount
number<float>
Example:

15

absolute_discount
number<float>
Example:

0

applicable_line_items
string[] | null
Example:
["session", "package"]
apply_to_all
enum<integer>

Returned as 0 or 1 (not a JSON boolean), even though the request accepts a boolean.

Available options:
0,
1
Example:

1

custom_fees
object

Merged set of line-item-specific fees for specific discounts. Outer key is the line-item type (reg_type, package, session), inner key is the line-item ID (numeric string), value is the fee as a string. Populated by custom_fees_update on write.

Example:
{
"session": { "4147126": "315", "4147127": "337.5" }
}
notes
string | null
Example:

"Discount for early bird registrants."

created_at
string

Timestamp when the discount was created. Formatted as YYYY-MM-DD HH:MM:SS.

Example:

"2026-04-28 21:00:15"

updated_at
string

Timestamp when the discount was last updated. Formatted as YYYY-MM-DD HH:MM:SS.

Example:

"2026-04-28 21:00:15"