[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Approve or decline StreamElements store redemptions

> Work through pending StreamElements Stream Store redemptions by your own rule, approve the clear ones and leave edge cases for you. Runs daily.

Source: https://cotlet.dev/integrations/streamelements-api-mcp-server/manage-store-redemptions

Viewers spend loyalty points in your Stream Store all week, and every redemption that needs your approval waits on the Redemptions page until you open it.

Cotlet does it in your own StreamElements account with list\_redemptions, list\_store\_items and resolve\_redemption, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=streamelements) [All StreamElements tools](https://cotlet.dev/integrations/streamelements-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can StreamElements do this on its own?

StreamElements has no rule-based approval for store redemptions (checked 17 Oct 2026). The API has PUT /store/{channel}/redemptions/{redemptionId} and the OAuth scope store:write, but the published spec shows an empty request body for it, and there is no official MCP server.

## How you do it in StreamElements today

1. In the dashboard, open Loyalty and select "Stream Store".
2. Click "Redemptions" to see previously redeemed items.
3. Search by item name, username or details, then approve or decline each redemption according to your settings.
4. Information a viewer filled in on the item's Requirements page shows up on the Redemptions page once provided.
5. "Redemption History" keeps a year of past redemptions, so a viewer who redeems the same item every day makes a long list to read.

## How to approve or decline StreamElements store redemptions

Prompt

```
Go through the pending Stream Store redemptions. Approve the ones where the viewer filled in the requirement, decline the rest, and list anything unclear for me.
```

1. 01  
### Read the pending list  
list\_redemptions returns redemptions that wait for a decision, newest last, with the item, the viewer and what they typed on the Requirements page.
2. 02  
### Apply your rule  
The agent checks each one against your rule, for example "approve if the viewer wrote a game name" or "decline anything with a link". It quotes the text it relied on.
3. 03  
### Resolve the clear ones  
resolve\_redemption approves or declines one redemption per call. Each call asks for your OK by default, because the viewer sees the result.
4. 04  
### Leave the unclear ones  
A redemption with an empty requirement or an item you did not mention stays pending, and the agent lists it with a one-line reason.

### What you get back

Example data

```
Pending redemptions: 9
Approved 6 (requirement filled in)
Declined 1 (link in the message)
Left for you 2:
- "Pick my next game" by luka_dev: requirement empty
- "Sound: Air Horn" by tess_g: item disabled since yesterday
```

### Other ways to ask

- Approve every "Sound: Air Horn" redemption today and list the others.
- Show redemptions from the last 7 days grouped by item, with the count for each, and change nothing.
- Decline redemptions whose requirement text is shorter than 3 words and tell me who they are.

## What StreamElements allows, and what to know first

- A Stream Store item is one of three types: Stream Perk, Sound Effect or Access-Code List, and Text-to-Speech is set up on a Stream Perk item.
- Each item has its own cost in loyalty points, a quantity, and global and user cooldowns, set on the Item Information page.
- The Requirements page can ask viewers for extra information before they can redeem, and the answer appears on the Redemptions page.
- Viewers redeem in chat with !redeem <item\_name>, an alias is !buy, the name is case-sensitive, and the command works on Twitch only.
- Items must be created in the Stream Store and enabled before viewers can redeem them.

resolve\_redemption asks for your OK by default. To run it daily without you, switch confirmation off for that tool in your dashboard.

Sources: [StreamElements Help: Stream Store, the complete guide](https://support.streamelements.com/hc/en-us/articles/10474564060818) · [StreamElements Docs: !redeem](https://docs.streamelements.com/chatbot/commands/default/redeem) · [StreamElements API docs (OpenAPI spec)](https://github.com/StreamElements/api-docs/blob/main/api.yaml)

## Call resolve\_redemption from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/streamelements/redemptions/rd_91a0f3/resolve \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action":"approve"}'
```

Example response

```
{
"redemption_id": "rd_91a0f3",
"item": "Pick my next game",
"viewer": "luka_dev",
"status": "approved"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is streamelements\_write → resolve\_redemption. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/streamelements-api-mcp-server.md#automations)

## StreamElements tools this automation uses

__Cotlet StreamElements tools used to approve or decline StreamElements store redemptions__
| Tool | Parameters |
| ------------------- | ----------------------------------- |
| list\_redemptions | status, item, viewer, limit, cursor |
| list\_store\_items | type, enabled, cursor |
| resolve\_redemption | redemption\_id, action |

[All 14 StreamElements tools with descriptions](https://cotlet.dev/integrations/streamelements-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect StreamElements to Cotlet?

Yes. You sign in to StreamElements yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get StreamElements once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More StreamElements automations

- [Update StreamElements chat commands every week](https://cotlet.dev/integrations/streamelements-api-mcp-server/update-chat-commands.md)
- [Reward your top StreamElements tippers with loyalty points](https://cotlet.dev/integrations/streamelements-api-mcp-server/reward-top-tippers-with-points.md)
- [StreamElements API and MCP server: every tool](https://cotlet.dev/integrations/streamelements-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to StreamElements.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with StreamElements.

[Sign up free](https://cotlet.dev/app/signup?app=streamelements)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
