Layout for Developers opens
developer.layout.link is open to anyone. You can sign up, create an application and start building against sandbox the same day, with no call to book first. This is the first release of the platform behind it: provision a person, build a real cart at a real restaurant for them, and hear about every change of state on a signed webhook.
What shipped
- Self-serve accounts. Sign up with an email and a password, confirm the address from the email we send, and finish a short onboarding form. Your developer session is its own session: signing out of the console never signs you out of a Layout account you order with, and the reverse.
- Applications and keys. Every application gets a sandbox pair (
lp_test_client id,sk_test_secret) and a production pair (lp_live_,sk_live_). The prefix picks the environment, so there is no flag to set. POST /v1/usersprovisions someone you can order for, from a name and a phone number.GET /v1/orders/:idreads one order your application caused, andGET /v1/eventsis a cursor-paged feed of the same events your webhooks receive.- Signed webhooks from a durable outbox: five attempts over about an hour, then a dead letter you can replay from the console's delivery log.
Why it matters
Layout drives each restaurant's own ordering site, so there is no merchant to onboard and no menu to sync. The platform gives your product that reach without giving it the power to spend. Everything a partner key can do is build and read. Adding a card, confirming and paying happen on a Layout page, in front of the person whose money it is.
Try it
Create an application in the console, copy its sandbox secret, and provision a test person. Sandbox takes a reserved number in the +1 500 555 range.
curl https://api.layout.link/v1/users \
-H "Authorization: Bearer $LAYOUT_SECRET" \
-H "Content-Type: application/json" \
-d '{ "firstName": "Dana", "lastName": "Whitfield", "phone": "+15005550142" }'
From there the Quickstart walks the rest of the way to a built cart.
Breaking changes
None. This is the first release. One part of it has since moved: carts were first built with POST /v1/orders, which now answers 410. See Ordering moves to MCP.