Verify and claim an incentive task
POST
/v1/incentive/verify
Request Body required
Task to verify
application/jsonOne of:
Option 1
Option 2
task_type
string
REQUIRED
Responses
200
OK
application/jsonalready
boolean
granted
object
ai_credits_granted
string
cu_granted
string
metadata
object
reason
string
reason_code
string
ReasonCode is the typed bucket the verifier set on a failure
(FailureClass enum, see incentive/types.go). Frontend should branch on
this typed value rather than substring-matching `Reason` copy.
Empty when Status="claimed".
status
string
"claimed" | "pending"
400
Bad Request
403
Forbidden
429
Too Many Requests
curl -X POST 'https://api.example.com/v1/incentive/verify' \ -H 'Authorization: Bearer YOUR_API_TOKEN' \ -H 'Content-Type: application/json' \ -d '{}'
const response = await fetch('https://api.example.com/v1/incentive/verify', { method: 'POST', headers: { "Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json" }, body: JSON.stringify({})});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://api.example.com/v1/incentive/verify', headers=headers, json={})print(response.json())
package mainimport ( "fmt" "io" "net/http" "strings")func main() { body := strings.NewReader(`{}`) req, _ := http.NewRequest("POST", "https://api.example.com/v1/incentive/verify", body) req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN") req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() result, _ := io.ReadAll(resp.Body) fmt.Println(string(result))}
200
Response
{ "already": true, "granted": { "ai_credits_granted": "<string>", "cu_granted": "<string>" }, "metadata": "<object>", "reason": "<string>", "reason_code": "<string>", "status": "<string>"}
API Playground
Try this endpoint
POST
/v1/incentive/verify
