Skip to main content
Triggers let your application credit points to a wallet when a specific event occurs — a user crafts an item, completes a quest, makes a purchase, or any custom event you define. Triggers are configured in your dashboard under Automation. Each trigger has a unique key, a name, and a fixed points amount.

POST /api/sdk/trigger

Request

POST https://api.rewards.so/trigger
Authorization: Bearer rw_your_api_key
Content-Type: application/json
{
  "triggerKey": "craft_artifact",
  "walletAddress": "0xabc123...",
  "pointSystemId": "your-point-system-uuid"
}
FieldTypeRequiredDescription
triggerKeystringYesThe trigger key defined in your Automation dashboard
walletAddressstringYesThe wallet address to credit points to
pointSystemIdstringYesUUID of the target point system

Response 200

{
  "success": true,
  "pointsAdded": 10,
  "triggerKey": "craft_artifact",
  "walletAddress": "0xabc123..."
}

Errors

StatusMessageFix
400Missing required fieldsInclude all three fields in the body
403Trigger is inactiveEnable the trigger in the Automation dashboard
403Wallet is blacklistedWallet has been blacklisted in this point system
404Trigger not foundCheck the triggerKey matches exactly what’s in Automation
429Rate limit exceededMax 10 calls/min per key + wallet + trigger combination

Rate limiting

Each unique combination of (api_key, walletAddress, triggerKey) is limited to 10 calls per minute. This prevents infinite loops from misconfigured event handlers. When rate limited, the response includes a Retry-After header (in seconds).
HTTP/1.1 429 Too Many Requests
Retry-After: 42

Wallet auto-creation

If the walletAddress doesn’t exist yet in the point system, it is automatically created before the points are credited. You don’t need to register wallets in advance.

Code examples

await fetch("https://api.rewards.so/trigger", {
  method: "POST",
  headers: {
    "Authorization": "Bearer rw_your_api_key",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    triggerKey: "craft_artifact",
    walletAddress: "0xabc123...",
    pointSystemId: "your-point-system-uuid",
  }),
});

Setting up a trigger

  1. Dashboard → AutomationNew trigger
  2. Set an Event name (display only) and a Trigger key (used in API calls)
  3. Set the Points amount awarded per call
  4. The trigger is active by default — use the toggle to pause it without deleting it