API reference
Points and tickets
Tickets, redeeming, points, leagues and the graduation bonus.
- GET
/api/v1/user/tickets - GET
/api/v1/tickets/exchange-rate - POST
/api/v1/tickets/payout/request - GET
/api/v1/tickets/payout/in-progress - GET
/api/v1/points/tickets-rate - GET
/api/v1/ranks - GET
/api/v1/user/points/history - POST
/api/v1/user/creator-rewards/payout/request - GET
/api/v1/user/creator-rewards/payout/in-progress
My tickets
/api/v1/user/ticketsSigned inHow many tickets the signed in wallet holds.
- Sign in
- Needed (session cookie)
- CSRF header
- Not needed
- Cached
- Never
- Rate limit
- None of its own
Response
{
"success": true,
"message": "Tickets fetched successfully",
"data": number
}Errors
Example
curl -s -b cookies.txt "/api/v1/user/tickets"Redeem rate
/api/v1/tickets/exchange-rateNo sign inSOL paid per redeemed ticket right now: giveaway pool / tickets held x 0.8. 0 while nobody holds a ticket.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 15 seconds at the edge
- Rate limit
- None of its own
Response
{
"success": true,
"message": "Exchange rate fetched successfully",
"data": number
}Example
curl -s "/api/v1/tickets/exchange-rate"Redeem tickets
/api/v1/tickets/payout/requestSigned in, CSRF headerRedeems tickets at the current rate as one PENDING payout, and adds 4 points per ticket. The payout is sent by hand. tickets in the answer is what you hold after the redeem.
- Sign in
- Needed (session cookie)
- CSRF header
- Needed:
x-zpad: zpad - Cached
- Never
- Rate limit
- 6 a minute per wallet
Body
Response
{
"success": true,
"message": "Redeem received. It is paid by hand and shows once sent.",
"data": {
"payoutId": number,
"sol": "<SOL>",
"status": "PENDING",
"kind": "redeem",
"tickets": number
}
}Errors
Example
curl -s -X POST -b cookies.txt "/api/v1/tickets/payout/request" \
-H "x-zpad: zpad" \
-H "content-type: application/json" \
-d '{"tickets":10}'Redeem waiting
/api/v1/tickets/payout/in-progressSigned inWhether a redeem waits to be paid. It ends when the team has paid it.
- Sign in
- Needed (session cookie)
- CSRF header
- Not needed
- Cached
- Never
- Rate limit
- None of its own
Response
{
"success": true,
"message": "Payout progress fetched successfully",
"data": {
"inProgress": boolean,
"expiresAt": 0,
"payoutId": number | null,
"sol": "<SOL>" | null,
"requestedAt": "<ISO time>" | null
}
}Errors
Example
curl -s -b cookies.txt "/api/v1/tickets/payout/in-progress"Points per ticket
/api/v1/points/tickets-rateNo sign inPoints given for every ticket redeemed.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 15 seconds at the edge
- Rate limit
- None of its own
Response
{
"success": true,
"message": "Points to tickets rate fetched successfully",
"data": 4
}Example
curl -s "/api/v1/points/tickets-rate"Leagues
/api/v1/ranksNo sign inThe leagues with the points each one needs, and the points per SOL traded.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 15 seconds at the edge
- Rate limit
- None of its own
Response
{
"success": true,
"message": "Ranks fetched successfully",
"data": {
"ranks": [
{ "rank": "wood", "minPoints": "0" },
{ "rank": "bronze", "minPoints": "1" },
{ "rank": "silver", "minPoints": "100" },
{ "rank": "gold", "minPoints": "250" }
],
"rate": 10
}
}Example
curl -s "/api/v1/ranks"My points history
/api/v1/user/points/historySigned inOne row per day (UTC) with points earned, newest first, up to 400 days.
- Sign in
- Needed (session cookie)
- CSRF header
- Not needed
- Cached
- Never
- Rate limit
- None of its own
Response
timestamp is the start of the day, in seconds. tradingVolume is in SOL.
{
"success": true,
"message": "Points history fetched successfully",
"data": [
{
"timestamp": number,
"points": number,
"tradingVolume": number
}
]
}Errors
Example
curl -s -b cookies.txt "/api/v1/user/points/history"Claim the graduation bonus
/api/v1/user/creator-rewards/payout/requestSigned in, CSRF headerClaims every graduation bonus not claimed yet (2 SOL per graduated coin) as one PENDING payout, sent by hand.
- Sign in
- Needed (session cookie)
- CSRF header
- Needed:
x-zpad: zpad - Cached
- Never
- Rate limit
- 6 a minute per wallet
Response
{
"success": true,
"message": "Claim received. It is paid by hand and shows once sent.",
"data": {
"payoutId": number,
"sol": "<SOL>",
"status": "PENDING",
"kind": "creator"
}
}Errors
Example
curl -s -X POST -b cookies.txt "/api/v1/user/creator-rewards/payout/request" \
-H "x-zpad: zpad"Bonus claim waiting
/api/v1/user/creator-rewards/payout/in-progressSigned inWhether a graduation bonus claim waits to be paid.
- Sign in
- Needed (session cookie)
- CSRF header
- Not needed
- Cached
- Never
- Rate limit
- None of its own
Response
{
"success": true,
"message": "Payout progress fetched successfully",
"data": {
"inProgress": boolean,
"expiresAt": 0,
"payoutId": number | null,
"sol": "<SOL>" | null,
"requestedAt": "<ISO time>" | null
}
}Errors
Example
curl -s -b cookies.txt "/api/v1/user/creator-rewards/payout/in-progress"