First 1,000In by mid-October, free for a month

Turn the World into a function

Schema is building an API for the World: every website, callable by agents, fast and accurate. Use it on your Mac, build on it with Flows, or put your own site on it.

Schema for Mac · live demo
Ask Schema anything
Ready
Google FlightsAmazonOpenTableAirbnbZillowBest BuyExpediaTicketmasterCraigslistWikipediaTargetKayak

The web has one interface, and it was built for people. We’re building the second one.

Read the vision
00Products

One vision. Three ways in.

Everything we build serves one idea: an API for the World. Every website, callable by agents — fast and accurate. Use it yourself, build on it, or put your own site on it.

Waitlist
For people

Schema for Mac

Ask for anything. Schema calls the web and hands back the answer.

A command bar for your Mac. Say what you need in plain English; Schema turns it into function calls, runs them, and returns the result as clean Markdown. Passwords and 2FA codes stay in an on-device Vault the model never sees.

Waitlist
For developers & agents

Schema for Flows

Every website, as a live Flow your agents can call.

A Flow is a live, typed route into a site, generated by a discovery agent: what the site does, the functions you can run, and the information you can read. Outputs are always typed, and Flows adapt as the site changes. Sign-ins are handled for you.

Talk to us
For businesses

Schema for Sites

Zero-config. Your site, as an API for every agent.

Like Cloudflare, for the world of agents. Schema sits in front of your existing site and turns it into an API every agent can call — more traffic, more conversions, more reach, with no rebuild.

For people

Schema for Mac

Ask for anything. Schema calls the web and hands back the answer.

Join the waitlist
01Examples

If you can ask for it, Schema can go get it

Flights, carts, reservations, bills, fine print. You describe the outcome, Schema turns it into function calls, and the typed results come back as clean Markdown: tables, checklists, quotes, whatever fits.

Travel2 calls · 4.1s

“Find a nonstop to Lisbon under $700 the second week of May”

  1. →flights.search(to: "LIS", max_price: 700, nonstop: true)
  2. →flights.hold(id: "TP202", seat: "23A")

3 nonstops under $700

FlightRouteDepartsPrice
TAP 202EWR → LISSun, May 11 · 7:50p$642
United 64EWR → LISMon, May 12 · 5:35p$671
TAP 204JFK → LISTue, May 13 · 9:10p$688

Seat 23A held on TAP 202. Press ⌘↵ to book it.

Errands2 calls · 3.9s

“Get me the earliest DMV slot for a license renewal”

  1. →dmv.appointments(type: "renewal", sort: "earliest")
  2. →dmv.hold(slot: "2026-10-06T09:20")

Tue, Oct 6 at 9:20am · Fell St

  • Appointment held
  • Confirmation DMV-7Q2K
  • Bring your current license
  • $38 renewal fee
Research1 call · 1.9s

“What’s the return window on this jacket, and is shipping free?”

  1. →store.policy(topic: "returns")

30 days

Returns ship free, with one catch:

“Items must be unworn with original tags attached.”

Returns policy, §4.2

Shopping1 call · 3.4s

“Compare what the filters cost for these three air purifiers”

  1. →products.compare(ids: [3], fields: ["price", "filter_cost"])

The cheapest to buy isn’t the cheapest to own

PurifierPriceFilters / yr3-yr total
Coway 200M$229 $149$34$251
Levoit 400S$219$58$393
Blueair 211i$319$71$532
Dining2 calls · 2.7s

“Book a table for four somewhere quiet near Union Square at 7:30”

  1. →reservations.search(near: "Union Square", party: 4, at: "19:30")
  2. →reservations.book(venue: "Cotogna", slot: "19:30")

Booked · Cotogna

  1. 1Checked 6 spots within a 10-min walk
  2. 2Ruled out 4 with “loud” in reviews
  3. 3Reserved 7:30pm, party of 4

Confirmation OT-55190

Bills2 calls · 5.4s

“Log into PG&E and pay this month’s bill”

  1. →pge.sign_in(credentials: vault("PG&E"))
  2. →pge.pay(amount: 112.40, from: "checking")

$112.40

Paid from checking ••4417

  • Due Oct 14, paid Sep 23
  • Receipt sent to your inbox
From your Vault:PG&E password2FA code
Work1 call · 6.3s

“Check our registrar for any domains expiring this quarter”

  1. →registrar.domains(expiring_before: "2026-12-31")

2 of 8 expire before Dec 31

  • schema.dev · Nov 14 · auto-renew off
  • getschema.co · Dec 2 · auto-renew off

The other 6 renew automatically.

From your Vault:Registrar loginWork email
02Features

Fast because there’s nothing to click

Schema doesn’t wait for pages to load or hunt for buttons. It calls functions, gets typed responses, and moves on.

Every site, as functions

Schema maps a website into callable functions with typed arguments. Search, filter, book, pay: each one is a call, not a sequence of clicks.

Calls, not clicks

No waiting for pages to render or buttons to appear. A call goes out, a typed response comes back, and Schema moves on.

Errors it can actually handle

A failed call returns a real error, not a frozen spinner. Schema fixes the arguments, tries again, and keeps going until the goal is met.

Speak it instead

Real-time macOS dictation is built into the bar. Say the task, get the answer.

Answers, not logs

Typed responses come back into the same bar as clean Markdown: the flight, the price, the confirmation.

Runs on your Mac

Schema is a standalone app, not a browser extension. Your Vault stays encrypted on your machine.

03Workflow

Four keystrokes between you and done

Schema lives one shortcut away. It’s built for the tiny errands you’d otherwise open six tabs for.

⌥Space

Summon it anywhere

The bar opens on top of whatever you’re doing. No tab to find, no app to switch to.

Type it or say it

Plain English works. So does talking — dictation is built in and transcribes as you speak.

↵

Schema makes the calls

Your request becomes a handful of function calls. You watch them go by in the bar: no windows, no tabs, no cursor.

⌘↵

Confirm what matters

Anything that spends money or can’t be undone waits for your go-ahead. Everything else just happens.

04Vault

Logs in for you. Never sees your password.

Connect passwords, 2FA codes, emails, usernames, or any other secret to your Vault. Schema can pass them into any call that needs them, but the model itself never gets to read them.

Encrypted on your Mac
Secrets are encrypted and stored on device, and only unlocked when a task needs one.
Invisible to the model
Schema asks for a secret by name. The Vault passes it straight into the function call, so the value never enters the model’s context.
Fetched only on demand
Nothing is loaded up front. A secret is retrieved at the moment the model calls for it, and not before.
2FA included
Store one-time codes alongside passwords, so logins with two-factor don’t stall halfway through.
Vault
Encrypted on this Mac
  • PG&EPassword••••••••••••
  • PG&E2FA code••• •••
  • Work emailEmailk••••@schema.dev
  • RegistrarUsernameschema-ops
  • Frequent flyer #Secret••••••7731
Model sees
vault("PG&E")
Call receives
••••••••••••
05How it behaves

Built to feel instant, not clever

Speed isn’t a setting Schema turns on. It’s the default, and everything else is the exception.

  1. 01

    Maps before it acts

    Schema turns a site into typed functions first, so it knows exactly what’s possible before it does anything. No fixed scripts to break when a site changes.

  2. 02

    Calls the instant it’s sure

    Routine calls go out immediately. There’s no waiting around for a slow model to confirm the obvious.

  3. 03

    Thinks only when it has to

    Real judgment calls — which fare, which result, which arguments — get the deeper reasoning they deserve, and nothing else does.

  4. 04

    Keeps going until it’s done

    A failed call comes back as a typed error. Schema adjusts and retries, and only stops once the goal is verifiably met.

06Speed

Most agents spend their time clicking. Schema just calls.

Browser agents are slow because they act like people: wait for the page, look, click, repeat. Schema skips the performance. It calls functions directly and saves the deeper thinking for the few moments that need it.

One flight, request to booking page
Schema for Flows3.4s
Schema for Mac agent4.9s

Measured on Google Flights: a one-way booking from request to the booking page, median of repeated runs on a warm browser. Times vary by site.

3.4s
Median to book a flight through Schema for Flows
4.9s
The same booking, done by the Schema for Mac agent
~200ms
Per page decision, made by a fast classifier
0
Reasoning-model calls on a Flow’s hot path
For developers & agents

Schema for Flows

Every website, as a live Flow your agents can call.

Join the waitlist
07Schema for Flows

Every website, as a live Flow

A Flow is a dynamic route into a site, running in real time against the live environment. The Google Flights Flow tells your agent what Google Flights does, which functions it can run, and what each one takes — and hands back typed results.

Google Flights Flow
v12 · 2 functions
ContextSelf-updated Sep 24

Search and compare flights worldwide to find the best deals.

Call search_flights to compare flights, or book_flight to pick one (cheapest by default) and open its booking options.

Call
book_flight({ origin: "ATL", destination: "BOS", date: "2026-11-12", choose: "cheapest" })
Response · BookingOptions[]200 · 3.4s
[
  {
    "seller": "Frontier",
    "price": 169
  },
  {
    "seller": "FlightHub",
    "price": 179
  },
  {
    "seller": "Frontier",
    "price": 209
  }
]
  1. 01

    Generated by discovery

    A discovery agent explores a site and writes its Flow: what the site does, the functions you can run, and the information you can read.

  2. 02

    Live, and self-updating

    Flows run in real time against the live site. When the site changes, the Flow adapts its behavior and ships a new version on its own.

  3. 03

    Typed where it counts

    Inputs can be typed or plain English. Outputs are always typed, so your agent never parses a page again.

  4. 04

    Sign-ins, handled

    For platforms behind a login, sessions are cached on Schema’s servers and loaded on demand. Manage sessions and credentials from the dashboard.

One error model, every Flow

Every failure on every site comes back in the same typed shape: a standard code, whether it’s safe to retry, and a request id that correlates it to the exact call in your logs. Handle errors once, not once per website.

  • invalid_input
  • unauthorized
  • auth_required
  • not_found
  • conflict
  • +3 more
// Same shape from Google Flights, OpenTable, or PG&E
{
  "error": {
    "code": "conflict",
    "message": "20:00 was just booked",
    "flow": "OpenTable Flow",
    "function": "book",
    "retryable": true,
    "request_id": "req_8Hc21",
    "details": { "alternatives": ["20:15", "20:45"] }
  }
}
For businesses

Schema for Sites

Zero-config. Your site, as an API for every agent.

Contact us
08Schema for Sites

Turn your site into an API for every agent

Schema for Sites is the Cloudflare for the world of agents. Put it in front of your existing site and it becomes a fast, typed API that agents can call — you choose what’s exposed. Your customers get things done, agents get a reliable way in, and you get the business. A win for everybody.

In developmentWIP

Schema for Sites isn’t open yet. We’re onboarding the first businesses by hand: tell us about your site and we’ll get in touch.

More traffic

Agents are becoming how people shop, book, and search. Sites they can actually use are the ones they send people to.

Higher conversion

An agent that can call checkout finishes the purchase instead of stalling on a dropdown or a cookie banner.

Wider reach

Every assistant, model, and agent becomes a channel to your customers, through one integration instead of one per provider.

Zero config, no rebuild

Schema sits in front of your existing site like Cloudflare. Your backend and your pages for people stay exactly as they are.

09The vision

An API for the World

Everything we build serves one idea. Machines shouldn’t have to pretend to be people: today’s agents look at pages designed for human eyes, find buttons sized for human fingers, and click them. Machines talking to machines should work fundamentally differently, so Schema is building the interface they deserve: every website, callable, fast and accurate.

Humans click. Machines call.

Humans read pages. Machines read types.

Humans wait for things to load. Machines get a response.

The end game: be the Cloudflare for the new world of agents — the layer every site sits behind, and every agent calls through.

Human → machine
Machine → machine
Pages, buttons, forms
Functions with typed arguments
Look around, scroll, guess
Read the schema
Click, type, wait
One call with arguments
Whatever renders
A typed, validated response
A spinner that never ends
An error you can handle
Seconds per step
Milliseconds per call
  1. Now

    Call any website

    Schema for Mac and Schema for Flows turn today’s websites into live, self-updating Flows that you and your agents can call, with typed answers instead of clicks.

  2. Next

    Sites that speak machine natively

    Schema for Sites: zero config, like Cloudflare. Any business puts Schema in front of its site and becomes a native API for every agent.

  3. Eventually

    An API for the World

    Every booking, purchase, form, and lookup on the internet is a fast, accurate function with a signature. The world, turned into an API.

10FAQ

Questions, answered

Something else on your mind? Get in touch.

Stop clicking. Start calling.

The waitlist is open for Schema for Mac and Schema for Flows. Join and we’ll email you as spots open up. Running a business? Schema for Sites is by conversation.

1,000
Early-access offer

The first 1,000 on the waitlist get in mid-October, with everything free for a month.

Schema for Mac: Apple silicon · macOS 14 or later

  1. 1

    Join the waitlist

    Takes under a minute. The first 1,000 get a free month.

  2. 2

    Get your invite

    The first 1,000 are admitted in mid-October.

  3. 3

    Sign in with the same email

    Use the address you joined the waitlist with.