Tenants
Stores, settings, flags, onboarding.
6 endpoints.
GET
/v1/tenantsStores I belong to
Needs a key or a dashboard session
Responses
- 200Successful Response
TenantOut[]
POST
/v1/tenantsTenants Create
Needs a key or a dashboard session
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Idempotency-Key | header | string | null | no | Unique per logical write (8-255 chars). Retries with the same key are safe. · pattern ^[A-Za-z0-9_\-:.]{8,255}$ |
Request body application/json TenantCreate
| Name | Type | Required | Description |
|---|---|---|---|
name | string | yes | max length 200 |
slug | string | null | no | pattern ^[a-z0-9][a-z0-9-]{2,62}$ |
default_locale | string | no | default "en" · pattern ^[a-z]{2}$ |
locales | string[] | no | Catalog languages. |
currency | string | no | default "USD" · pattern ^[A-Z]{3}$ |
vertical | "electronics" | "fashion" | "grocery" | "general" | no | default "electronics" |
Responses
- 201Successful Response
TenantOut
GET
/v1/settingsStore settings
Needs a key or a dashboard session
Responses
- 200Successful Response
TenantSettings
PATCH
/v1/settingsSettings Update
Needs a key or a dashboard session
Request body application/json TenantSettings
| Name | Type | Required | Description |
|---|---|---|---|
name | string | null | no | max length 200 |
default_locale | string | null | no | pattern ^[a-z]{2}$ |
locales | string[] | null | no | |
currency | string | null | no | pattern ^[A-Z]{3}$ |
timezone | string | null | no | max length 64 |
log_retention_days | integer | null | no | min 7 · max 730 |
search | SearchSettings | null | no | |
translation | TranslationSettings | null | no | |
weekly_report | boolean | null | no | |
extra | object | null | no |
Responses
- 200Successful Response
TenantSettings
GET
/v1/flagsFeature flags for this store
Needs a key or a dashboard session
Responses
- 200Successful Response
FlagOut[]
GET
/v1/onboardingOnboarding checklist progress
Needs a key or a dashboard session
Responses
- 200Successful Response
OnboardingOut
Data shapes on this page
TenantOut
| Name | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
slug | string | yes | |
name | string | yes | |
status | "trialing" | "active" | "past_due" | "suspended" | "canceled" | "deleted" | yes | |
plan_code | string | yes | |
default_locale | string | yes | |
locales | string[] | yes | |
currency | string | yes | |
trial_ends_at | string (date-time) | null | no | |
created_at | string (date-time) | yes |
TenantCreate
| Name | Type | Required | Description |
|---|---|---|---|
name | string | yes | max length 200 |
slug | string | null | no | pattern ^[a-z0-9][a-z0-9-]{2,62}$ |
default_locale | string | no | default "en" · pattern ^[a-z]{2}$ |
locales | string[] | no | Catalog languages. |
currency | string | no | default "USD" · pattern ^[A-Z]{3}$ |
vertical | "electronics" | "fashion" | "grocery" | "general" | no | default "electronics" |
TenantSettings
| Name | Type | Required | Description |
|---|---|---|---|
name | string | null | no | max length 200 |
default_locale | string | null | no | pattern ^[a-z]{2}$ |
locales | string[] | null | no | |
currency | string | null | no | pattern ^[A-Z]{3}$ |
timezone | string | null | no | max length 64 |
log_retention_days | integer | null | no | min 7 · max 730 |
search | SearchSettings | null | no | |
translation | TranslationSettings | null | no | |
weekly_report | boolean | null | no | |
extra | object | null | no |
SearchSettings
The tenant's saved ranking setup. RankingConfig (contract/merch.py) has the same field names, all optional, and overrides these per request (playground) or per A/B variant.
| Name | Type | Required | Description |
|---|---|---|---|
ai_rewrite | boolean | no | default true |
ai_timeout_ms | integer | no | default 2000 · min 200 · max 5000 |
rule_parser | boolean | no | default true |
in_stock_first | boolean | no | default true |
business_signals | map<string, number> | no | Opt-in weights 0..1, e.g. {popularity: 0.2, margin: 0.1, clicks: 0.2}. |
typo_tolerance | boolean | no | default true |
hybrid_search | boolean | no | default false |
cheap_rerank_top_n | integer | no | default 50 · min 10 · max 200 |
merch_rules | boolean | no | default true |
disabled_rule_ids | string[] | no | |
synonym_sets | string[] | no | |
global_synonyms | boolean | no | Use the platform's global synonyms for my vertical.default true |
disabled_global_synonym_ids | string[] | no | Global synonyms I switched off. |
TranslationSettings
Per-tenant translation setup (part of TenantSettings; PATCH /v1/settings). The feature flag `translation_watch` makes watch mode AVAILABLE; `watch` here turns it ON for this store. Same for `translation_sonnet_review` and `sonnet_review_top_n`.
| Name | Type | Required | Description |
|---|---|---|---|
watch | boolean | no | Translate new and changed products automatically.default false |
target_locales | string[] | no | |
fields | "name" | "description" | "category" | "attribute_name" | "attribute_value"[] | no | |
sonnet_review_top_n | integer | no | Second pass with Sonnet 5.5 for the top N products (plan limits apply).default 0 · min 0 · max 5000 |
index_machine_translations | boolean | no | Search uses AI translations that passed the automatic checks before review.default true |
FlagOut
| Name | Type | Required | Description |
|---|---|---|---|
key | string | yes | |
enabled | boolean | yes | |
source | "default" | "rollout" | "override" | "plan" | yes |
OnboardingOut
| Name | Type | Required | Description |
|---|---|---|---|
steps | OnboardingStep[] | yes | |
started_at | string (date-time) | yes | |
minutes_elapsed | number | yes |
OnboardingStep
| Name | Type | Required | Description |
|---|---|---|---|
key | "platform" | "connector" | "first_index" | "first_search" | "keys" | "team" | yes | |
done | boolean | yes | |
done_at | string (date-time) | null | no |