- Issues grants to every member in memberList as one batch (joinOptions=add). The batch succeeds or fails as a whole (all-or-nothing).
- If any member does not exist, the whole batch is rejected with ACCOUNT_DOES_NOT_EXIST, and errorMessage lists the missing accounts.
- Quota check: if (grants already issued + members in this memberList) exceeds the event’s maxGrantCount, the whole batch is rejected with FREESPIN_QUOTA_FULL.
- If any member is already bound (allowDuplicateJoin=false) or has reached the per-member limit (max_grants_per_member), the whole batch is rejected with BAD_PARAMETERS, and the error message lists those members.
- If the event is invalid (not found, not active, expired or currency mismatch), the whole batch is rejected with FREESPIN_EVENT_NOT_FOUND or BAD_PARAMETERS.
- On success, grants is returned; each entry contains grantID and memberAccount.
Path
Headers
| Field | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Token we provide |
Content-Type | string | Yes | multipart/form-data |
Request parameters
| Field | Type | Required | Signed | Description |
|---|---|---|---|---|
channelID | number | Yes | ✓ | Channel ID (use 1 if you have no channels) |
eventID | string | Yes | ✓ | Event ID (24-character hex) |
memberList | string[] | Yes | ✓ | Member accounts (at least 1, no duplicates, no empty strings). In form-data, repeat the field once per value. |
sign | string | Yes | Signature. See Signature for how to generate it |
Response
Success (the HTTP status code is always 200; checkstatus.code for the result)
| Field | Type | Description |
|---|---|---|
data | object | |
data.grants | object[] | Grant results (only present when the whole batch succeeds) |
data.grants[].memberAccount | string | Member account |
data.grants[].grantID | string | Grant ID (24-character hex) |
status | object | Response status. See Response format |
