> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shakesco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Set Event Details

> Create or update a token claim event

<span style={{display:"none"}}>For the complete documentation index, see [llms.txt](/llms.txt).</span>

Defines (or updates) an event that customers can claim tokens for. Events are the unit your backend hooks into: when something happens in your app (signup, birthday, purchase), you call [`/claim-tokens`](/api-reference/tokens/rewards/claim-tokens) referencing the event's name.

You can also manage events from the [Customer Rewards dashboard](https://users.shakesco.com/loyalty-program).

### Request Body

<ParamField body="event_name" type="string" required>
  Lowercase event identifier (e.g. `"signup"`, `"birthday"`, `"buy-ticket"`)
</ParamField>

<ParamField body="allocation" type="number" required>
  Tokens awarded per claim. Decimals allowed.
</ParamField>

<ParamField body="should_not_claim_twice" type="boolean" required>
  `true` for one-time events (signup, birthday). `false` for repeatable events (purchase, daily check-in).
</ParamField>

### Response

<ResponseField name="tx_hash" type="string">
  Reference identifier for the configuration
</ResponseField>

```javascript theme={null}
await fetch("https://tokens.shakesco.com/set-event-details", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    event_name: "signup",
    allocation: 5,
    should_not_claim_twice: true,
  }),
});
```

<ResponseExample>
  ```json 200 OK theme={null}
  { "tx_hash": "0xabc123..." }
  ```
</ResponseExample>
