# Changelog · Onto
> What's shipped on Onto — a hand-curated log of features, improvements and fixes across the Read API, Serve SDK, MCP server, dashboard and site.

**Source:** /changelog
**Extracted:** 2026-09-24T18:14:20.339Z

---
Changelog

## Everything we've _actually shipped._

Hand-curated, not generated from commits: one entry is one change you could notice, often across several repos. Each slip in the picture is one of them, on the day it shipped.

43

Changes shipped

21

Release days

3 Sept 2026

Most recent

The log

### Newest first.

Grouped by month. Filter to one kind of change.

All 43Feature 25Improvement 9Fix 3Docs 4Polish 2

#### September 20261 change

3 Sept

*   Docs
    
    #### [Blog: agents fetch pages, not llms.txt](/blog/agents-fetch-pages-not-llmstxt)
    
    Ahrefs looked at 137,210 domains: 28% publish an llms.txt, and 97% of those files got no requests at all in May 2026. Agents fetch the page they were sent to, so that's where the Markdown belongs.
    

#### August 20261 change

9 Aug

*   Fix
    
    #### [Remote MCP connector: OAuth discovery fixed for ChatGPT and Claude](https://docs.buildonto.dev/mcp/remote)
    
    Both clients probe the OAuth authorization-server metadata before they will complete a connection, and our discovery response wasn't shaped the way they expect — so adding https://api.buildonto.dev/mcp as a custom connector could stall at the sign-in step. Discovery is now served correctly and the connector completes on first try.
    

#### June 202613 changes

24 Jun

*   Polish
    
    #### New brand navigation across the marketing site
    
    Navigation rebuilt on the current brand — grouped Product, Why Onto and Resources menus, a real mobile sheet, and the Onto mark in place of the old wordmark.
    
*   Fix
    
    #### [Scanner URL handling and mobile hero](/scanner)
    
    The scanner accepted a bare domain but built the request against the wrong base, so some scans failed before reaching the API. Fixed, along with hero layout on narrow screens.
    

22 Jun

*   Feature
    
    #### Founder welcome email on first sign-in
    
    New accounts get a plain-text note from the founder the first time they reach /welcome — not a drip sequence, just a real address to reply to if the product doesn't do what you expected.
    
*   Fix
    
    #### WorkOS Connect completion handler
    
    Standalone Connect could fail silently when returning from the WorkOS flow, leaving the MCP connector half-attached. The completion handler now resolves the session properly and the temporary error diagnostic has been removed.
    

21 Jun

*   Feature
    
    #### [Connect Onto in ChatGPT & Claude — remote MCP connector](https://docs.buildonto.dev/mcp/remote)
    
    Onto is now a hosted MCP connector, not just a local npx server. Add https://api.buildonto.dev/mcp as a custom connector in ChatGPT or Claude, sign in with your Onto account (OAuth — no API key to paste), and the same six tools appear. Tool calls bill your existing Read plan. The local @ontosdk/mcp server is unchanged.
    

19 Jun

*   Feature
    
    #### [The Read API now reads PDFs](https://docs.buildonto.dev/api/read)
    
    Point /v1/read or /v1/extract at a PDF and we extract its text through the same pipeline. AIO scoring is HTML-only, so PDFs come back marked "not scored" instead of a misleading number — and image-only PDFs (no extractable text) are rejected and refunded, never silently charged.
    
*   Improvement
    
    #### [Onto MCP 1.5.0 — tells you when it's out of date](https://docs.buildonto.dev/mcp/tools)
    
    The MCP server now checks for a newer published version on launch and nudges you to restart, then shows a one-time "what's new" note after an upgrade — so you never silently run a stale build. extract\_data also gained a fresh flag to bypass the cache. (Opt out with ONTO\_NO\_UPDATE\_CHECK=1.)
    
*   Improvement
    
    #### [Scanner now explains blocked sites instead of failing silently](/scanner)
    
    When a site blocks our crawler — a WAF reset, a timeout, an unreachable host — the AIO scanner reports it as a finding ("if we can't reach you, neither can GPTBot") with a fix, rather than a generic error. It also auto-adds https:// when you omit it.
    

13 Jun

*   Feature
    
    #### [Batch reads — a whole site, or many URLs, in one call](https://docs.buildonto.dev/api/batch)
    
    POST /v1/batch takes a list of URLs or just a base URL (pages auto-discovered via its sitemap) and reads, scores, or extracts every one — billed N credits, one per URL after the list is known. Failed URLs are refunded. Score is free.
    
*   Feature
    
    #### [Two new endpoints: /v1/map and /v1/extract](https://docs.buildonto.dev/api/extract)
    
    /v1/map discovers a site's URLs (sitemap, then on-page links) so you can plan a crawl. /v1/extract returns the structured data a page already declares — JSON-LD, OpenGraph, meta — deterministically, with no AI in the loop.
    
*   Improvement
    
    #### [Onto MCP 1.3.0 — batch / map / extract tools + a report on every call](https://docs.buildonto.dev/mcp/tools)
    
    @ontosdk/mcp now exposes batch, map\_site, and extract\_data alongside read/score/read\_and\_score. Every tool response ends with a one-line ⚡ Onto report — reduction, tokens saved, and AIO score.
    

5 Jun

*   Feature
    
    #### [Onto is live — out of waitlist](https://app.buildonto.dev/signup)
    
    Signup is open to everyone, the waitlist banner is gone, and every CTA now points at the product rather than a form. Backing from Google for Startups and Antler surfaced on the site.
    

1 Jun

*   Improvement
    
    #### Tables survive HTML→Markdown conversion (@ontosdk/core 0.1.1)
    
    Pricing tiers, comparison grids and spec tables were previously flattened into unreadable prose. The core converter now emits real Markdown tables, which is the single biggest accuracy gain for pricing and docs pages. Shipped through both the API and the SDK.
    

#### May 202624 changes

24 May

*   Feature
    
    #### Country-level agent analytics
    
    The Serve dashboard now breaks agent traffic down by country, so you can see where the crawlers reading you are actually resolving from.
    
*   Improvement
    
    #### Sharper bot detection
    
    Classifier reworked to cut false positives on ordinary browser traffic and correctly attribute agents that share a user-agent prefix with a parent crawler.
    

23 May

*   Docs
    
    #### [OpenCode setup guide](https://docs.buildonto.dev/mcp/opencode)
    
    Step-by-step MCP configuration for OpenCode, joining the existing per-client pages for Claude Code, Cursor, Windsurf, Zed and the rest.
    

22 May

*   Feature
    
    #### [Research study: fetch once, not N times](/case-studies/fetch-once)
    
    Published a small comparison: the same three questions about news.ycombinator.com in Claude Code with its built-in WebFetch, and with the Onto MCP. WebFetch fetched the page for every question and its answers dropped every story's source; Onto fetched it once and kept all 13.
    

21 May

*   Improvement
    
    #### "$ saved" re-priced at $15 per 1M input tokens
    
    Read usage and Serve analytics moved their estimated $ saved from GPT-4o's $2.50 per 1M input tokens to $15.
    

20 May

*   Feature
    
    #### [OAuth via GitHub and Google on signup + login](https://app.buildonto.dev/signup)
    
    Continue with GitHub or Google from /login and /signup. Magic-link auth was removed last week pending this; email + password still works alongside.
    
*   Feature
    
    #### Onboarding wizard at /welcome
    
    First-time signups now walk through 3 steps — generate API key, copy a prefilled curl, run it live against the Read API — landing on /read/keys with everything wired.
    
*   Feature
    
    #### [Per-page comparisons against Jina Reader, Exa, Tavily, ScrapingBee](/compare)
    
    Same shape as /compare/firecrawl — capability matrix, where Onto extends, honest "pick the other vendor if" decision criteria. New /compare hub lists all five.
    
*   Feature
    
    #### [Blog launched with 3 founding posts](/blog)
    
    /blog with the vision essay, an AIO-scoring methodology deep-dive, and a piece on Onto-Reader + robots.txt + the cooperative agent web.
    
*   Improvement
    
    #### Bot classifier expanded to 17 named user-agents
    
    ChatGPT-User, Google-Extended, Bytespider, CCBot, Meta-ExternalAgent, cohere-ai, Applebot-Extended, DuckAssistBot and more no longer fall to "Unknown" in /serve/analytics.
    
*   Feature
    
    #### Unidentified-agents panel on /serve/analytics
    
    Raw User-Agent strings the classifier hasn't labeled yet are surfaced as a grouped table — hits, last route, last seen — so site owners can see exactly what's crawling them.
    
*   Docs
    
    #### [/sdk/provider reference page for OntoProvider](https://docs.buildonto.dev/sdk/provider)
    
    Documents the React provider that injects link rel="alternate" tags and per-route JSON-LD schemas. Was load-bearing in the marketing site's own layout but undocumented.
    
*   Polish
    
    #### Connect-SDK onboarding banner redesign
    
    Replaced the terminal-aesthetic banner on /serve/dashboard with the same modern style as the /welcome wizard — numbered step circles, copy-with-feedback code rows, per-step icons.
    

19 May

*   Feature
    
    #### Daily activity timeline + endpoint breakdown on /read/usage
    
    ActivityTimeline (last-7-days line) + EndpointBreakdown bar chart in a 2:1 grid. Query limit bumped from 500 to 5,000.
    
*   Feature
    
    #### Multi-site cap enforcement + SiteSwitcher
    
    /api/sites/register now enforces per-tier site limits with a SITE\_LIMIT\_REACHED (403) error. SiteSwitcher dropdown in TopBar lets you flip between owned sites; active site is now cookie-tracked across /serve/\* pages.
    
*   Feature
    
    #### [/pricing page shipped](/pricing)
    
    Editorial layout with Read tiers, credit packs, Serve tiers, full feature compare table, and FAQ. Replaces the old /#waitlist anchor.
    

18 May

*   Feature
    
    #### Phase 1 production-readiness on the marketing site
    
    Shipped /case-studies/{linear,resend,stripe}-pricing, /about-founder, /scanner standalone, /read-api + /mcp-server + /serve-sdk product pages, /legal/\*, and the original /compare/firecrawl.
    
*   Feature
    
    #### Credit-pack billing + Polar order webhook
    
    Paid Read tiers can purchase credit packs ($5 / $20 / $50 / $200, with bonus credits at the higher tiers) and the engine falls through to credit billing when plan quota is exhausted.
    
*   Feature
    
    #### Per-tier concurrency caps
    
    Free 2 / Starter 5 / Growth 20 / Scale 50 / Enterprise 100 concurrent requests. Includes a TOCTOU race fix on monthly-quota counters and a 30-second safety TTL on dropped requests.
    
*   Feature
    
    #### robots.txt enforcement on the Read API
    
    /v1/read short-circuits with ROBOTS\_BLOCKED (403) before any outbound fetch when the target's robots.txt disallows GPTBot or wildcard. Zero outbound request, zero quota cost.
    
*   Feature
    
    #### Token + dollar savings on /read/usage
    
    Every Read API call now logs bytes\_in / bytes\_out / tokens\_saved\_estimate. Dashboard surfaces "Tokens saved" + "$ saved" at GPT-4o input pricing ($2.50 / 1M tokens).
    
*   Docs
    
    #### [Editorial refresh + full Read API reference + SDK / Dashboard docs](https://docs.buildonto.dev)
    
    Docs site moved to the cream/orange editorial palette. Shipped /api/\* references for read, score, read-and-score, usage, errors, limits, plus /sdk/\* and /control-plane/\* pages.
    

17 May

*   Improvement
    
    #### Mobile navigation on buildonto.dev
    
    New mobile menu — full-width drawer, expandable Product and Company sections, scan + signup CTAs in the footer of the drawer.
    
*   Improvement
    
    #### Onto site UI refresh
    
    Move from dark / cyan placeholder to the cream / orange editorial palette that now defines the marketing site, dashboard, and docs together.
    

#### March 20263 changes

25 Mar

*   Feature
    
    #### @ontosdk/next 1.6 — hardened agent detection
    
    The detection engine that decides who gets Markdown. Explicit Anthropic fetcher support, an X-Onto-Trace header so you can prove which agent hit which route, ?onto=true debug mode, and Vary: User-Agent so CDNs stop serving an agent payload to a person. Twenty-one bots recognised at this point.
    

18 Mar

*   Feature
    
    #### [First AIO scoring engine](/scoring)
    
    The 0–100 score arrives — subtractive from the start, so every point lost traces to a named structural fault rather than a weighted average nobody can audit.
    

2 Mar

*   Feature
    
    #### [Edge middleware: the first Serve layer](/how-it-works)
    
    @ontosdk/next wired into crawler routing at the edge — agents rewritten to a pre-compiled Markdown payload, humans served the unchanged HTML. This is the mechanism the whole Serve product still runs on.
    

#### February 20261 change

21 Feb

*   Feature
    
    #### First public pages
    
    How it works, scoring, why Onto and the roadmap go up, alongside a waitlist. The beginning of the site you are reading.
    

Keep up

### Most of this started as a scan.

The features here came from things the scanner turned up on real sites. Run it on yours — free, no signup.

[Get started](https://app.buildonto.dev/signup) [Scan your site](/scanner)

[What's next on the roadmap →](/roadmap)

---
## Structured Data (JSON-LD)
```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://buildonto.dev/#org",
      "name": "Onto",
      "url": "https://buildonto.dev",
      "logo": "https://buildonto.dev/icon.png",
      "sameAs": [
        "https://x.com/buildonto",
        "https://github.com/ravixalgorithm/ontosdk"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://buildonto.dev/#site",
      "url": "https://buildonto.dev",
      "name": "Onto",
      "publisher": {
        "@id": "https://buildonto.dev/#org"
      }
    },
    {
      "@type": "SoftwareApplication",
      "name": "Onto",
      "applicationCategory": "DeveloperApplication",
      "operatingSystem": "Web",
      "url": "https://buildonto.dev",
      "description": "Onto serves AI agents clean Markdown from your own site, at the same URL, and shows you which agents came. Plus the AIO score, a Read API and an MCP server.",
      "publisher": {
        "@id": "https://buildonto.dev/#org"
      },
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "USD",
        "description": "Free tier: 1,000 credits / month"
      }
    }
  ]
}
```
