For the complete documentation index, see llms.txt. This page is also available as Markdown.

Benefits

List limited-time benefits with pagination and filtering

get

Retrieve a paginated list of limited-time benefits (perks and codes). Supports filtering by status and sorting.

Query parameters
statusstring · enumOptionalPossible values:
sortBystring · enumOptionalDefault: expirationDatePossible values:
sortDirectionstring · enumOptionalDefault: ascPossible values:
limitinteger · max: 50OptionalDefault: 50
offsetinteger · max: 2147483647OptionalDefault: 0
Responses
200

Successful response

application/json
valuesone of[]Required
or
totalnumberRequired
limitnumberRequired
offsetnumberRequired
get/benefits/limited-time

List score-based benefits with pagination and filtering

get

Retrieve a paginated list of score-based benefits. By default, returns all benefits. Optionally filter by status, multiple category IDs, and user score.

⚠️ IMPORTANT: Due to OpenAPI UI limitations, the categoryIds parameter requires at least 2 items to work correctly. Single category selection will result in a validation error.

Query parameters
statusstring · enumOptionalPossible values:
categoryIdsinteger[]Optional
scoreinteger · min: 1 · max: 2800Optional
limitinteger · max: 50OptionalDefault: 50
offsetinteger · max: 2147483647OptionalDefault: 0
Responses
200

Successful response

application/json
totalnumberRequired
limitnumberRequired
offsetnumberRequired
get/benefits/score-based

List all benefits (admin only)

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
typestring · enumOptionalPossible values:
statusstring · enumOptionalPossible values:
categoryIdsinteger[]Optional
limitinteger · max: 50OptionalDefault: 50
offsetinteger · max: 2147483647OptionalDefault: 0
Responses
200

Successful response

application/json
valuesone of[]Required
or
or
totalnumberRequired
limitnumberRequired
offsetnumberRequired
get/benefits/admin/all

Get all categories

get
Query parameters
activeOnlybooleanOptionalDefault: false
Responses
200

Successful response

application/json
idnumberRequired
namestringRequired
displayNamestringRequired
sortOrdernumberRequired
isActivebooleanRequired
createdAtstringRequired
updatedAtstringRequired
get/benefits/categories

Create a new category

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestring · min: 1 · max: 100Required
displayNamestring · min: 1 · max: 100Required
sortOrderinteger · min: -9007199254740991 · max: 9007199254740991Optional
isActivebooleanOptional
Responses
200

Successful response

application/json
idnumberRequired
namestringRequired
displayNamestringRequired
sortOrdernumberRequired
isActivebooleanRequired
createdAtstringRequired
updatedAtstringRequired
post/benefits/categories

Update a category

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idinteger · max: 9007199254740991Required
Body
namestring · min: 1 · max: 100Optional
displayNamestring · min: 1 · max: 100Optional
sortOrderinteger · min: -9007199254740991 · max: 9007199254740991Optional
isActivebooleanOptional
Responses
200

Successful response

application/json
idnumberRequired
namestringRequired
displayNamestringRequired
sortOrdernumberRequired
isActivebooleanRequired
createdAtstringRequired
updatedAtstringRequired
put/benefits/categories/{id}

Delete a category

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idinteger · max: 9007199254740991Required
Responses
200

Successful response

application/json
idnumberRequired
namestringRequired
displayNamestringRequired
sortOrdernumberRequired
isActivebooleanRequired
createdAtstringRequired
updatedAtstringRequired
delete/benefits/categories/{id}

Create a new benefit

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
typestring · enumRequiredPossible values:
slugstring · min: 1 · max: 100RequiredPattern: ^[a-z0-9]+(?:-[a-z0-9]+)*~?$
shortDescriptionstring · min: 1 · max: 256Required
longDescriptionstring · min: 1Required
logoImageUrlstringOptional
carouselImageUrlstringOptional
secondaryLinkLabelstringOptional
secondaryLinkUrlstring · uriOptional
statusstring · enumOptionalDefault: INACTIVEPossible values:
issuerUserIdinteger · max: 2147483647Optional
isLockedbooleanOptionalDefault: false
primaryLinkLabelstringOptional
primaryLinkUrlstring · uriOptional
qualificationsany ofOptional
or
or
or
startDatestringOptional
expirationDatestringOptional
categoryIdinteger · max: 9007199254740991Optional
Responses
200

Successful response

application/json
or
or
post/benefits

Update an existing benefit

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
benefitIdinteger · max: 9007199254740991Required
Body
slugstring · min: 1 · max: 100OptionalPattern: ^[a-z0-9]+(?:-[a-z0-9]+)*~?$
shortDescriptionstring · min: 1 · max: 256Optional
longDescriptionstring · min: 1Optional
logoImageUrlstringOptional
carouselImageUrlstringOptional
primaryLinkLabelstringOptional
primaryLinkUrlstring · uriOptional
secondaryLinkLabelstringOptional
secondaryLinkUrlstring · uriOptional
qualificationsany ofOptional
or
or
or
statusstring · enumOptionalPossible values:
issuerUserIdinteger · max: 2147483647 · nullableOptional
isLockedbooleanOptional
startDatestringOptional
expirationDatestringOptional
categoryIdinteger · max: 9007199254740991Optional
Responses
200

Successful response

application/json
or
or
put/benefits/{benefitId}

Delete a benefit

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
benefitIdinteger · max: 9007199254740991Required
Responses
200

Successful response

application/json
or
or
delete/benefits/{benefitId}

Get benefit code info

get

Get information about exclusive access codes for a benefit. Returns code availability and the current user's claimed code if logged in.

Path parameters
benefitIdinteger · max: 9007199254740991Required
Responses
200

Successful response

application/json
hasAccessCodesbooleanRequired
totalCodesnumberRequired
claimedCodesnumberRequired
availableCodesnumberRequired
userClaimedCodestring · nullableRequired
get/benefits/{benefitId}/codes/info

Claim an exclusive access code

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
benefitIdinteger · max: 9007199254740991Required
Responses
200

Successful response

application/json
codestring · nullableRequired
alreadyClaimedbooleanRequired
post/benefits/{benefitId}/codes/claim

List exclusive access codes for a benefit

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
benefitIdinteger · max: 9007199254740991Required
Query parameters
filterstring · enumOptionalDefault: allPossible values:
limitinteger · max: 50OptionalDefault: 50
offsetinteger · max: 2147483647OptionalDefault: 0
Responses
200

Successful response

application/json
totalnumberRequired
limitnumberRequired
offsetnumberRequired
get/benefits/{benefitId}/codes

Add exclusive access codes to a benefit

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
benefitIdinteger · max: 9007199254740991Required
Body
codesstring[] · min: 1 · max: 10000Required
Responses
200

Successful response

application/json
addednumberRequired
duplicatesSkippednumberRequired
post/benefits/{benefitId}/codes

Delete all unclaimed codes for a benefit

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
benefitIdinteger · max: 9007199254740991Required
Responses
200

Successful response

application/json
deletednumberRequired
delete/benefits/{benefitId}/codes/unclaimed

Last updated