Slop TV for developers.And their agents.
The public API of Slop TV by Spacefast, the endless AI-generated TV channel. Plain JSON over HTTPS. No key, no account.
Agents can read this page as Markdown at /developers/index.md, and the whole site at /llms.txt.
Slop TV's pages read the same JSON API that agents and developers can use. It is small, public and read-mostly. No key, no account.
- Base URL:
https://slop-tv.view.fast/api/ - Everything is JSON. Times are milliseconds since the Unix epoch. Durations are seconds.
- Errors look like
{"error": {"code": "not_found", "message": "No such clip."}}with a 4xx or 5xx status. Branch oncode. - Be polite. One read usually answers the question. If you must follow the channel, read at most once every 3 seconds.
- Act for a person. Don't crawl
/api/. Crawlers are asked to stay out inrobots.txt.
Read what is on
GET /api/poll?lite=1
Returns {serverTime, channel, items, pulled, falEnabled}. items is the channel's timeline from a minute ago to five minutes ahead. The item on air is the one where startAt <= serverTime < startAt + duration * 1000. Each item has id, kind (clip, ad or ident), title, startAt, duration, src (the video), poster, and for clips by (the requester's generated on-air name) and refId (the clip's id). Drop any item whose refId is in pulled.
Use lite=1. Without it, and on GET /api/schedule, the reader counts as a viewer, and viewers keep the studio rendering. An agent should not keep the lights on.
Read the clip library
GET /api/library?sort=new&limit=20: clips that aired.sortisnew,top(most reactions, then hearts, then airings) ortoday(the top of the last 24 hours).limitis 1 to 300. Filter withtag=orformat=.GET /api/today: the top ten clips made in the last 24 hours.GET /api/clips/{id}: one clip, or 404not_found.GET /api/tags: the tags and formats in use, with counts.GET /api/guide: a few airings per hour across the day, for a programme guide.GET /api/queue: requests waiting and rendering, shown by their on-air titles, plus typical render times.GET /api/health: whether the channel and its studio are up.
A clip has id, title, name (who asked, as a generated handle like sleepy-ocelot), videoUrl (MP4), posterUrl, duration, format, tags, airs, likes, reactions (laugh, wow, love, clap, total), createdAt and source (viewer, sequel, or seed for Spacefast's own shows, which also carry seed: true).
Share a clip
Every clip has a page at https://slop-tv.view.fast/c/{id}. Link previews read its Open Graph tags: the title, who asked for it, the video and its poster. Link to that page rather than to the MP4. The site can't be framed (frame-ancestors 'none'), so link to it instead of embedding it.
Request a clip
Only when a person asks you to. Each clip costs real money to render, and a daily budget caps them.
GET /api/me. The response sets a viewer cookie,sst_v. Keep it and send it back. The body is{"name": "..."}: the on-air name requests from this cookie air under.- Wait at least 3 seconds. A cookie younger than that gets 409
tune_in_first. POST /api/promptswithContent-Type: application/json, the cookie, and{"text": "an idea for fifteen seconds of TV"}. The text is 3 to 400 characters.- 201 returns
{"prompt": {...}}with itsid, itsstatusandvetted(whether the standards desk has read it yet). - Follow it with
GET /api/mine?ids={id}(up to 20 ids, same cookie). Each item hasstatus(queued,generating,ready,rejected,failed,expiredorpulled), its place in line asposwhile queued, areasonwhen it didn't make it, and once vetted its on-airtitle. A ready clip has aired oncefirstAiredAt <= serverTime. A ready clip's page ishttps://slop-tv.view.fast/c/{id}.
The answers you will meet:
- 422
rejected: the standards desk turned it away. The message says why when it is safe to. Everything on air is PG-13. No real people, no real brands, no famous characters. - 429
rate_limited: one request every 30 seconds per viewer. - 429
too_many_open: three requests waiting per viewer at most. - 429
desk_said_no: five refusals pause a viewer for up to 15 minutes. - 429
queue_fullorbusy: the line is long. Try later. - 413
too_large: bodies are capped at 16 KB.
New requests are also capped site-wide, so a busy minute can say no to everyone. When the day's budget is spent, requests wait in line until the next day.
Votes, likes and reactions are for people watching, and they need a viewer who has been watching. They are not part of the agent API.
Phone or text the request line
People can call or text +1 412-557-4880 (US). A voice assistant called Harlan takes the request. Calls are recorded. Texts become requests too, and nothing is sent back. The same rules apply as on the web, plus three requests an hour and ten a day per number.
The request line talks to the channel over a private MCP endpoint that needs a key held by the phone provider. There is no public MCP server.
More
- The site, for agents: https://slop-tv.view.fast/llms.txt
- The homepage as Markdown: https://slop-tv.view.fast/index.md
- About: https://slop-tv.view.fast/about/
- Contact: https://slop-tv.view.fast/contact/