Docs menuPoints and tickets

API reference

Points and tickets

Tickets, redeeming, points, leagues and the graduation bonus.

My tickets

GET/api/v1/user/ticketsSigned in

How 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

200
{
  "success": true,
  "message": "Tickets fetched successfully",
  "data": number
}

Errors

StatusMessageWhen
401Connect your wallet and sign in first.No session cookie, or it expired.

Example

Terminal
curl -s -b cookies.txt "/api/v1/user/tickets"

Redeem rate

GET/api/v1/tickets/exchange-rateNo sign in

SOL 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

200
{
  "success": true,
  "message": "Exchange rate fetched successfully",
  "data": number
}

Example

Terminal
curl -s "/api/v1/tickets/exchange-rate"

Redeem tickets

POST/api/v1/tickets/payout/requestSigned in, CSRF header

Redeems 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

NameTypeWhat it is
ticketsnumberHow many to redeem, a whole number from 1.

Response

200
{
  "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

StatusMessageWhen
400Choose how many tickets to redeem.tickets is not a whole number from 1.
400Trade Zpad coins to get tickets.You hold no tickets.
400You have <your tickets> tickets.You asked for more tickets than you hold.
400Minimum claim amount is 0.005 SOL. Redeem more tickets at once.The redeem comes to less than 0.005 SOL.
400Your last redeem is waiting to be paid. You can redeem again once it is paid.A redeem is still PENDING.
401Connect your wallet and sign in first.No session cookie, or it expired.
403Rewards are not open yet. Your tickets, points and referral rewards are still being counted.Rewards are not open yet.
429Too many requests. Wait a moment and try again.Rate limit.

Example

Terminal
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

GET/api/v1/tickets/payout/in-progressSigned in

Whether 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

200
{
  "success": true,
  "message": "Payout progress fetched successfully",
  "data": {
    "inProgress": boolean,
    "expiresAt": 0,
    "payoutId": number | null,
    "sol": "<SOL>" | null,
    "requestedAt": "<ISO time>" | null
  }
}

Errors

StatusMessageWhen
401Connect your wallet and sign in first.No session cookie, or it expired.

Example

Terminal
curl -s -b cookies.txt "/api/v1/tickets/payout/in-progress"

Points per ticket

GET/api/v1/points/tickets-rateNo sign in

Points 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

200
{
  "success": true,
  "message": "Points to tickets rate fetched successfully",
  "data": 4
}

Example

Terminal
curl -s "/api/v1/points/tickets-rate"

Leagues

GET/api/v1/ranksNo sign in

The 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

200
{
  "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

Terminal
curl -s "/api/v1/ranks"

My points history

GET/api/v1/user/points/historySigned in

One 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.

200
{
  "success": true,
  "message": "Points history fetched successfully",
  "data": [
    {
      "timestamp": number,
      "points": number,
      "tradingVolume": number
    }
  ]
}

Errors

StatusMessageWhen
401Connect your wallet and sign in first.No session cookie, or it expired.

Example

Terminal
curl -s -b cookies.txt "/api/v1/user/points/history"

Claim the graduation bonus

POST/api/v1/user/creator-rewards/payout/requestSigned in, CSRF header

Claims 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

200
{
  "success": true,
  "message": "Claim received. It is paid by hand and shows once sent.",
  "data": {
    "payoutId": number,
    "sol": "<SOL>",
    "status": "PENDING",
    "kind": "creator"
  }
}

Errors

StatusMessageWhen
400Nothing to claim yet.No graduation bonus waits.
400Minimum claim amount is 0.005 SOL.Less than 0.005 SOL waits.
400Your last bonus claim is waiting to be paid. You can claim again once it is paid.A bonus claim is still PENDING.
401Connect your wallet and sign in first.No session cookie, or it expired.
403Rewards are not open yet. Your tickets, points and referral rewards are still being counted.Rewards are not open yet.
429Too many requests. Wait a moment and try again.Rate limit.

Example

Terminal
curl -s -X POST -b cookies.txt "/api/v1/user/creator-rewards/payout/request" \
  -H "x-zpad: zpad"

Bonus claim waiting

GET/api/v1/user/creator-rewards/payout/in-progressSigned in

Whether 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

200
{
  "success": true,
  "message": "Payout progress fetched successfully",
  "data": {
    "inProgress": boolean,
    "expiresAt": 0,
    "payoutId": number | null,
    "sol": "<SOL>" | null,
    "requestedAt": "<ISO time>" | null
  }
}

Errors

StatusMessageWhen
401Connect your wallet and sign in first.No session cookie, or it expired.

Example

Terminal
curl -s -b cookies.txt "/api/v1/user/creator-rewards/payout/in-progress"
Cookies On Our Website. We use cookies to keep you signed in and remember your settings.