[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.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)

# Sleeper API and MCP server: Let your AI agent manage your Sleeper teams.

> Sleeper has a public API and no official MCP server (checked 28 Oct 2026). The API needs no token because it cannot change anything: no lineup, waiver claim, trade or chat message. Cotlet runs 13 Sleeper tools hosted, 6 of them writes, over MCP for agents and REST for scripts.

Set lineups, claim waivers, answer trades and read your leagues. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.

[MCP setup](https://cotlet.dev/integrations/sleeper-api-mcp-server.md#connect)
[REST API guide](https://cotlet.dev/integrations/sleeper-api-mcp-server.md#rest-api)

- Free 7-day trial, no card
- Unofficial, not affiliated with Sleeper
- Page: https://cotlet.dev/integrations/sleeper-api-mcp-server

## What can you automate in Sleeper?

- Bench starters who are ruled out
- Place FAAB waiver bids
- Answer trade offers
- Post the weekly league recap
- Read matchups and scores
- Clean up pending claims in every league

## Does Sleeper have an MCP server or an API?

- The API is free for non-commercial use; commercial use needs a license by email. Above about 1,000 calls a minute Sleeper may block your IP.
- Your pending waiver claims and open trade offers are private, so the API cannot list them either.
- Sleeper has no Zapier app, no n8n node and no webhooks. Approved partners such as FantasyPros sync leagues to read them.

| What you need | Sleeper API | GitHub MCP + your login | Cotlet |
|---|---|---|---|
| Read leagues, matchups and transactions | Yes, no token | Yes | Yes |
| See your pending claims and trade offers | No | One server, private API | Yes |
| Set lineups, bid, trade, post in chat | No, read-only | One server, off by default | Yes, asks before bids and trades |
| Runs with your computer off | Yes | Only if you host it | Yes, hosted |
| Allowed by Sleeper's terms | Yes, non-commercial | No, sections 11.1 and 11.3 | No, sections 11.1 and 11.3 |

Checked 28 Oct 2026. Sources: [Sleeper API documentation](https://docs.sleeper.com/), [Sleeper Support: How to Trade](https://support.sleeper.com/en/articles/3188802-how-to-trade), [Sleeper Support: How does FAAB bidding work?](https://support.sleeper.com/en/articles/1876040-how-does-faab-bidding-work), [Sleeper Terms of Service](https://sleeper.com/terms), [joscaz/sleeper-mcp on GitHub](https://github.com/joscaz/sleeper-mcp)

## How does Cotlet connect to Sleeper?

1. **Sign in to Sleeper.** Use your own account in its Cotlet Cloud Browser.
2. **Choose MCP or REST.** Connect your agent or create a Cotlet API key.
3. **Run your workflow.** Ask your agent or send an HTTP request.

We never keep your Sleeper password, and no bid, trade or chat message goes out until you approve it.

## Connect Sleeper to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

1. **Log in to Sleeper in a Cloud Browser.** Create a Cotlet account, open Sleeper in its Cloud Browser, log in with the account that manages your teams and press Enable for agents.
2. **Add the Cotlet address.** Put https://cotlet.dev/mcp/v1 into the MCP server or connector settings of your agent.
3. **Let the agent in.** Chat apps send you to a Cotlet sign-in page. Code editors, n8n and scripts take an API key from the console.

The same address, `https://cotlet.dev/mcp/v1`, carries Sleeper together with your other apps. Enabled Sleeper after you connected? Refresh the connector so the 13 tools appear.

Claude:

```
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-sleeper \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
```

ChatGPT:

```
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
```

Cursor:

```
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-sleeper": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
```

Codex:

```
# ~/.codex/config.toml
[mcp_servers.cotlet-sleeper]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
```

n8n:

```
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: sleeper_read
```

Make, Zapier:

```
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: sleeper_write
```

## How to use the Sleeper REST API

### Create your Cotlet API key

Create a Cotlet API key with access to Sleeper and its read operations. Store it as `COTLET_API_KEY` in your environment or automation platform's credential store.

Connect Sleeper in Cotlet and enable it for agents. Account access: A Sleeper account that manages a team in the league.

### Make your first Sleeper API request

REST:

```
curl https://cotlet.dev/api/v1/sleeper/leagues \
  -H "Authorization: Bearer $COTLET_API_KEY"
```

### Read leagues and apply the operation limits

A successful REST call puts the tool output in `result`. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt:

```
{
  "status": "success",
  "app": "sleeper",
  "tool": "list_leagues",
  "result": {
    "leagues": [
      {
        "league_id": "L-5521",
        "name": "Sunday Scaries",
        "team": "Gridiron Ghosts",
        "status": "In season"
      },
      {
        "league_id": "L-7710",
        "name": "Office Dynasty",
        "team": "Waiver Wire Wizards",
        "status": "In season"
      }
    ]
  }
}
```

Returns each league with its name, the team you manage and its status. The agent calls this first to get the league_id the other tools take.

Leagues you archived are not listed.

Keep the same selection when continuing a list. Compare changed record values as well as identifiers when refreshing your destination.

### Sleeper workflows for agents and automations

| Tool | Connect through | Example workflow |
|---|---|---|
| n8n | HTTP Request | Read your starters and bench in a league. Use `get_lineup` in your configured content report. |
| Make | HTTP > Make a request | Read the matchups and scores of one league week. Use `list_matchups` in your configured content report. |
| Python or Node.js | REST API | Read the processed adds, drops and trades of a league. Use `list_transactions` in your configured content report. |

Send `Authorization: Bearer <your Cotlet API key>` in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads Sleeper; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The [API and MCP reference](https://cotlet.dev/integrations/sleeper-api-mcp-server.md#tools) lists operations and inputs. The [REST API guide](https://cotlet.dev/docs/api.md) explains authentication, errors and approvals.

## Sleeper API endpoints and MCP tools

### Leagues, lineups and matchups

Start with list_leagues for the league ids. set_lineup refuses a player whose game has kicked off, because Sleeper locks him.

- **List leagues** (`list_leagues`, read): List the leagues the signed-in account plays in.
- **Get lineup** (`get_lineup`, read): Read your starters and bench in a league.
- **List matchups** (`list_matchups`, read): Read the matchups and scores of one league week.
- **Set lineup** (`set_lineup`, write): Move players between starting slots and the bench.

### Waivers and free agents

Bids are blind until waivers process, at the time your commissioner set. A claim can be cancelled until then.

- **List free agents** (`list_free_agents`, read): List players that no team in the league has rostered.
- **List transactions** (`list_transactions`, read): Read the processed adds, drops and trades of a league.
- **List waiver claims** (`list_waiver_claims`, read): List your pending waiver claims in a league.
- **Submit waiver claim** (`submit_waiver_claim`, write, asks first): Claim a player on waivers, with a drop and a bid.
- **Cancel waiver claim** (`cancel_waiver_claim`, write): Cancel one of your pending waiver claims.

### Trades and league chat

Trades can carry players, draft picks and FAAB dollars. Every manager in the league reads the chat.

- **List trade offers** (`list_trade_offers`, read): List trade offers sent to you or by you.
- **Propose trade** (`propose_trade`, write, asks first): Send a trade offer to one or more teams in a league.
- **Respond to trade offer** (`respond_to_trade`, write, asks first): Accept or decline a trade offer made to you.
- **Send league message** (`send_league_message`, write, asks first): Post a message in a league chat.

Inputs, REST path and example response of every tool: https://cotlet.dev/integrations/sleeper-api-mcp-server#tools

## Who can see my Sleeper session, and how do I revoke it?

- **What we store.** Your logged-in Sleeper profile, encrypted with AES-256-GCM, in Finland. Not the password.
- **What your agent gets.** The 13 Sleeper tools. Never the session token.
- **What the session sees.** Your leagues, rosters, pending claims, trade offers and league chats.
- **What no tool touches.** Sleeper Picks, the wallet, deposits, league dues, password and settings.
- **If Sleeper asks to verify.** You type the code from Sleeper yourself. We never do.
- **How to cut access.** Disable Sleeper for agents, reset the browser, or log out in Sleeper.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory ([live results](https://cotlet.dev/security.md)). There is no SOC 2 report or third-party pentest yet.

## Is it against Sleeper's terms? Account safety

> A user's provision of credentials, tokens, or authorization to a third-party does not constitute authorization from Sleeper, and Sleeper's authorization must be obtained independently and directly from Sleeper.
>
> [Sleeper General Terms of Use, section 11.3, last updated 6 Oct 2026](https://support.sleeper.com/en/articles/5486620-general-terms-of-use)

Section 11.1 bans letting "any application, platform, service, or tool not developed or expressly authorized by Sleeper" log into your account on your behalf without written consent, and bans access "through any automated means, bot, script". Section 11.2 lets Sleeper suspend the account, revoke its sessions and block the tool. Cotlet has no agreement with Sleeper, so using it breaks these sections, and the risk sits with your account. We found no public case of a Sleeper account closed for automation or a third-party tool (checked 28 Oct 2026).

What we do to keep the risk down:

- Your own Sleeper account, logged in by you
- One Cloud Browser with steady cookies, no new login per call
- Waiver bids, trades and chat posts wait for your OK (4 tools)
- No tool enters Picks contests, moves money or touches the wallet
- If Sleeper objects, we pause the Sleeper tools for everyone within 24 h

> The terms also ban use "for the benefit of any third-party or to send unsolicited communications". Run the agent only for teams you manage, and post only in leagues you play in.

## What happens when Sleeper changes?

- **12 h** between tests of the Sleeper reads and lineup moves
- **24 h** between tests of bids, trades and chat posts others see
- **$0** for a call to a Sleeper tool paused for repair

Sleeper ships app updates through the season. When a screen or field moves, we fix the tool on our side and the same prompt keeps working. [status.cotlet.dev](https://status.cotlet.dev) watches the site, console and API every 3 minutes.

## Approvals, undo and mistakes

1. **Reads the free agents.** Players on waivers are marked, locked players left out.
2. **Checks your claims.** An open claim on the same player stops the run.
3. **Waits for your OK.** The bid and the drop show up in your Cotlet console.
4. **Reports the claim.** Claim id, bid and drop, pending until waivers run.

| Action | Undo |
|---|---|
| Set lineup | One more call, until the player's game kicks off |
| Submit waiver claim | Cancel or edit it under Team, Transactions before waivers run |
| Cancel waiver claim | Place the claim again before waivers run |
| Propose or accept a trade | Once all sides accept, only the commissioner can veto or reverse it |
| Send league message | No, the tool cannot edit or remove it |

4 of 13 tools ask first: submit_waiver_claim, propose_trade, respond_to_trade and send_league_message. Lineup moves and claim cancels reach no other manager, so they run at once. For a Sunday morning run you can switch the wait off per tool.

> An accepted trade sits in the league review period, then Sleeper processes it at midnight PST. With the wait set to none it goes through at once.

MCP call:

```
{
  "name": "submit_waiver_claim",
  "arguments": {
    "league_id": "L-5521",
    "add_player_id": "P-3301",
    "drop_player_id": "P-1180",
    "bid": 12
  }
}
```

REST:

```
curl -X POST https://cotlet.dev/api/v1/sleeper/leagues/L-5521/waiver-claim/submit \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"add_player_id":"P-3301","drop_player_id":"P-1180","bid":12}'
```

Response:

```
{
  "league_id": "L-5521",
  "claim_id": "C-9041",
  "add": "Tyrese Boone",
  "drop": "Mo Vance",
  "bid": 12,
  "status": "pending"
}
```

Scripts and cron jobs call the same tools over REST at `/api/v1/sleeper`, with one key and one price. A claim on a player who is no longer available fails, and a failed call costs nothing. The tools table lists the REST path of each tool.

## How much does the Sleeper MCP server cost?

**About $15 a month** in season, for a manager in 3 leagues, 2,580 credits. Sleeper leagues stay free to play.

| Job | Calls | Credits |
|---|---|---|
| Lineup check in 3 leagues, weekly | 7 × 4 | 280 |
| Sunday injury swap before kickoff | 5 × 4 | 200 |
| FAAB bids after the games, weekly | 8 × 4 | 320 |
| Answer a trade offer, twice a week | 2 × 8 | 160 |
| Tuesday recap in league chat | 3 × 4 | 120 |
| Cloud Browser, 30 days |  | 1,500 |
| Total |  | 2,580 |

- Free 7-day trial, no card
- 10 credits per successful call, MCP or REST
- 50 credits a day for the Cloud Browser
- Failed calls cost nothing

The month is our example: 3 leagues, 108 calls, during the NFL season. Sleeper publishes no figure for leagues per manager. Five leagues roughly double the lineup and waiver rows. Dollars at the $29 pack rate.

## Sleeper MCP server on GitHub, Zapier or hosted: which to use

| Option | What it does | Where it stops |
|---|---|---|
| [joscaz/sleeper-mcp](https://github.com/joscaz/sleeper-mcp) | 28 read tools on the public API plus 11 account tools on Sleeper's private GraphQL: lineups, IR, waivers, trades, league chat. 3 stars, MIT, last commit 17 Oct 2026. | You host it with your Sleeper token or password in its config. Writes are off until you remove --read-only. Same terms problem as ours. |
| [FloSchl8/sleeper-mcp](https://github.com/FloSchl8/sleeper-mcp), [sourknives/sleeper-mcp-server](https://github.com/sourknives/sleeper-mcp-server) | Read the public API: leagues, players, matchups, drafts. 29 and 25 stars. | No writes and no pending claims. Last commits 5 Oct 2025 and 11 Aug 2026. |
| [FantasyBot](https://www.fantasybot.ai/mcp) | ChatGPT app and Claude connector with 15 read-only tools for ESPN, Yahoo and Sleeper. Needs only your Sleeper username. | "Can never make a trade, drop a player, or change your lineup." |
| FantasyPros league sync | Rankings and advice for your synced league, as an approved Sleeper partner. | Advice only; you make the moves in Sleeper. |

For questions about your league, a free read-only server or FantasyBot is enough and stays inside Sleeper's API rules. Moves need a logged-in session: joscaz/sleeper-mcp gives you that on your own computer, Cotlet gives it hosted, with approvals before bids and trades.

## Who runs Cotlet

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Sleeper tools go to contact@cotlet.dev.

## Sleeper API and MCP: questions

### How do I get access?

Create a free account at https://cotlet.dev, open Sleeper under Integrations in the console and log in to Sleeper in its Cloud Browser. The trial starts with your first app, no card asked.

### How do I connect Sleeper to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Sleeper once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Sleeper account through Cotlet, in their phone apps too.

### What can ChatGPT do in Sleeper?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Sleeper: set the weekly lineup; bid on waiver wire targets; answer trade offers. You ask in plain words, and anything that reaches other people waits for your OK first.

### Do Sleeper's terms allow automated access to my account?

Sleeper's Terms of Service say users may not access or extract data through automated means, bots or scripts, and that no third party may access the Services through a user's account without a written agreement. An agent acting in your session can fall under that, so use it on your own account at your own risk. For read-only data, the public API is the route Sleeper documents (checked 28 Oct 2026).

### Does it work with Sleeper Picks or the Sleeper wallet?

No. The tools cover season-long fantasy leagues only. Sleeper Picks is a separate real-money game in the Sleeper Support Center, and the tools do not enter contests, move money or touch the wallet.

### Can the agent see other managers' waiver bids?

Not before waivers run: Sleeper bids are blind. After they process, Sleeper shows every bid for a player to the whole league, and list_transactions returns the winning move.

### Can I use the free Sleeper API instead?

For reading, yes: leagues, rosters, matchups and transactions need no token. It cannot set a lineup, bid, trade or post, and it does not show your pending claims or offers. Commercial use needs a license from Sleeper.

### Does Sleeper have webhooks?

No. Nothing tells an agent that a trade offer arrived. Run it on a schedule instead, for example list_trade_offers every evening.

### Is the MCP server different from the REST API?

Only the door differs. Both carry the same 13 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.

### Is Cotlet affiliated with Sleeper?

No. Cotlet is independent and not affiliated with Sleeper or Blitz Studios, Inc.

### Can I use the Sleeper API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.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.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

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.
