Skip to content

New Official SDKs for TypeScript, Python and Go

SerpKite
Get API key

JSON vs Markdown SERPs: we measured tokens

The same Google results page as full JSON, compact JSON and Markdown, and how many LLM tokens each one costs. Estimates on a sample, with the method spelled out.

SerpKite team 3 min read

On this page

When an agent calls a search tool, the whole response lands in the model’s context. You pay for every token, and the model has to read past every one of them to find the three links that matter. So the format of a SERP response is not a detail: it’s a cost line and a quality lever.

We took one results page and rendered it three ways.

How to read these numbers

These are estimates on a single sample, not a benchmark. The sample is an abridged results page (an answer box, three organic results, two People Also Ask questions, three related searches) and tokens are estimated at about 4 characters per token, the same heuristic behind our X-Tokens-Estimate header. Real pages are bigger and real tokenizers differ. The ratios are what to take away.

The results

Format Estimated tokens vs pretty JSON
JSON, pretty-printed 668 baseline
JSON, minified 534 −20%
format=compact 248 −63%
format=markdown 240 −64%

On this sample, Markdown is about 64% smaller than pretty JSON and compact JSON about 63%. That’s in line with the 60–80% reduction we see on full pages, and with the 50–74% SerpApi reported when it shipped Markdown output in August 2026.

For scale: a full, unfiltered Google SERP as JSON can reach roughly 24,700 tokens once every widget, sitelink and thumbnail is included. At that size the format choice is the difference between a cheap tool call and an expensive one.

Where the tokens go in JSON

Most of a JSON SERP is structure, not content: repeated keys ("position", "title", "link", "snippet"), quotes, braces, indentation, and fields the model never uses (the request echo, meta, sitelinks, thumbnails). Minifying helps with whitespace but keeps every key.

format=json · ≈ 668 tokens
{
  "request": {
    "endpoint": "search",
    "engine": "google",
    "q": "best espresso machine 2026",
    "country": "us",
    "language": "en",
    "num": 10,
    "page": 1,
    "device": "desktop",
    "autocorrect": true
  },
  "results": [
    {
      "position": 1,
      "title": "The Best Espresso Machines of 2026, Tested and Reviewed",
      "link": "https://www.example.com/best-espresso-machines",
      "domain": "example.com",
      "displayed_link": "https://www.example.com › best-espresso-machines",
      "snippet": "We pulled more than 1,200 shots on 42 machines to find the best espresso makers for every budget, from beginner-friendly to prosumer.",
      "date": "Sep 12, 2026",
      "sitelinks": [
        {
          "title": "Best budget pick",
          "link": "https://www.example.com/best-espresso-machines#budget"
        },
        {
          "title": "Best dual boiler",
          "link": "https://www.example.com/best-espresso-machines#dual-boiler"
        }
      ]
    },
    {
      "position": 2,
      "title": "Espresso Machine Buying Guide (2026)",
      "link": "https://coffee.example.org/guides/espresso",
      "domain": "coffee.example.org",
      "displayed_link": "https://coffee.example.org › guides › espresso",
      "snippet": "Single boiler, heat exchanger or dual boiler? What the specs mean and which features are worth paying for."
    },
    {
      "position": 3,
      "title": "r/espresso: What machine would you buy in 2026?",
      "link": "https://www.reddit.com/r/espresso/comments/abc123/",
      "domain": "reddit.com",
      "displayed_link": "https://www.reddit.com › r › espresso",
      "snippet": "Discussion thread with 480 comments comparing entry-level and prosumer machines."
    }
  ],
  "people_also_ask": [
    {
      "question": "What is the #1 rated espresso machine?",
      "snippet": "Reviewers most often rank dual-boiler machines with PID control at the top…",
      "link": "https://www.example.com/best-espresso-machines"
    },
    {
      "question": "Is a $500 espresso machine worth it?",
      "snippet": "For daily drinkers, a mid-range machine usually pays for itself within a year…",
      "link": "https://coffee.example.org/guides/espresso"
    }
  ],
  "related_searches": [
    {
      "query": "best espresso machine under $500"
    },
    {
      "query": "best espresso machine for beginners"
    },
    {
      "query": "dual boiler vs heat exchanger"
    }
  ],
  "meta": {
    "request_id": "req_01J8ZK4M6Q2V7",
    "credits_used": 1,
    "cached": false,
    "engine": "google",
    "latency_ms": 942,
    "parse_quality": "ok",
    "resolved_urls": true
  }
}

Compact: JSON for tools

format=compact keeps JSON but shortens keys and drops fields agents rarely read. Use it when a program, not the model, consumes the output, or when your tool schema needs structured fields.

format=compact · ≈ 248 tokens
{
  "results": [
    {
      "title": "The Best Espresso Machines of 2026, Tested and Reviewed",
      "link": "https://www.example.com/best-espresso-machines",
      "snippet": "We pulled more than 1,200 shots on 42 machines to find the best espresso makers for every budget, from beginner-friendly to prosumer.",
      "date": "Sep 12, 2026"
    },
    {
      "title": "Espresso Machine Buying Guide (2026)",
      "link": "https://coffee.example.org/guides/espresso",
      "snippet": "Single boiler, heat exchanger or dual boiler? What the specs mean and which features are worth paying for."
    },
    {
      "title": "r/espresso: What machine would you buy in 2026?",
      "link": "https://www.reddit.com/r/espresso/comments/abc123/",
      "snippet": "Discussion thread with 480 comments comparing entry-level and prosumer machines."
    }
  ],
  "people_also_ask": [
    "What is the #1 rated espresso machine?",
    "Is a $500 espresso machine worth it?"
  ],
  "meta": {
    "request_id": "req_01J8ZK4M6Q2V7",
    "credits_used": 1,
    "cached": false,
    "engine": "google",
    "latency_ms": 942,
    "parse_quality": "ok",
    "resolved_urls": true
  }
}

Markdown: text for models

format=markdown renders the page as prose with numbered links. Models read it the way they read any document, and citations stay attached to URLs.

format=markdown · ≈ 240 tokens
# best espresso machine 2026

## Results
1. **The Best Espresso Machines of 2026, Tested and Reviewed** — example.com
   https://www.example.com/best-espresso-machines
   We pulled more than 1,200 shots on 42 machines to find the best espresso makers for every budget.
2. **Espresso Machine Buying Guide (2026)** — coffee.example.org
   https://coffee.example.org/guides/espresso
   Single boiler, heat exchanger or dual boiler? What the specs mean.
3. **r/espresso: What machine would you buy in 2026?** — reddit.com
   https://www.reddit.com/r/espresso/comments/abc123/

## People also ask
- **What is the #1 rated espresso machine?** Reviewers most often rank dual-boiler machines with PID control at the top…
- **Is a $500 espresso machine worth it?** For daily drinkers, a mid-range machine usually pays for itself within a year…

## Related searches
best espresso machine under $500 · best espresso machine for beginners · dual boiler vs heat exchanger

Going further with fields

fields= projects the response down to what you need. If your agent only needs titles, links and the knowledge graph:

{ "q": "best espresso machine 2026", "fields": "results.title,results.link,knowledge_graph" }

Every response also carries X-Tokens-Estimate, so you can log token cost per call and see what your tool actually costs you.

What we recommend

  • Agent reads the results directly: format=markdown.
  • Code post-processes the results: format=compact or fields=.
  • You store results or need every field: format=json.

Try all three on your own queries in the SERP token counter or the playground. The formats cost the same: 1 credit per page.

Related posts

Start building

Get your API key in 30 seconds

2,500 free credits, then 1,000 every month. No credit card.