Skip to Content

POST /api/v1/poap/claim

Claim a POAP link. Each user can claim exactly one. Uses SELECT FOR UPDATE SKIP LOCKED to prevent race conditions.

Authentication: Required

Sample Request

curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \ "https://api.grails.app/api/v1/poap/claim"

Response

// 200 OK { "success": true, "data": { "link": "https://poap.xyz/claim/abc123", "claimed_at": "2026-04-08T00:00:00.000Z" }, "meta": { "timestamp": "2026-04-08T00:00:00.000Z", "version": "1.0.0" } }

Error Responses

StatusCodeDescription
400ALREADY_CLAIMEDUser has already claimed (includes previous link)
401UNAUTHORIZEDNot authenticated
404NO_LINKS_AVAILABLENo POAP links remaining
500CLAIM_FAILEDFailed to claim
Last updated on