Eco meta API
Public, edge-cached read plane. Anonymous GET endpoints are cached at Front Door; the flag sync/list routes require app credentials.
GET /tenants
Resolved tenant projection(s). Look up one tenant by slug, domain, or identifier, or omit all three to list every active tenant.
| Param | Notes | |
|---|---|---|
env | optional | dev | test | acc | prod (defaults to prod) |
slug | optional | Tenant slug (mutually exclusive) |
domain | optional | Tenant domain (mutually exclusive) |
identifier | optional | 4-digit tenant id (mutually exclusive) |
appId | optional | Consumer app — narrows `features` to that app's registered flags and applies its app-scope overrides |
GET /tenants/flags
Resolved feature-flag map (name → boolean) for one tenant, scoped to a consumer app.
| Param | Notes | |
|---|---|---|
env | required | dev | test | acc | prod |
slug | required | Tenant slug |
appId | required | Consumer app identifier |
https://meta.ecosofterp.com/tenants/flags?env=prod&slug=acme&appId=eco-portal
GET /features
Feature flags that resolve to true (global-truth view). Optionally scope to a tenant and/or a consumer app.
| Param | Notes | |
|---|---|---|
env | required | dev | test | acc | prod |
identifier | optional | 4-digit tenant id — adds tenant + customer layers |
appId | optional | Consumer app — returns only that app's registered flags, with its app-scope overrides applied |
POST /flags/sync
Register/refresh the flags a consumer app declares. Body names an `env` (dev|test|acc|prod) or a `branch` (PR builds); personal apps may omit both and register under the `personal` identity.
Auth: X-App-Id + X-App-Secret (scope flags:sync)
https://meta.ecosofterp.com/flags/sync
GET /flags/list
Resolved feature-flag map for the authenticated app and one tenant.
Auth: X-App-Id + X-App-Secret (scope flags:list)
| Param | Notes | |
|---|---|---|
env | required | dev | test | acc | prod |
tenantId | required | Convex tenant document id |
https://meta.ecosofterp.com/flags/list?env=prod&tenantId=...