Confirm dataset roles and proposed configuration
Reanalyzes a bounded sample with explicit overrides and stores the result for an existing collection. Rejects mapping conflicts or fields absent from the collection. Does not import documents, change the engine schema or enable paid features. The same budgets as ingest preview apply.
Операция для полного ключа
Reanalyzes a bounded sample with explicit overrides and stores the result for an existing collection. Rejects mapping conflicts or fields absent from the collection. Does not import documents, change the engine schema or enable paid features. The same budgets as ingest preview apply.
Authorization
api_key_header 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
Path Parameters
Collection name
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/collections/string/profile" \ -H "Content-Type: application/json" \ -d '{ "source": "documents", "documents": [ { "id": "example-1", "title": "Example document" } ] }'{ "profile": { "version": 1, "sample_count": 0, "total_count": 0, "truncated": true, "fields": [ { "name": "string", "types": [ "string" ], "present_count": 0, "null_count": 0, "coverage": 0, "role": "id", "role_source": "inferred", "reasons": [ "string" ] } ], "domain_candidates": [ "commerce" ], "warnings": [ "string" ] }, "proposal": { "fields": [ { "name": "company_name", "type": "string", "optional": true, "facet": false, "index": true, "locale": "el", "sort": true, "infix": true, "reference": "string", "async_reference": true, "num_dim": 256, "drop": true, "store": true, "vec_dist": "string", "range_index": true, "stem": true, "stem_dictionary": "irregular-plurals", "token_separators": [], "symbols_to_index": [], "embed": { "from": [ "string" ], "model_config": { "model_name": "string", "api_key": "string", "url": "string", "access_token": "string", "refresh_token": "string", "client_id": "string", "client_secret": "string", "project_id": "string", "indexing_prefix": "string", "query_prefix": "string" } } } ], "query_by": [ "string" ], "roles": { "property1": "id", "property2": "id" }, "enable_nested_fields": true, "conflicts": [ "string" ] }, "capabilities": [ { "id": "keyword_search", "data": "candidate", "configuration": "unknown", "entitlement": "unknown", "verification": "unverified", "reasons": [ "string" ] } ]}Read the confirmed dataset profile GET
Returns confirmed field roles and the proposal for this collection. It contains no raw sample values. A stored proposal is not proof of runtime readiness.
Preview a dataset and proposed search configuration POST
Inspects a bounded inline sample without creating a collection, writing documents, fetching remote URLs or generating embeddings. Suggestions describe observed data, not verified capabilities. Explicit field-role overrides take precedence. Documents sources require documents and forbid content; text sources require nonempty content and forbid documents. Invalid combinations return 400. The complete preview payload is limited to 2 MiB UTF-8, 200 fields per object, eight nested document levels and 20,000 inspected values. Exceeding a request budget returns 400; analysis truncation is reported explicitly.