Users
Provision someone with a name and a phone number. An ordinary Layout account, created by you.
Real pickup orders at 600,000+ restaurants, through one API.
Delivery apps keep the customer relationship for themselves. Layout is the layer behind your app, like Plaid, so the relationship stays yours.
Layout orders at about 95% of U.S. restaurants with web ordering, more than 600,000 of them, not just the ones listed on a delivery app.
Restaurants pay Layout nothing, so there are no fees for them to build into menu prices. Orders through Layout cost the customer about 30% less on average, plus a small service fee that is never more than $0.75.
See pricingOrders connect to the person's own restaurant rewards accounts, so they keep earning points.
600,000+
restaurants
About 95% of U.S. restaurants that take orders online. No onboarding, no menus to sync. Layout drives each restaurant's own ordering site.
The same order, in your product's colors, type and voice. Layout only steps in to take the card.
Each step arrives by webhook as it happens. Placed is the only state that means the food is coming. An order Layout cannot verify comes back unconfirmed, never failed, so you never retry into a double charge.
The cart is being built at the restaurant.
Priced and ready. The person confirms.
Submitting to the merchant.
Reached the merchant, with evidence.
Provision someone with a name and a phone number. An ordinary Layout account, created by you.
Someone who already uses Layout joins your app with one approval, on Layout's own consent screen. Their saved card and history carry over.
Signed, retried five times, replayable from the console. Card data never rides along.
The same events, cursor-paged, for when your endpoint was down or you would rather poll.
GET /v1/events?cursor=MjAyNi0wOS0x… { "event": "order.placed", "order": { "id": "ord_7c21" } }
Create a sandbox app and key, forward webhooks to your machine and run a whole test order. Every command takes --json, so a coding agent can drive it.
$ npm i -g @layoutplatforms/cli $ layout login BCDF-GHJK · approve it in the console $ layout init --name "My app" $ layout test-order order.placed · simulated
Build tokens cannot spend. Every charge is approved by the person, and Layout checks it.
Point any MCP client at Layout. Your agent finds the store, builds the cart and asks before it buys. Nothing is placed until the person says yes.
Read the MCP guide