Invite-only for now

Twitter screenshot API

One GET request with a post ID returns the image. Your AI agent does the same through MCP. Both use your saved style, so every image matches the ones you make in the editor.

Keys come with an invite. The full reference opens after you sign in.

  1. Send a request
  2. Get the image
  3. Or ask your agent

How it works

01

Create a key

Sign in and create a key on the API keys page. Give each script or agent its own key.

02

Send a request

GET /api/v1/screenshot/{id} with the key as a Bearer token. The response is the image.

03

Or connect your agent

Add the FeedShots MCP server. Your agent gets screenshot_tweet, screenshot_thread and get_tweet.

What the API gives you

Your saved style

Skip a parameter and it comes from your default style.

Threads in one call

GET /api/v1/thread/{id} returns the whole thread as one tall image.

Translation

Add tr=ru and the image shows a machine translation under the original.

Cache built in

The same request within 10 minutes comes from cache.

Clear errors

404 for a deleted or private post, 429 with Retry-After when a key goes too fast.

In your history

Every image made with a key shows up in your history, by key name.

REST and MCP

REST

  • GET /api/v1/screenshot/{id} — one post
  • GET /api/v1/thread/{id} — a whole thread as one tall image

Query parameters set the look: theme, bg, pad, ar, radius, metrics, scale from 1 to 4 (threads up to 2), format as jpeg or png, tr to translate.

MCP

claude mcp add --transport http feedshots \
  https://feedshots.com/api/mcp \
  --header "Authorization: Bearer fs_live_…"
  • screenshot_tweet: The image of a post and a download link that works for 24 hours
  • screenshot_thread: A whole thread as one tall image
  • get_tweet: The exact text and author of a post, to quote without retyping
60 requests a minute per keyOver it, you get 429 with Retry-After.
10 minutes of cacheThe same request again comes back at once.
24-hour download linksMCP links open without a key, so an agent can pass them on.
100 translations a dayPer person. A post translated within the last hour is free.
Up to 30 posts per threadA longer thread returns its first 30 with X-Thread-Truncated: true.

How do I get an API key?

Sign in, open API keys and create one. Send it as a Bearer token in the Authorization header.

What are the limits?

60 requests a minute per key. Go over it and you get 429 with a Retry-After header: wait that many seconds.

Which MCP clients work?

Any client that connects to a remote MCP server over HTTP and sends an Authorization header, for example Claude Code.

Can the API translate a post?

Yes. Add tr with a language code, like tr=ru. Each person gets 100 translations a day.

How long do download links work?

MCP returns a signed link that opens without a key for 24 hours.

More ways to use FeedShots

Have an invite?

Sign in with the email it was sent to. No invite yet? Ask for one.