REST API

The SDKs are thin wrappers over these. Everything on the embed surface is a GET, is cacheable, and authenticates with Authorization: Bearer pk_….

a request
curl "https://api.armenus.app/v1/embed/items/$ITEM_ID" \
  -H "Authorization: Bearer pk_live_..."

Embed endpoints

EndpointReturns
/v1/embed/configKey scope and readable merchants.
/v1/embed/items/:itemIdOne dish.
/v1/embed/items?ids=a,b,cUp to 50 dishes, in the order asked.
/v1/embed/merchants/:id/itemsA merchant's dishes. ?withModel&limit&offset
/v1/embed/merchants/:id/items/by-ref/:refOne dish, by your own identifier.

The shapes they return are documented under Objects.

Key management

These take a secret key or a dashboard session — never a pk_. A publishable key that could mint publishable keys would be a privilege escalation available to anyone who decompiled an app.

MethodEndpointAuth
GET/v1/partner/publishable-keysak_
POST/v1/partner/publishable-keysak_
DELETE/v1/partner/publishable-keys/:keyIdak_
GET/v1/restaurant/publishable-keysowner session
POST/v1/restaurant/publishable-keysowner session
DELETE/v1/restaurant/publishable-keys/:keyIdowner session

Caching

Dish responses carry public, max-age=30, s-maxage=300, stale-while-revalidate=86400. /v1/embed/config is private, because its merchant list is scoped to the calling key and a shared cache keyed on URL alone would serve one partner’s list to another.

Versioning & support

The API is versioned in the path. Additive response fields are not a breaking change, so parse defensively. SDKs follow semantic versioning.

PackageVersionRequires
@armenus/sdk-core0.1.0Any runtime with fetch
@armenus/sdk-react0.1.0React 18+
@armenus/sdk-react-native0.1.0React Native 0.76+, iOS 13+, Android 24+
armenus (Dart)0.1.0Flutter 3.22+, iOS 13+, Android 24+

Questions, or a rate limit that does not fit your traffic: ask the administrator who provided your integration key.