Objects
What comes back on the wire. Additive fields are not a breaking change, so parse defensively and ignore what you do not recognise.
EmbedItem
| Field | Type | Notes |
|---|---|---|
id | string | Armenus id. |
externalRef | string | null | Your identifier, if you set one. |
name | string | |
description | string | null | |
priceCents | integer | Minor units. Never a float. |
tags | string[] | “vegan”, “signature”, … |
imageUrl | string | null | Flat photo of the dish. |
isAvailable | boolean | Whether the kitchen is serving it. |
merchant | EmbedMerchant | id, slug, name, currency, locale. |
model | EmbedModel | null | Null when the dish has no model, or has one that is not ready yet. |
EmbedModel
| Field | Type | Notes |
|---|---|---|
glbUrl | string | Android inline, Scene Viewer, and every browser path. |
usdzUrl | string | null | iOS inline and Quick Look. Null until conversion finishes. |
usdzStatus | enum | pending · processing · ready · failed |
posterUrl | string | null | Shown while the mesh downloads, and wherever no mesh can render. |
physicalSizeM | number | Longest side, in metres. |
glbBytes | integer | null | So a native client can decide about prefetching on cellular. |
viewSettings | object | Camera framing. All seven fields always present. |
viewSettings
Camera framing the restaurant set per dish, so a model opens at a flattering angle rather than whatever the exporter chose. The orbit string is <model-viewer>’s format and is kept verbatim on every platform, so one setting frames the dish identically on the web, on iOS and on Android — the native SDKs parse it into the numbers their renderers want.
| Field | Default |
|---|---|
cameraOrbit | "0deg 75deg 105%" |
cameraTarget | "auto auto auto" |
fieldOfView | "auto" |
exposure | 1 |
shadowIntensity | 1 |
autoRotate | true |
arScale | 1 |
arScale is a multiplier applied before AR placement, and is a different thing from physicalSizeM. All seven fields are always present, even when the restaurant has only changed one.
A full response
GET /v1/embed/items/:itemId
{
"id": "c0dbffc2-09d1-4ef0-9699-006981a85440",
"slug": "margherita",
"externalRef": "SKU-1234",
"name": "Margherita",
"description": "San Marzano, fior di latte, basil.",
"priceCents": 1100,
"tags": ["vegetarian", "signature"],
"imageUrl": "https://cdn.armenus.app/.../photo.webp",
"isAvailable": true,
"merchant": {
"id": "14f37130-2d4d-4ea1-83a4-d96bbd20df75",
"slug": "pizza-roma",
"name": "Pizza Roma",
"currency": "USD",
"locale": "en-US"
},
"model": {
"id": "3f727302-aa99-4ae9-9d20-32e866192190",
"glbUrl": "https://cdn.armenus.app/.../model.glb",
"usdzUrl": "https://cdn.armenus.app/.../model.usdz",
"usdzStatus": "ready",
"posterUrl": "https://cdn.armenus.app/.../poster.webp",
"physicalSizeM": 0.28,
"glbBytes": 157000,
"viewSettings": {
"cameraOrbit": "0deg 70deg 105%",
"cameraTarget": "auto auto auto",
"fieldOfView": "auto",
"exposure": 1,
"shadowIntensity": 1,
"autoRotate": true,
"arScale": 1
}
}
}