How ChatGPT Uses Screenshot APIs (And How to Build for AI Consumers)

2026-05-15 | Tags: [ai, chatgpt, api, screenshot, llms-txt]

How ChatGPT Uses Screenshot APIs (And How to Build for AI Consumers)

When we launched our Screenshot API, we expected developers to find us through documentation, tutorials, and API directories. Instead, our biggest user turned out to be ChatGPT.

At peak, 70% of our screenshot API traffic came from ChatGPT-User — OpenAI's bot that executes API calls on behalf of ChatGPT users. These users never visit our website. They never read our docs. They ask ChatGPT "take a screenshot of this website" and ChatGPT constructs the API call.

What ChatGPT-Relayed Traffic Looks Like

In our server logs, ChatGPT requests have a distinctive user agent:

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot

The requests come from Microsoft Azure IPs (20.169.x.x range) and use GET parameters — ChatGPT constructs URLs like:

/api/screenshot?url=https://example.com&format=webp&width=1280

ChatGPT knows our parameter names, valid values, and constraints. It learned them from our OpenAPI spec, our llms.txt file, and our API documentation pages.

What ChatGPT Users Screenshot

Analyzing our logs, the most common targets are:

  1. Google Gemini share links — Users asking ChatGPT to capture shared AI conversations
  2. Portfolio websites — Photographers, designers checking how their sites render
  3. News articles — Capturing specific article layouts
  4. Academic papers — Screenshotting research pages
  5. Figma prototypes — Capturing design previews

The pattern: users want a visual capture of something they're discussing with ChatGPT, but can't easily screenshot themselves (perhaps on mobile, or the page requires specific rendering).

How to Optimize Your API for AI Consumers

1. Deploy llms.txt

Create a /llms.txt file at your domain root with a plain-language description of your API:

# My API

> A free screenshot API that captures any webpage as PNG, JPEG, or WebP.

## Screenshot API
- Endpoint: GET /api/screenshot
- Parameters: url (required), format (png/jpeg/webp), width, height, full_page, delay
- No API key required for basic usage
- Rate limit: 10/day anonymous, 50/day with free API key

AI systems parse this as a structured overview of your capabilities.

2. Keep Your OpenAPI Spec Accurate

ChatGPT reads OpenAPI/Swagger specs. Every parameter, every enum value, every constraint you document is a parameter ChatGPT can use correctly. Missing or wrong documentation means broken API calls.

3. Return Helpful Error Messages

When ChatGPT gets an error, it relays the message to the user and often retries with different parameters. Make your errors actionable:

{
  "error": "Target site SSL error: EOF occurred in violation of protocol",
  "suggestions": [
    "The target website has SSL/TLS configuration issues",
    "This is a problem with the target site, not our API",
    "Try again - intermittent SSL errors sometimes resolve on retry"
  ]
}

Use correct HTTP status codes: 502 for upstream failures (not 500), 429 for rate limits, 400 for bad parameters.

4. Support GET Parameters

ChatGPT constructs URLs with query parameters. If your API only accepts POST with JSON bodies, ChatGPT can't easily use it. Support GET with query parameters for read operations.

5. Submit to API Directories

ChatGPT discovers APIs through directories like freepublicapis.com. These directories often have health-check bots that verify your API returns 200. Being listed means being discoverable by AI.

The Invisible User Problem

The challenge with AI-relayed traffic: the human user is invisible. They never visit your site, never create an account, never read your docs. They exist only as a pattern in your server logs — a ChatGPT-User request from an Azure IP.

This makes traditional conversion funnels useless. You can't email them. You can't show them a signup form. You can't track their journey through your site.

What you can do: - Include API info in response headers — ChatGPT users see headers in some interfaces - Optimize for the AI intermediary — Make your API easy for ChatGPT to recommend - Focus on power users — The humans who move past ChatGPT to direct integration are your real customers

Metrics That Matter

For AI-consumed APIs, traditional web analytics are misleading. Instead track: