Skip to content

Partner API

Your menu and your dishes, in your own product.

Scan a dish once with the iPhone app and use it anywhere: true-to-size 3D and AR on your own site, menu data over REST, webhooks when something changes, and the AI Concierge streamed into your app.

  • OpenAPI 3.1 reference
  • Test keys are never billed
  • Add-on on any plan
Terminal
# Every restaurant your key can read
curl https://api.trueplate.ai/v1/partner/restaurants \
  -H "Authorization: Bearer tp_sk_live_..."

# One dish, with signed USDZ and GLB model URLs
curl https://api.trueplate.ai/v1/partner/items/ITEM_ID \
  -H "Authorization: Bearer tp_sk_live_..."
  • api.trueplate.ai/v1
  • Bearer keys, scoped
  • OpenAPI 3.1

What you can build

Three surfaces, one key.

The photoreal models, the menu data and the grounded assistant your guests already use, opened up to your own code.

Embed

Your dishes, in 3D and AR, on your own site

One script tag renders the same photoreal model your guests see on a TruePlate menu, at true size, with the AR button on iPhone and Android. Capture a dish in the app and it appears on your page on its own.

  • Web component, no framework required
  • AR Quick Look on iOS, Scene Viewer on Android
  • Publishable keys, locked to the origins you list
See the embed viewer

REST and webhooks

Menu, items and 3D assets as data

Read your restaurants, sections, items, prices, allergens, nutrition and signed asset URLs. Cursor paginated, test mode included, and documented by a live OpenAPI 3.1 spec rather than a hand-written page.

  • Cursor pagination with a stable ordering
  • Test keys that never touch production counters
  • Signed webhooks for model.ready, item.updated, menu.updated and more
Read the API reference

AI Concierge

Stream the AI Concierge into your own product

The same grounded menu assistant that runs on a TruePlate menu, over the Partner API. It answers only from the restaurant's published dishes and house notes, and it streams back as Server-Sent Events so your UI can render it token by token.

  • POST /partner/restaurants/{id}/concierge/chat, streamed as SSE
  • Gated on the concierge:chat scope and the restaurant’s own allowance
  • No prompt override and no model choice: the grounding is the product
See the concierge endpoint

Get started

From key to first call in three steps.

  1. Add the Partner API

    Switch on the add-on for your account, on any plan. One subscription covers every location you run.

  2. Create a key

    Under Developers in your dashboard. Secret keys stay on your server; publishable keys are for the browser and only work from the origins you list. Start in Test: it is never billed.

  3. Make your first call

    Call GET /partner/me to check the key, then read menus, subscribe to webhooks or drop in the embed.

Follow the quickstart

Pricing

One add-on, on any plan.

The Partner API is an add-on to any TruePlate plan: the REST API, webhooks and both embeds, under one subscription for your whole account.

Partner API add-on

€49a month

  • The REST API, signed webhooks, the 3D viewer and the concierge widget
  • One subscription covers every location on your account
  • Test keys reach the same data and are never billed
  • Concierge turns draw on each restaurant's own message allowance

Questions

Asked before the first call.

The short answers. The guides have the long ones.

What does the Partner API cost?
It is an add-on at €49 a month, available on every TruePlate plan. One subscription covers every location on your account, and test keys are never billed.
Can I build against it without being billed?
Yes. Create a key in the Test environment. It reaches the same data with the same permissions, is never billed, and runs under fixed caps of 60 requests a minute and 5,000 a day. When you are ready, swap in a live key: no code changes.
Which key goes where?
Secret keys (tp_sk_) stay on your server and carry the scopes you pick. Publishable keys (tp_pk_) are safe in a web page: they only reach the embed endpoints, and only from the origins you allow-list on the key.
Can I change the concierge's prompt or model?
No. There is no raw-completion mode, no system-prompt override and no model parameter. The assistant answers only from the restaurant's published dishes and house notes, and streams back as Server-Sent Events.
How do I stay in sync when the menu changes?
Subscribe to signed webhooks such as model.ready, item.updated and menu.updated, or poll the item listing with updatedAfter. Each poll reports the window it covered, so feeding that back makes incremental sync gapless.

Build on the real menu.

Create a test key, call it from your own code, and swap in a live key when you are ready. No code changes.

Get your API keys

Partner API add-on: €49 a month, on any plan.