Skip to content
AACSearch

Create an installation and return its key once

Create an installation and return its key once. Runtime credentials are installation-scoped and cannot authenticate against the tenant API.

Full-key operation

Requires a full key; a search key or a browser key gets a 403. See Keys and credits.
POST
/cms/installations

Create an installation and return its key once. Runtime credentials are installation-scoped and cannot authenticate against the tenant API.

Authorization

api_key_header
X-NOVA-API-KEY<token>

Every request carries an organization API key. A key has one of two scopes. A full key reaches every operation in this document and belongs on your server. A search key is the one to ship in a browser widget or a storefront page: it reaches only the operations marked x-nova-key-scope: search — searching, federated search, recommendations, event ingestion, and the visitor-facing AI operations (semantic and image search, voice transcription and voice search, assistant chat, and the visitor's own conversation). It cannot write documents or read or change configuration; any other operation answers 403. AI operations are paid in credits from the organization's wallet whichever key calls them (402 when the balance runs out), and a search key needs X-NOVA-SESSION-ID on them: the session is what a conversation belongs to, and what the per-session allowance (429) is counted against. A key of either scope may additionally carry restrictions set in the console: an allowlist of collections (403 elsewhere), a forced filter_by per collection that is ANDed into every search (document-level access control), an allowlist of fields (include_fields is limited to it and a request naming any other field in query_by, facet_by, sort_by, filter_by or highlight_fields answers 400), an IP/CIDR allowlist and an Origin/Referer allowlist (403), and a per-key rate limit (429 with Retry-After).

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/cms/installations" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "provider": "bitrix",    "environment": "production",    "origin": "http://example.com"  }'
{  "installation": {    "id": "string",    "name": "string",    "provider": "string",    "environment": "string",    "origin": "string",    "desired_revision": 0,    "applied_revision": 0,    "config": {      "protocol_version": 1,      "stores": [        {          "local_id": "string",          "locale": "string",          "currency": "string",          "native_search": true,          "native_filters": true,          "native_recommendations": true,          "widgets_enabled": true,          "sources": [            {              "local_id": "string",              "connector_id": "string",              "collection": "string",              "search_preset": "string",              "recommendation_model": "string"            }          ]        }      ]    },    "discovery": {      "module_version": "string",      "cms_version": "string",      "capabilities": [        "native_search"      ],      "stores": [        {          "source_schemas": {            "property1": {              "name": "companies",              "fields": [                {                  "name": "num_employees",                  "type": "int32",                  "facet": false                },                {                  "name": "company_name",                  "type": "string",                  "facet": false                },                {                  "name": "country",                  "type": "string",                  "facet": true                }              ],              "default_sorting_field": "num_employees",              "token_separators": [],              "curation_sets": [                "curation_set_1"              ],              "synonym_sets": [                "synonym_set_1"              ],              "enable_nested_fields": true,              "symbols_to_index": [],              "voice_query_model": {                "model_name": "ts/whisper/base.en"              },              "metadata": {}            },            "property2": {              "name": "companies",              "fields": [                {                  "name": "num_employees",                  "type": "int32",                  "facet": false                },                {                  "name": "company_name",                  "type": "string",                  "facet": false                },                {                  "name": "country",                  "type": "string",                  "facet": true                }              ],              "default_sorting_field": "num_employees",              "token_separators": [],              "curation_sets": [                "curation_set_1"              ],              "synonym_sets": [                "synonym_set_1"              ],              "enable_nested_fields": true,              "symbols_to_index": [],              "voice_query_model": {                "model_name": "ts/whisper/base.en"              },              "metadata": {}            }          },          "locale": "string",          "currency": "string",          "local_id": "string",          "name": "string",          "source_ids": [            "string"          ]        }      ]    },    "sync_health": {      "pending": 0,      "failed": 0,      "processing": 0,      "done_1h": 0,      "throughput_per_min": 0,      "eta_seconds": 0,      "catalog_size": "empty",      "auto_profile": "string",      "batch_size": 1,      "workers": 1,      "reindex_active": true,      "last_error": "string",      "reported_at": 0    },    "last_error": "string",    "last_seen_at": 0,    "revoked_at": 0,    "created_at": 0,    "updated_at": 0  },  "installation_key": "string"}