[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)

# Log watched Trakt episodes in bulk

> Mark a run of episodes or movies as watched on Trakt with the right date, duplicates checked first. From Claude Code, n8n or a script.

Source: https://cotlet.dev/integrations/trakt-api-mcp-server/log-watched-episodes

You watched a weekend of episodes on a TV that does not sync to Trakt, and now every one of them has to be marked watched with the right date.

Cotlet does it in your own Trakt account with search\_titles, get\_history and add\_to\_history, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can Trakt do this on its own?

The Trakt REST API adds watched items with a watched\_at date, and Trakt documents that it does not check item and watched\_at for duplicates, so the client has to (checked 17 Oct 2026). Scrobble and Checkin are for live playback from apps. Neither has an official MCP server for agents.

## How you do it in Trakt today

1. Open the show on Trakt and go to the season.
2. Mark each episode as watched, setting the date of the watch when it was not today.
3. Open your history afterwards to check that every episode appears once.

## How to log watched Trakt episodes in bulk

Prompt

```
Mark Slow Horses season 4, episodes 1 to 3 as watched on 2026-10-10. Check my history first so nothing is logged twice.
```

1. 01  
### Find the episodes  
search\_titles resolves the show by title and year, then the season and episode numbers in your prompt are attached to it.
2. 02  
### Look for earlier plays  
get\_history for the show shows what is already logged, so an episode with a play on the same date is skipped and a rewatch on another date stays.
3. 03  
### Log with the real date  
add\_to\_history sends the remaining episodes with the watched\_at you gave. If you gave no date, the agent asks once before using today.
4. 04  
### Report and offer the undo  
The agent lists what it logged and what it skipped. A wrong batch is undone with remove\_from\_history.

### What you get back

Example data

```
Episodes requested: 3 (Slow Horses S4E1 to E3)
Logged 3, watched on 2026-10-10
Skipped as duplicates: 0
Not found: 0
```

### Other ways to ask

- Mark every episode of season 2 as watched, spread over the last two weeks.
- I rewatched this movie yesterday, add a second play.
- List what I logged in the last 7 days so I can check it.

## What Trakt allows, and what to know first

- Trakt documents that adding a show with no seasons adds every episode of that show to history, so name the season and episodes when you mean a few.
- A watched\_at date in the past is accepted, which is how Trakt expects past watches from media centers to be logged.
- Trakt does not verify that an item and watched\_at pair is unique; sending the same play twice creates two plays.
- Checkin is a separate manual action for what you are watching right now; the item switches to watched when its duration has elapsed.

add\_to\_history changes only your own Trakt data and reach no one else, so it runs without asking first.

Sources: [Trakt API: Introduction (history, scrobble, checkin)](https://docs.trakt.tv/docs/getting-started) · [Trakt API: About Checkin](https://docs.trakt.tv/docs/about-checkin) · [Trakt API: About Scrobble](https://docs.trakt.tv/docs/about-scrobble)

## Call add\_to\_history from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/trakt/histories \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"type":"episode","title":"Slow Horses","year":2022,"season":4,"episode":1,"watched_at":"2026-10-10T20:00:00Z"},{"type":"episode","title":"Slow Horses","year":2022,"season":4,"episode":2,"watched_at":"2026-10-10T20:50:00Z"},{"type":"episode","title":"Slow Horses","year":2022,"season":4,"episode":3,"watched_at":"2026-10-10T21:40:00Z"}]}'
```

Example response

```
{
"added": {
"movies": 0,
"episodes": 3
},
"skipped_duplicates": 0,
"not_found": []
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is trakt\_write → add\_to\_history. Example data.

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

## Trakt tools this automation uses

__Cotlet Trakt tools used to log watched Trakt episodes in bulk__
| Tool | Parameters |
| ---------------- | ------------------------------------- |
| search\_titles | query, type, year |
| get\_history | type, start\_at, end\_at, page, limit |
| add\_to\_history | items |

[All 15 Trakt tools with descriptions](https://cotlet.dev/integrations/trakt-api-mcp-server.md#tools)

## Frequently asked questions

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

Yes. You sign in to Trakt yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Trakt 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 Trakt automations

- [Add a list of titles to your Trakt watchlist](https://cotlet.dev/integrations/trakt-api-mcp-server/bulk-add-to-watchlist.md)
- [Trakt API and MCP server: every tool](https://cotlet.dev/integrations/trakt-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Trakt.

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

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

---

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.
