{"openapi":"3.1.0","info":{"title":"SuggestAPI","version":"0.1.0","description":"Public HTTP API for SuggestAPI. See https://www.suggestapi.com/docs/reference/ for guides and examples."},"servers":[{"url":"https://api.suggestapi.com"}],"paths":{"/v1/autocomplete":{"get":{"tags":["search"],"summary":"Autocomplete","operationId":"autocomplete_v1_autocomplete_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Query"}},{"name":"index","in":"query","required":false,"schema":{"type":"string","default":"default","title":"Index"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"}},{"name":"debug","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Debug"}},{"name":"profile","in":"query","required":false,"schema":{"type":"boolean","description":"Return per-stage performance breakdown in debug payload","default":false,"title":"Profile"},"description":"Return per-stage performance breakdown in debug payload"},{"name":"bypass_cache","in":"query","required":false,"schema":{"type":"boolean","description":"Bypass cache and fetch fresh results","default":false,"title":"Bypass Cache"},"description":"Bypass cache and fetch fresh results"},{"name":"filters","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON string of filters: {\"manufacturer\": [\"LMI\"], \"spec_hp\": {\"gte\": 5}}","title":"Filters"},"description":"JSON string of filters: {\"manufacturer\": [\"LMI\"], \"spec_hp\": {\"gte\": 5}}"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID for personalization (paid plans only)","title":"User Id"},"description":"User ID for personalization (paid plans only)"},{"name":"vector_backend","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Vector backend: turso | zvec","title":"Vector Backend"},"description":"Vector backend: turso | zvec"},{"name":"benchmark","in":"query","required":false,"schema":{"type":"boolean","description":"Run both vector backends and return timing info","default":false,"title":"Benchmark"},"description":"Run both vector backends and return timing info"},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Bypass-Cache","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Header to bypass cache","title":"X-Bypass-Cache"},"description":"Header to bypass cache"},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutocompleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/typeahead":{"get":{"tags":["search"],"summary":"Typeahead","description":"Fast typeahead endpoint using precomputed suggestions table.\n\nThis endpoint avoids FTS5 queries on every keystroke by using a precomputed\nsuggestions table. It's optimized for typeahead/autocomplete use cases.\n\nFeatures:\n- Spell correction integration\n- Typo-tolerant fuzzy matching\n- N-gram completions support\n\nFor full search with ranking and synonyms, use /autocomplete.","operationId":"typeahead_v1_typeahead_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Query"}},{"name":"index","in":"query","required":false,"schema":{"type":"string","default":"default","title":"Index"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}},{"name":"bypass_cache","in":"query","required":false,"schema":{"type":"boolean","description":"Bypass cache and fetch fresh results","default":false,"title":"Bypass Cache"},"description":"Bypass cache and fetch fresh results"},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Bypass-Cache","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Header to bypass cache","title":"X-Bypass-Cache"},"description":"Header to bypass cache"},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutocompleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes":{"get":{"tags":["indexes"],"summary":"List Indexes","description":"List all indexes for the current tenant.","operationId":"list_indexes_v1_indexes_get","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IndexView"},"title":"Response List Indexes V1 Indexes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["indexes"],"summary":"Create Index","description":"Create a new index.","operationId":"create_index_v1_indexes_post","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIndexRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexView"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/stream":{"get":{"tags":["indexes"],"summary":"Stream Indexes","description":"SSE endpoint for real-time index status updates.","operationId":"stream_indexes_v1_indexes_stream_get","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/stats":{"get":{"tags":["indexes"],"summary":"Get Index Stats","description":"Get statistics for an index.","operationId":"get_index_stats_v1_indexes__index_id__stats_get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/allocate-physical-id":{"post":{"tags":["indexes"],"summary":"Allocate Physical Index Id Endpoint","description":"Return a unique suggested ``physical_index_id`` for staging builds (before ``/promote``).","operationId":"allocate_physical_index_id_endpoint_v1_indexes__index_id__allocate_physical_id_post","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AllocatePhysicalIndexResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/promote":{"post":{"tags":["indexes"],"summary":"Promote Physical Index","description":"Atomically point live search/ingest at ``physical_index_id`` (Elasticsearch-style alias swap).","operationId":"promote_physical_index_v1_indexes__index_id__promote_post","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotePhysicalIndexRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}":{"delete":{"tags":["indexes"],"summary":"Delete Index","description":"Delete an index and all its data.","operationId":"delete_index_v1_indexes__index_id__delete","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/schema":{"get":{"tags":["indexes"],"summary":"Get Index Schema","description":"Get the schema configuration for an index.","operationId":"get_index_schema_v1_indexes__index_id__schema_get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["indexes"],"summary":"Update Index Schema","description":"Update the schema configuration for an index.","operationId":"update_index_schema_v1_indexes__index_id__schema_put","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/merchandising":{"get":{"tags":["indexes"],"summary":"Get Merchandising","description":"Get merchandising configuration for an index.","operationId":"get_merchandising_v1_indexes__index_id__merchandising_get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchandisingConfig"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["indexes"],"summary":"Update Merchandising","description":"Update merchandising configuration for an index (paid plans only).","operationId":"update_merchandising_v1_indexes__index_id__merchandising_put","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchandisingUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchandisingConfig"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/tasks":{"get":{"tags":["indexes"],"summary":"Get Index Tasks","description":"Get all tasks (ingestion and export jobs) for a specific index.","operationId":"get_index_tasks_v1_indexes__index_id__tasks_get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TaskResponse"},"title":"Response Get Index Tasks V1 Indexes  Index Id  Tasks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/export":{"get":{"tags":["indexes"],"summary":"Export Index","description":"Export all documents from an index as JSON.","operationId":"export_index_v1_indexes__index_id__export_get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/file-size-limit":{"get":{"tags":["ingest"],"summary":"Get File Size Limit","description":"Get the file size limit for the current tenant.","operationId":"get_file_size_limit_v1_indexes_file_size_limit_get","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileSizeLimitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/documents":{"post":{"tags":["ingest"],"summary":"Ingest Documents","description":"Ingest documents into an index.\n\nThis endpoint:\n1. Validates the index exists and belongs to the tenant\n2. Generates embeddings for each document (using stub backend)\n3. Inserts documents into the items table\n4. Updates the FTS index\n\nUse this for incremental upserts (single or small batches): it runs in the API\nprocess and does not enqueue Cloudflare indexing jobs. Bulk UI imports use\n``POST .../ingest/start`` instead when the batch is large.\n\nIMPORTANT: Ingestion requests are processed sequentially per index.\nThis endpoint will wait for any active ingestion jobs to complete\nbefore processing to ensure data consistency.","operationId":"ingest_documents_v1_indexes__index_id__documents_post","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["documents"],"summary":"List Documents","description":"List documents in an index with pagination.","operationId":"list_documents_v1_indexes__index_id__documents_get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Page Size"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/upload":{"post":{"tags":["ingest"],"summary":"Upload File","description":"Upload CSV, JSON, or JSONL file for bulk ingestion.\n\nSupports:\n- CSV files with headers (columns: id, title, desc, manufacturer, ...)\n- JSON files (array of documents)\n- JSONL files (one JSON object per line)\n\nFile size limits are determined uniformly for all file types (CSV, JSON, JSONL):\n1. Tenant-specific override (if set)\n2. Plan-based limit (from tenant's plan)\n3. Default limit (10MB)\n\nFiles larger than 20MB will use cloud storage presigned URLs.\nFiles larger than 50MB require cloud storage configuration.","operationId":"upload_file_v1_indexes__index_id__upload_post","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file_v1_indexes__index_id__upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartIngestionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/import/google-shopping":{"post":{"tags":["ingest"],"summary":"Import Google Shopping Feed","description":"Import products from a Google Shopping CSV feed.","operationId":"import_google_shopping_feed_v1_indexes__index_id__import_google_shopping_post","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_google_shopping_feed_v1_indexes__index_id__import_google_shopping_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartIngestionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/ingest/cloud-complete":{"post":{"tags":["ingest"],"summary":"Complete Cloud Upload","description":"Complete ingestion after file has been uploaded to cloud storage.\n\nThis endpoint should be called after the client has successfully uploaded\na file to cloud storage using the presigned URL. It will download the file from cloud storage\nand process it.","operationId":"complete_cloud_upload_v1_indexes__index_id__ingest_cloud_complete_post","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudCompleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartIngestionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/ingest/start":{"post":{"tags":["ingestion"],"summary":"Start Ingestion","description":"Start an ingestion job (immediate or background based on size).\n\nJSON body must be ``{\"documents\": [...]}`` or a raw JSON array (same as POST .../documents).\n\nIMPORTANT: Ingestion requests are processed sequentially per index.","operationId":"start_ingestion_v1_indexes__index_id__ingest_start_post","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"source_type","in":"query","required":false,"schema":{"type":"string","description":"Label stored on the job (e.g. api, paste); optional query parameter.","default":"api","title":"Source Type"},"description":"Label stored on the job (e.g. api, paste); optional query parameter."},{"name":"source_filename","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Filename"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartIngestionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/documents/{doc_id}":{"get":{"tags":["documents"],"summary":"Get Document","description":"Get a single document by ID.","operationId":"get_document_v1_indexes__index_id__documents__doc_id__get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","title":"Doc Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["documents"],"summary":"Update Document","description":"Update a document.","operationId":"update_document_v1_indexes__index_id__documents__doc_id__patch","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","title":"Doc Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDocumentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["documents"],"summary":"Delete Document","description":"Delete a document.","operationId":"delete_document_v1_indexes__index_id__documents__doc_id__delete","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","title":"Doc Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/predict":{"post":{"tags":["predict"],"summary":"Predict","description":"Predict endpoint scaffold.\n\nCurrent behavior:\n- validates tenant/index access\n- normalizes + spell-corrects query\n- returns candidate product suggestions from precomputed prefixes\n- stubs destination/intent/category candidates to shape the API contract","operationId":"predict_v1_predict_post","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ingestion-jobs":{"get":{"tags":["ingestion"],"summary":"List Ingestion Jobs","description":"List user's ingestion jobs (last 50).","operationId":"list_ingestion_jobs_v1_ingestion_jobs_get","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IngestionJobResponse"},"title":"Response List Ingestion Jobs V1 Ingestion Jobs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ingestion-jobs/{job_id}":{"get":{"tags":["ingestion"],"summary":"Get Ingestion Job","description":"Get ingestion job status.\n\nIf job is stuck (processing for too long), automatically detects and handles it.","operationId":"get_ingestion_job_v1_ingestion_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestionJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["ingestion"],"summary":"Delete Ingestion Job","description":"Cancel/delete an ingestion job.","operationId":"delete_ingestion_job_v1_ingestion_jobs__job_id__delete","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ingestion-jobs/{job_id}/stream":{"get":{"tags":["ingestion"],"summary":"Stream Ingestion Job","description":"SSE endpoint for real-time ingestion job progress.","operationId":"stream_ingestion_job_v1_ingestion_jobs__job_id__stream_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ingestion-jobs/{job_id}/requeue":{"post":{"tags":["ingestion"],"summary":"Requeue Ingestion Job","description":"Requeue a failed ingestion job (admin only).","operationId":"requeue_ingestion_job_v1_ingestion_jobs__job_id__requeue_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/indexes/{index_id}/export/start":{"post":{"tags":["export"],"summary":"Start Export","description":"Start an export job (immediate or background based on size).","operationId":"start_export_v1_indexes__index_id__export_start_post","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartExportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartExportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/export-jobs":{"get":{"tags":["export"],"summary":"List Export Jobs","description":"List user's export jobs (last 50).","operationId":"list_export_jobs_v1_export_jobs_get","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExportJobResponse"},"title":"Response List Export Jobs V1 Export Jobs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/export-jobs/{job_id}":{"get":{"tags":["export"],"summary":"Get Export Job","description":"Get export job status.","operationId":"get_export_job_v1_export_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["export"],"summary":"Delete Export Job","description":"Cancel/delete an export job.","operationId":"delete_export_job_v1_export_jobs__job_id__delete","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/export-jobs/{job_id}/stream":{"get":{"tags":["export"],"summary":"Stream Export Job","description":"SSE endpoint for real-time export job progress.","operationId":"stream_export_job_v1_export_jobs__job_id__stream_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/export-jobs/{job_id}/download":{"get":{"tags":["export"],"summary":"Download Export","description":"Download completed export file.","operationId":"download_export_v1_export_jobs__job_id__download_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/export-jobs/{job_id}/requeue":{"post":{"tags":["export"],"summary":"Requeue Export Job","description":"Requeue a failed export job (admin only).","operationId":"requeue_export_job_v1_export_jobs__job_id__requeue_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/exports/{filename}":{"get":{"tags":["export"],"summary":"Download Immediate Export","description":"Download an immediate export file.","operationId":"download_immediate_export_v1_exports__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/integrations":{"get":{"tags":["integrations"],"summary":"List Integrations","description":"List all integrations for the current tenant.","operationId":"list_integrations_v1_integrations_get","parameters":[{"name":"index_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationView"},"title":"Response List Integrations V1 Integrations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["integrations"],"summary":"Create Integration","description":"Create a new integration.","operationId":"create_integration_v1_integrations_post","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIntegrationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationView"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/integrations/{integration_id}":{"get":{"tags":["integrations"],"summary":"Get Integration","description":"Get a specific integration.","operationId":"get_integration_v1_integrations__integration_id__get","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationView"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["integrations"],"summary":"Update Integration","description":"Update an integration.","operationId":"update_integration_v1_integrations__integration_id__patch","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIntegrationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationView"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["integrations"],"summary":"Delete Integration","description":"Delete an integration.","operationId":"delete_integration_v1_integrations__integration_id__delete","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/integrations/{integration_id}/sync":{"post":{"tags":["integrations"],"summary":"Trigger Sync","description":"Manually trigger a sync for an integration.","operationId":"trigger_sync_v1_integrations__integration_id__sync_post","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/integrations/{integration_id}/sync-jobs":{"get":{"tags":["integrations"],"summary":"List Sync Jobs","description":"List sync jobs for an integration.","operationId":"list_sync_jobs_v1_integrations__integration_id__sync_jobs_get","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SyncJobView"},"title":"Response List Sync Jobs V1 Integrations  Integration Id  Sync Jobs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personalization/profiles":{"post":{"tags":["personalization"],"summary":"Create User Profile","description":"Create or update a user profile for personalization.\n\nRequires:\n- Paid plan\n- Personalization enabled in index schema","operationId":"create_user_profile_v1_personalization_profiles_post","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personalization/profiles/{user_id}":{"get":{"tags":["personalization"],"summary":"Get User Profile","description":"Get a user profile.\n\nRequires:\n- Paid plan\n- Personalization enabled in index schema","operationId":"get_user_profile_v1_personalization_profiles__user_id__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"index_id","in":"query","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["personalization"],"summary":"Delete User Profile","description":"Delete a user profile.","operationId":"delete_user_profile_v1_personalization_profiles__user_id__delete","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"index_id","in":"query","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personalization/events":{"post":{"tags":["personalization"],"summary":"Track User Event","description":"Track a user event (click, view, purchase, etc.) for personalization.\n\nRequires:\n- Paid plan\n- Personalization enabled in index schema","operationId":"track_user_event_v1_personalization_events_post","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEventRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/graph/recommendations/structural":{"get":{"tags":["graph"],"summary":"Get Structural Recommendations Endpoint","description":"Get product recommendations using structural edges.\n\nCombines recommendations from:\n- Same series (BELONGS_TO_SERIES)\n- Same application (FOR_APPLICATION)\n- Similar specs (HAS_SPEC)\n\nRequires:\n- Paid plan\n- Knowledge graph enabled in index schema","operationId":"get_structural_recommendations_endpoint_v1_graph_recommendations_structural_get","parameters":[{"name":"index","in":"query","required":true,"schema":{"type":"string","description":"Index ID","title":"Index"},"description":"Index ID"},{"name":"product_id","in":"query","required":true,"schema":{"type":"string","description":"Product ID to get recommendations for","title":"Product Id"},"description":"Product ID to get recommendations for"},{"name":"include_series","in":"query","required":false,"schema":{"type":"boolean","description":"Include products from same series","default":true,"title":"Include Series"},"description":"Include products from same series"},{"name":"include_application","in":"query","required":false,"schema":{"type":"boolean","description":"Include products for same application","default":true,"title":"Include Application"},"description":"Include products for same application"},{"name":"include_specs","in":"query","required":false,"schema":{"type":"boolean","description":"Include products with similar specs","default":true,"title":"Include Specs"},"description":"Include products with similar specs"},{"name":"limit_per_type","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Limit per recommendation type","default":5,"title":"Limit Per Type"},"description":"Limit per recommendation type"},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StructuralRecommendationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/graph/recommendations/series":{"get":{"tags":["graph"],"summary":"Get Products By Series Endpoint","description":"Get products in the same series as the given product.\n\nUses BELONGS_TO_SERIES edges to find related products.\n\nRequires:\n- Paid plan\n- Knowledge graph enabled in index schema","operationId":"get_products_by_series_endpoint_v1_graph_recommendations_series_get","parameters":[{"name":"index","in":"query","required":true,"schema":{"type":"string","description":"Index ID","title":"Index"},"description":"Index ID"},{"name":"product_id","in":"query","required":true,"schema":{"type":"string","description":"Product ID","title":"Product Id"},"description":"Product ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Maximum number of recommendations","default":10,"title":"Limit"},"description":"Maximum number of recommendations"},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductsBySeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/graph/recommendations/application":{"get":{"tags":["graph"],"summary":"Get Products By Application Endpoint","description":"Get products for the same application(s) as the given product.\n\nUses FOR_APPLICATION edges to find related products.\n\nRequires:\n- Paid plan\n- Knowledge graph enabled in index schema","operationId":"get_products_by_application_endpoint_v1_graph_recommendations_application_get","parameters":[{"name":"index","in":"query","required":true,"schema":{"type":"string","description":"Index ID","title":"Index"},"description":"Index ID"},{"name":"product_id","in":"query","required":true,"schema":{"type":"string","description":"Product ID","title":"Product Id"},"description":"Product ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Maximum number of recommendations","default":10,"title":"Limit"},"description":"Maximum number of recommendations"},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductsByApplicationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/graph/recommendations/specs":{"get":{"tags":["graph"],"summary":"Get Products By Specs Endpoint","description":"Get products with similar specs (matching HAS_SPEC edges).\n\nUses HAS_SPEC edges to find products with overlapping specifications.\n\nRequires:\n- Paid plan\n- Knowledge graph enabled in index schema","operationId":"get_products_by_specs_endpoint_v1_graph_recommendations_specs_get","parameters":[{"name":"index","in":"query","required":true,"schema":{"type":"string","description":"Index ID","title":"Index"},"description":"Index ID"},{"name":"product_id","in":"query","required":true,"schema":{"type":"string","description":"Product ID","title":"Product Id"},"description":"Product ID"},{"name":"min_matching_specs","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Minimum number of matching specs required","default":1,"title":"Min Matching Specs"},"description":"Minimum number of matching specs required"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Maximum number of recommendations","default":10,"title":"Limit"},"description":"Maximum number of recommendations"},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductsBySpecsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/graph/connected":{"post":{"tags":["graph"],"summary":"Get Connected Products Endpoint","description":"Get products connected to the given entity nodes.\n\nUses graph edges to find products connected to entities (brands, series, specs, applications).\n\nRequires:\n- Paid plan\n- Knowledge graph enabled in index schema","operationId":"get_connected_products_endpoint_v1_graph_connected_post","parameters":[{"name":"index","in":"query","required":true,"schema":{"type":"string","description":"Index ID","title":"Index"},"description":"Index ID"},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedProductsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedProductsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/graph/user-preferences":{"get":{"tags":["graph"],"summary":"Get User Preferences Endpoint","description":"Get user's preference entities and their weights.\n\nReturns entities (brands, applications, series) the user has shown preference for.\n\nRequires:\n- Paid plan","operationId":"get_user_preferences_endpoint_v1_graph_user_preferences_get","parameters":[{"name":"user_id","in":"query","required":true,"schema":{"type":"string","description":"User ID","title":"User Id"},"description":"User ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of preferences","default":50,"title":"Limit"},"description":"Maximum number of preferences"},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/graph/co-clicked":{"get":{"tags":["graph"],"summary":"Get Co Clicked Products Endpoint","description":"Get products that are frequently co-clicked with the given product.\n\nUses CO_CLICKED edges to find products users frequently view together.\n\nRequires:\n- Paid plan\n- Knowledge graph enabled in index schema","operationId":"get_co_clicked_products_endpoint_v1_graph_co_clicked_get","parameters":[{"name":"index","in":"query","required":true,"schema":{"type":"string","description":"Index ID","title":"Index"},"description":"Index ID"},{"name":"product_id","in":"query","required":true,"schema":{"type":"string","description":"Product ID","title":"Product Id"},"description":"Product ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Maximum number of recommendations","default":10,"title":"Limit"},"description":"Maximum number of recommendations"},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AcceptInviteRequest":{"properties":{"token":{"type":"string","title":"Token"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"}},"type":"object","required":["token"],"title":"AcceptInviteRequest"},"AcceptInviteResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type"}},"type":"object","required":["access_token","token_type"],"title":"AcceptInviteResponse"},"AdminIndexActionResponse":{"properties":{"status":{"type":"string","title":"Status"},"message":{"type":"string","title":"Message"},"index_id":{"type":"string","title":"Index Id"},"removed_ingestion_jobs":{"type":"integer","title":"Removed Ingestion Jobs","default":0},"removed_export_jobs":{"type":"integer","title":"Removed Export Jobs","default":0},"removed_catalog_scrape_jobs":{"type":"integer","title":"Removed Catalog Scrape Jobs","default":0},"removed_integrations":{"type":"integer","title":"Removed Integrations","default":0}},"type":"object","required":["status","message","index_id"],"title":"AdminIndexActionResponse"},"AdminTaskDeleteResponse":{"properties":{"status":{"type":"string","title":"Status"},"message":{"type":"string","title":"Message"},"id":{"type":"string","title":"Id"},"type":{"type":"string","enum":["ingestion","export","catalog_scrape"],"title":"Type"},"index_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Id"},"index_unlocked":{"type":"boolean","title":"Index Unlocked","default":false}},"type":"object","required":["status","message","id","type"],"title":"AdminTaskDeleteResponse"},"AdminTaskView":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","enum":["ingestion","export","catalog_scrape"],"title":"Type"},"tenant_id":{"type":"string","title":"Tenant Id"},"tenant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Name"},"index_id":{"type":"string","title":"Index Id"},"index_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Name"},"status":{"type":"string","title":"Status"},"progress":{"type":"integer","title":"Progress"},"total_docs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Docs"},"processed_docs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Processed Docs"},"failed_docs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failed Docs"},"source_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"},"source_filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Filename"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"technical_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Technical Detail","description":"Worker/support detail for catalog scrape (failure_reason, cloudflare_error, last_error)."},"created_at":{"type":"string","title":"Created At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","type","tenant_id","index_id","status","progress","created_at"],"title":"AdminTaskView"},"AllocatePhysicalIndexResponse":{"properties":{"physical_index_id":{"type":"string","title":"Physical Index Id"}},"type":"object","required":["physical_index_id"],"title":"AllocatePhysicalIndexResponse","description":"Suggested physical id for building a new index revision before promote."},"AutocompleteResponse":{"properties":{"query":{"type":"string","title":"Query"},"original_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Query"},"corrected_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Corrected Query"},"expanded_query":{"type":"string","title":"Expanded Query"},"mode":{"type":"string","title":"Mode"},"degraded":{"type":"boolean","title":"Degraded","default":false},"suggestions":{"items":{"$ref":"#/components/schemas/Suggestion"},"type":"array","title":"Suggestions"},"debug":{"anyOf":[{"$ref":"#/components/schemas/DebugInfo"},{"type":"null"}]}},"type":"object","required":["query","expanded_query","mode","suggestions"],"title":"AutocompleteResponse"},"BehaviorRecommendationsConfig":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":false},"dim":{"type":"integer","title":"Dim","default":64},"window":{"type":"integer","title":"Window","default":5},"epochs":{"type":"integer","title":"Epochs","default":5},"min_count":{"type":"integer","title":"Min Count","default":3},"negative":{"type":"integer","title":"Negative","default":10},"training_window_days":{"type":"integer","title":"Training Window Days","default":30},"min_session_length":{"type":"integer","title":"Min Session Length","default":2},"max_session_length":{"type":"integer","title":"Max Session Length","default":50},"max_sessions_per_user":{"type":"integer","title":"Max Sessions Per User","default":100},"fallback_to_content":{"type":"boolean","title":"Fallback To Content","default":true}},"type":"object","title":"BehaviorRecommendationsConfig","description":"Configuration for item2vec behavior-based recommendations (premium feature).\n\nTrains item embeddings from click sessions (skip-gram word2vec). Stored in Turso\nalongside content embeddings; queried via libsql ``vector_top_k`` for \"items\nsimilar to X by behavior\".\n\nDisabled by default. Requires sufficient click volume per index to be useful;\nbelow ~a few thousand multi-click sessions, the structural graph (CO_CLICKED\nedges, series/specs) outperforms this."},"BehaviorSimilarItem":{"properties":{"external_id":{"type":"string","title":"External Id"},"score":{"type":"number","title":"Score"},"source":{"type":"string","enum":["behavior","content"],"title":"Source"}},"type":"object","required":["external_id","score","source"],"title":"BehaviorSimilarItem"},"BehaviorSimilarResponse":{"properties":{"product_id":{"type":"string","title":"Product Id"},"items":{"items":{"$ref":"#/components/schemas/BehaviorSimilarItem"},"type":"array","title":"Items"},"model_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Version"},"fallback_used":{"type":"boolean","title":"Fallback Used","default":false}},"type":"object","required":["product_id","items"],"title":"BehaviorSimilarResponse"},"BehaviorUserResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BehaviorSimilarItem"},"type":"array","title":"Items"},"model_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Version"},"seed_count":{"type":"integer","title":"Seed Count"}},"type":"object","required":["items","seed_count"],"title":"BehaviorUserResponse"},"BillingStatusResponse":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"current_plan_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Plan Id"},"current_plan_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Plan Name"},"subscription_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Status"},"stripe_customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Customer Id"},"stripe_subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Subscription Id"},"can_manage_portal":{"type":"boolean","title":"Can Manage Portal","default":false}},"type":"object","required":["tenant_id"],"title":"BillingStatusResponse"},"Body_import_google_shopping_feed_v1_indexes__index_id__import_google_shopping_post":{"properties":{"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"},"feed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feed Url"}},"type":"object","title":"Body_import_google_shopping_feed_v1_indexes__index_id__import_google_shopping_post"},"Body_login_auth_token_post":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"grant_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grant Type"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret"},"g-recaptcha-response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"G-Recaptcha-Response"}},"type":"object","required":["username","password"],"title":"Body_login_auth_token_post"},"Body_upload_file_v1_indexes__index_id__upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_file_v1_indexes__index_id__upload_post"},"CatalogScrapeEligibilityResponse":{"properties":{"allowed":{"type":"boolean","title":"Allowed"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["allowed"],"title":"CatalogScrapeEligibilityResponse","description":"Whether a catalog crawl with the given max_pages would pass document quota preflight."},"CatalogScrapeStartRequest":{"properties":{"seed_urls":{"items":{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},"type":"array","maxItems":20,"minItems":1,"title":"Seed Urls"},"max_pages":{"type":"integer","maximum":500,"minimum":1,"title":"Max Pages","description":"Upper bound for crawl; also used for quota preflight.","default":200},"max_depth":{"type":"integer","maximum":5,"minimum":0,"title":"Max Depth","default":2},"recrawl":{"type":"boolean","title":"Recrawl","default":false},"debug_retain_r2_artifacts":{"type":"boolean","title":"Debug Retain R2 Artifacts","default":false}},"type":"object","required":["seed_urls"],"title":"CatalogScrapeStartRequest"},"ChangePasswordBody":{"properties":{"current_password":{"type":"string","maxLength":256,"minLength":1,"title":"Current Password"},"new_password":{"type":"string","maxLength":128,"minLength":8,"title":"New Password"}},"type":"object","required":["current_password","new_password"],"title":"ChangePasswordBody"},"ClickEventRequest":{"properties":{"index":{"type":"string","title":"Index","description":"Index ID"},"query":{"type":"string","title":"Query","description":"Original search query"},"suggestion_id":{"type":"string","title":"Suggestion Id","description":"ID of the clicked suggestion (external_id)"},"rank":{"type":"integer","minimum":1,"title":"Rank","description":"Position in results (1-based)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Optional user identifier"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session identifier"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional event metadata"}},"type":"object","required":["index","query","suggestion_id","rank"],"title":"ClickEventRequest","description":"Click event - when user clicks a suggestion."},"CloudCompleteRequest":{"properties":{"job_id":{"type":"string","maxLength":128,"minLength":1,"title":"Job Id"}},"type":"object","required":["job_id"],"title":"CloudCompleteRequest"},"ConnectedProductsRequest":{"properties":{"entity_keys":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Entity Keys"},"rel_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Rel Types"}},"type":"object","required":["entity_keys"],"title":"ConnectedProductsRequest","description":"Request for connected products."},"ConnectedProductsResponse":{"properties":{"entity_keys":{"items":{"type":"string"},"type":"array","title":"Entity Keys"},"products":{"items":{"type":"string"},"type":"array","title":"Products"}},"type":"object","required":["entity_keys","products"],"title":"ConnectedProductsResponse","description":"Response for connected products."},"ConvertEventRequest":{"properties":{"index":{"type":"string","title":"Index","description":"Index ID"},"suggestion_id":{"type":"string","title":"Suggestion Id","description":"ID of the converted suggestion (external_id)"},"conversion_type":{"type":"string","title":"Conversion Type","description":"Type: 'add_to_cart', 'purchase', 'navigate', etc."},"value":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Value","description":"Monetary value of conversion"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Optional user identifier"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session identifier"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","description":"Original search query (if available)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional event metadata"}},"type":"object","required":["index","suggestion_id","conversion_type"],"title":"ConvertEventRequest","description":"Conversion event - when user converts (adds to cart, purchases, etc.)."},"CreateApiKeyRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"type":{"type":"string","title":"Type","default":"public"},"allowed_indexes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Indexes"}},"type":"object","title":"CreateApiKeyRequest"},"CreateApiKeyResponse":{"properties":{"id":{"type":"string","title":"Id"},"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"prefix":{"type":"string","title":"Prefix"}},"type":"object","required":["id","key","name","prefix"],"title":"CreateApiKeyResponse"},"CreateCheckoutRequest":{"properties":{"plan_id":{"type":"string","title":"Plan Id"},"success_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success Url"},"cancel_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Url"}},"type":"object","required":["plan_id"],"title":"CreateCheckoutRequest"},"CreateCheckoutResponse":{"properties":{"url":{"type":"string","title":"Url"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","required":["url"],"title":"CreateCheckoutResponse"},"CreateIndexRequest":{"properties":{"index_id":{"type":"string","maxLength":256,"minLength":1,"title":"Index Id"},"name":{"type":"string","maxLength":500,"minLength":1,"title":"Name"}},"type":"object","required":["index_id","name"],"title":"CreateIndexRequest"},"CreateIntegrationRequest":{"properties":{"index_id":{"type":"string","title":"Index Id"},"integration_type":{"type":"string","title":"Integration Type"},"name":{"type":"string","title":"Name"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"sync_enabled":{"type":"boolean","title":"Sync Enabled","default":true},"sync_interval_minutes":{"type":"integer","title":"Sync Interval Minutes","default":60}},"type":"object","required":["index_id","integration_type","name","config"],"title":"CreateIntegrationRequest"},"CreatePortalRequest":{"properties":{"return_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Url"}},"type":"object","title":"CreatePortalRequest"},"CreatePortalResponse":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"CreatePortalResponse"},"DailyUsage":{"properties":{"day":{"type":"string","title":"Day"},"index_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Id"},"api_requests":{"type":"integer","title":"Api Requests"},"embedding_chars":{"type":"integer","title":"Embedding Chars"}},"type":"object","required":["day","index_id","api_requests","embedding_chars"],"title":"DailyUsage"},"DebugInfo":{"properties":{"ner_entities":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Ner Entities","default":[]},"features_used":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Features Used","default":{}},"normalized_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Normalized Query"},"fts_hits_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fts Hits Count"},"vector_hits_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vector Hits Count"},"search_mode_details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Mode Details"},"vector_backend":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vector Backend"},"benchmark":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Benchmark"},"performance_breakdown":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Performance Breakdown"},"graph_debug_enabled":{"type":"boolean","title":"Graph Debug Enabled","default":false},"knowledge_graph_in_search":{"type":"boolean","title":"Knowledge Graph In Search","default":false},"alpha_graph":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Alpha Graph"},"query_entity_keys":{"items":{"type":"string"},"type":"array","title":"Query Entity Keys","default":[]}},"type":"object","title":"DebugInfo"},"DisplayConfig":{"properties":{"title_field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title Field"},"subtitle_fields":{"items":{"type":"string"},"type":"array","title":"Subtitle Fields","default":[]},"image_field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Field"},"url_field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url Field"}},"type":"object","title":"DisplayConfig"},"Document":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"desc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Desc"},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manufacturer"},"raw":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Raw"}},"additionalProperties":true,"type":"object","title":"Document","description":"A document to be ingested."},"DocumentListResponse":{"properties":{"documents":{"items":{"$ref":"#/components/schemas/DocumentResponse"},"type":"array","title":"Documents"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["documents","total","page","page_size"],"title":"DocumentListResponse"},"DocumentResponse":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"desc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Desc"},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manufacturer"},"raw":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Raw"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"graph_entities":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Graph Entities"},"graph_brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graph Brand"},"graph_series":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graph Series"},"graph_specs":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Graph Specs"},"graph_applications":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Graph Applications"}},"type":"object","required":["id"],"title":"DocumentResponse","description":"A document from the index."},"EmailLoginRequestBody":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"recaptcha_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recaptcha Token"}},"type":"object","required":["email"],"title":"EmailLoginRequestBody"},"EmailLoginVerifyBody":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"code":{"type":"string","maxLength":32,"minLength":1,"title":"Code"},"recaptcha_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recaptcha Token"}},"type":"object","required":["email","code"],"title":"EmailLoginVerifyBody"},"EmbeddingConfig":{"properties":{"mode":{"type":"string","title":"Mode","default":"managed"},"provider":{"type":"string","title":"Provider","default":"local-modernbert"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","default":"answerdotai/ModernBERT-base"},"remote_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remote Model"},"dimension":{"type":"integer","title":"Dimension","default":768},"distance":{"type":"string","title":"Distance","default":"cosine"},"normalize":{"type":"boolean","title":"Normalize","default":true},"api_credential_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Credential Id"},"version":{"type":"integer","title":"Version","default":1}},"type":"object","title":"EmbeddingConfig"},"ExportJobResponse":{"properties":{"id":{"type":"string","title":"Id"},"index_id":{"type":"string","title":"Index Id"},"index_name":{"type":"string","title":"Index Name"},"status":{"type":"string","title":"Status"},"progress":{"type":"integer","title":"Progress"},"total_docs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Docs"},"file_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Url"},"file_size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size Bytes"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"created_at":{"type":"string","title":"Created At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","index_id","index_name","status","progress","created_at"],"title":"ExportJobResponse"},"FieldConfig":{"properties":{"type":{"type":"string","title":"Type"},"search":{"type":"boolean","title":"Search","default":false},"facet":{"type":"boolean","title":"Facet","default":false},"range":{"type":"boolean","title":"Range","default":false},"suggest":{"type":"boolean","title":"Suggest","default":false},"boost":{"type":"number","title":"Boost","default":1}},"type":"object","required":["type"],"title":"FieldConfig"},"FileSizeLimitResponse":{"properties":{"max_file_size_bytes":{"type":"integer","title":"Max File Size Bytes"},"max_file_size_mb":{"type":"number","title":"Max File Size Mb"},"max_file_size_gb":{"type":"number","title":"Max File Size Gb"}},"type":"object","required":["max_file_size_bytes","max_file_size_mb","max_file_size_gb"],"title":"FileSizeLimitResponse"},"ForgotPasswordBody":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"recaptcha_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recaptcha Token"}},"type":"object","required":["email"],"title":"ForgotPasswordBody"},"GoogleAuthCallbackRequest":{"properties":{"authorization_code":{"type":"string","title":"Authorization Code"}},"type":"object","required":["authorization_code"],"title":"GoogleAuthCallbackRequest"},"GoogleAuthCallbackResponse":{"properties":{"credentials":{"additionalProperties":true,"type":"object","title":"Credentials"}},"type":"object","required":["credentials"],"title":"GoogleAuthCallbackResponse"},"GoogleAuthResponse":{"properties":{"auth_url":{"type":"string","title":"Auth Url"}},"type":"object","required":["auth_url"],"title":"GoogleAuthResponse"},"GoogleSheetInfo":{"properties":{"spreadsheet_id":{"type":"string","title":"Spreadsheet Id"},"title":{"type":"string","title":"Title"},"sheets":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Sheets"}},"type":"object","required":["spreadsheet_id","title","sheets"],"title":"GoogleSheetInfo"},"GoogleSheetsListRequest":{"properties":{"credentials":{"additionalProperties":true,"type":"object","title":"Credentials"}},"type":"object","required":["credentials"],"title":"GoogleSheetsListRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InactiveFreeNotificationResultItem":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"tenant_name":{"type":"string","title":"Tenant Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"inactivity_days":{"type":"integer","title":"Inactivity Days"},"stage":{"type":"string","title":"Stage"},"status":{"type":"string","title":"Status"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["tenant_id","tenant_name","inactivity_days","stage","status"],"title":"InactiveFreeNotificationResultItem"},"IndexSchema":{"properties":{"primary_key":{"type":"string","title":"Primary Key"},"fields":{"additionalProperties":{"$ref":"#/components/schemas/FieldConfig"},"type":"object","title":"Fields"},"display":{"$ref":"#/components/schemas/DisplayConfig","default":{"subtitle_fields":[]}},"suggest":{"$ref":"#/components/schemas/SuggestConfig","default":{"primary_fields":[],"fallback_fields":[]}},"embedding":{"$ref":"#/components/schemas/EmbeddingConfig","default":{"mode":"managed","provider":"local-modernbert","model":"answerdotai/ModernBERT-base","dimension":768,"distance":"cosine","normalize":true,"version":1}},"search_mode":{"type":"string","title":"Search Mode","default":"hybrid"},"ranking":{"$ref":"#/components/schemas/RankingConfig","default":{"lexical_bias":0.5,"hybrid_lexical_weight":0.6,"hybrid_semantic_weight":0.4,"rerank_lexical_weight":0.7,"rerank_semantic_weight":0.3,"w_lexical":0.4,"w_semantic":0.3,"w_popular":0.2,"w_boost":0.1,"popularity_decay_days":90,"boost_rules":{}}},"merchandising":{"$ref":"#/components/schemas/MerchandisingConfig","default":{"pinned_results":{},"curated_results":{}}},"personalization":{"$ref":"#/components/schemas/PersonalizationConfig","default":{"enabled":false,"weights":{"fts":0.4,"personalization":0.2,"semantic":0.4}}},"knowledge_graph":{"$ref":"#/components/schemas/KnowledgeGraphConfig","default":{"enabled":false,"weights":{"fts":0.3,"graph":0.2,"personalization":0.2,"semantic":0.3},"entity_extraction":true,"query_expansion":true,"personalization":true}},"behavior_recommendations":{"$ref":"#/components/schemas/BehaviorRecommendationsConfig","default":{"enabled":false,"dim":64,"window":5,"epochs":5,"min_count":3,"negative":10,"training_window_days":30,"min_session_length":2,"max_session_length":50,"max_sessions_per_user":100,"fallback_to_content":true}},"synonyms":{"additionalProperties":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"object","title":"Synonyms","default":{}}},"type":"object","required":["primary_key","fields"],"title":"IndexSchema"},"IndexView":{"properties":{"id":{"type":"integer","title":"Id"},"index_id":{"type":"string","title":"Index Id"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status"},"document_count":{"type":"integer","title":"Document Count"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"active_physical_index_id":{"type":"string","title":"Active Physical Index Id"},"search_backend":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Backend"},"search_active_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Active Version"},"search_last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Last Error"},"search_ready_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Ready At"}},"type":"object","required":["id","index_id","name","status","document_count","created_at","updated_at","active_physical_index_id"],"title":"IndexView"},"IngestRequest":{"properties":{"documents":{"items":{"$ref":"#/components/schemas/Document"},"type":"array","minItems":1,"title":"Documents"}},"type":"object","required":["documents"],"title":"IngestRequest","description":"Body may be ``{\"documents\": [...]}`` or a raw JSON array of documents."},"IngestResponse":{"properties":{"status":{"type":"string","title":"Status"},"indexed_count":{"type":"integer","title":"Indexed Count"},"failed_count":{"type":"integer","title":"Failed Count"},"errors":{"items":{"type":"string"},"type":"array","title":"Errors","default":[]}},"type":"object","required":["status","indexed_count","failed_count"],"title":"IngestResponse"},"IngestionJobResponse":{"properties":{"id":{"type":"string","title":"Id"},"index_id":{"type":"string","title":"Index Id"},"index_name":{"type":"string","title":"Index Name"},"status":{"type":"string","title":"Status"},"progress":{"type":"integer","title":"Progress"},"total_docs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Docs"},"processed_docs":{"type":"integer","title":"Processed Docs"},"failed_docs":{"type":"integer","title":"Failed Docs"},"source_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"},"source_filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Filename"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"created_at":{"type":"string","title":"Created At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","index_id","index_name","status","progress","processed_docs","failed_docs","created_at"],"title":"IngestionJobResponse"},"IntegrationView":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"index_id":{"type":"string","title":"Index Id"},"integration_type":{"type":"string","title":"Integration Type"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"sync_enabled":{"type":"boolean","title":"Sync Enabled"},"sync_interval_minutes":{"type":"integer","title":"Sync Interval Minutes"},"last_sync_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Sync At"},"next_sync_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Sync At"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"error_count":{"type":"integer","title":"Error Count"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","tenant_id","index_id","integration_type","name","status","config","sync_enabled","sync_interval_minutes","last_sync_at","next_sync_at","last_error","error_count","created_at","updated_at"],"title":"IntegrationView"},"InviteCreateRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role","default":"member"}},"type":"object","required":["email"],"title":"InviteCreateRequest"},"InviteInfo":{"properties":{"email":{"type":"string","title":"Email"},"tenant_name":{"type":"string","title":"Tenant Name"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted At"}},"type":"object","required":["email","tenant_name","expires_at"],"title":"InviteInfo"},"InviteView":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id"},"email":{"type":"string","format":"email","title":"Email"},"role":{"type":"string","title":"Role"},"token":{"type":"string","title":"Token"},"invite_url":{"type":"string","title":"Invite Url"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted At"}},"type":"object","required":["id","tenant_id","email","role","token","invite_url","expires_at"],"title":"InviteView"},"KnowledgeGraphConfig":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":false},"weights":{"additionalProperties":{"type":"number"},"type":"object","title":"Weights"},"entity_extraction":{"type":"boolean","title":"Entity Extraction","default":true},"query_expansion":{"type":"boolean","title":"Query Expansion","default":true},"personalization":{"type":"boolean","title":"Personalization","default":true}},"type":"object","title":"KnowledgeGraphConfig","description":"Configuration for knowledge graph features (premium feature)."},"MerchandisingConfig":{"properties":{"pinned_results":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Pinned Results","default":{}},"curated_results":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Curated Results","default":{}}},"type":"object","title":"MerchandisingConfig","description":"Merchandising configuration for pinned/curated results."},"MerchandisingUpdateRequest":{"properties":{"pinned_results":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Pinned Results"},"curated_results":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Curated Results"}},"type":"object","title":"MerchandisingUpdateRequest"},"PersonalizationConfig":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":false},"weights":{"additionalProperties":{"type":"number"},"type":"object","title":"Weights"}},"type":"object","title":"PersonalizationConfig","description":"Configuration for search personalization (paid feature)."},"PlanCreateDTO":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"rate_limits":{"items":{"$ref":"#/components/schemas/PlanRateLimitDTO"},"type":"array","title":"Rate Limits"}},"type":"object","required":["name","rate_limits"],"title":"PlanCreateDTO"},"PlanDTO":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"rate_limits":{"items":{"$ref":"#/components/schemas/PlanRateLimitDTO"},"type":"array","title":"Rate Limits"}},"type":"object","required":["id","name","rate_limits"],"title":"PlanDTO"},"PlanDocumentLimitDTO":{"properties":{"plan_id":{"type":"string","format":"uuid","title":"Plan Id"},"max_documents_per_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Documents Per Index"},"max_documents_per_account":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Documents Per Account"}},"type":"object","required":["plan_id"],"title":"PlanDocumentLimitDTO"},"PlanFileSizeLimitDTO":{"properties":{"plan_id":{"type":"string","format":"uuid","title":"Plan Id"},"max_file_size_bytes":{"type":"integer","title":"Max File Size Bytes"}},"type":"object","required":["plan_id","max_file_size_bytes"],"title":"PlanFileSizeLimitDTO"},"PlanOverageConfigDTO":{"properties":{"plan_id":{"type":"string","format":"uuid","title":"Plan Id"},"included_api_requests_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Included Api Requests Per Month"},"included_embedding_chars_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Included Embedding Chars Per Month"},"overage_price_per_1k_requests":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Overage Price Per 1K Requests"},"overage_price_per_1m_chars":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Overage Price Per 1M Chars"}},"type":"object","required":["plan_id"],"title":"PlanOverageConfigDTO"},"PlanPublic":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"stripe_price_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Price Id"},"is_free":{"type":"boolean","title":"Is Free"}},"type":"object","required":["id","name","is_free"],"title":"PlanPublic"},"PlanRateLimitDTO":{"properties":{"category":{"type":"string","title":"Category"},"per_minute":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Minute"},"per_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Hour"},"per_day":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Day"},"burst":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Burst"},"allow_exceed_pct":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Allow Exceed Pct"}},"type":"object","required":["category"],"title":"PlanRateLimitDTO"},"PlanUpdateDTO":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"rate_limits":{"anyOf":[{"items":{"$ref":"#/components/schemas/PlanRateLimitDTO"},"type":"array"},{"type":"null"}],"title":"Rate Limits"}},"type":"object","title":"PlanUpdateDTO"},"PlanUsageChartPoint":{"properties":{"label":{"type":"string","title":"Label"},"iso_date":{"type":"string","title":"Iso Date"},"value":{"type":"integer","title":"Value"},"has_value":{"type":"boolean","title":"Has Value"}},"type":"object","required":["label","iso_date","value","has_value"],"title":"PlanUsageChartPoint"},"PlanUsageCounter":{"properties":{"label":{"type":"string","title":"Label"},"used":{"type":"integer","title":"Used"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"as_of_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"As Of Date"}},"type":"object","required":["label","used","limit"],"title":"PlanUsageCounter"},"PlanUsageRangeOption":{"properties":{"value":{"type":"string","title":"Value"},"label":{"type":"string","title":"Label"}},"type":"object","required":["value","label"],"title":"PlanUsageRangeOption"},"PlanUsageResponse":{"properties":{"indexes":{"$ref":"#/components/schemas/PlanUsageCounter"},"documents":{"$ref":"#/components/schemas/PlanUsageCounter"},"search_requests":{"$ref":"#/components/schemas/PlanUsageSeries"},"range":{"type":"string","title":"Range"},"range_start":{"type":"string","title":"Range Start"},"range_end":{"type":"string","title":"Range End"},"range_options":{"items":{"$ref":"#/components/schemas/PlanUsageRangeOption"},"type":"array","title":"Range Options"}},"type":"object","required":["indexes","documents","search_requests","range","range_start","range_end","range_options"],"title":"PlanUsageResponse"},"PlanUsageSeries":{"properties":{"label":{"type":"string","title":"Label"},"used":{"type":"integer","title":"Used"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"as_of_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"As Of Date"},"points":{"items":{"$ref":"#/components/schemas/PlanUsageChartPoint"},"type":"array","title":"Points"}},"type":"object","required":["label","used","limit","points"],"title":"PlanUsageSeries"},"PredictAlternative":{"properties":{"query":{"type":"string","title":"Query"},"confidence":{"type":"number","title":"Confidence"}},"type":"object","required":["query","confidence"],"title":"PredictAlternative"},"PredictCandidate":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","enum":["destination","intent","product","category"],"title":"Type"},"text":{"type":"string","title":"Text"},"score":{"type":"number","title":"Score"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["id","type","text","score"],"title":"PredictCandidate"},"PredictIncludeRequest":{"properties":{"alternatives":{"type":"boolean","title":"Alternatives","default":true},"supporting_suggestions":{"type":"boolean","title":"Supporting Suggestions","default":true},"debug":{"type":"boolean","title":"Debug","default":false}},"type":"object","title":"PredictIncludeRequest"},"PredictRequest":{"properties":{"index":{"type":"string","title":"Index"},"query":{"type":"string","maxLength":512,"minLength":1,"title":"Query"},"limit":{"type":"integer","maximum":50,"minimum":1,"title":"Limit","default":5},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"filters":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Filters"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"allowed_types":{"anyOf":[{"items":{"type":"string","enum":["destination","intent","product","category"]},"type":"array"},{"type":"null"}],"title":"Allowed Types"},"include":{"$ref":"#/components/schemas/PredictIncludeRequest"}},"type":"object","required":["index","query"],"title":"PredictRequest"},"PredictResponse":{"properties":{"query":{"type":"string","title":"Query"},"normalized_query":{"type":"string","title":"Normalized Query"},"corrected_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Corrected Query"},"predictions":{"items":{"$ref":"#/components/schemas/PredictCandidate"},"type":"array","title":"Predictions"},"alternatives":{"anyOf":[{"items":{"$ref":"#/components/schemas/PredictAlternative"},"type":"array"},{"type":"null"}],"title":"Alternatives"},"supporting_suggestions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Supporting Suggestions"},"debug":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Debug"}},"type":"object","required":["query","normalized_query","predictions"],"title":"PredictResponse"},"ProductsByApplicationResponse":{"properties":{"product_id":{"type":"string","title":"Product Id"},"application_products":{"items":{"type":"string"},"type":"array","title":"Application Products"}},"type":"object","required":["product_id","application_products"],"title":"ProductsByApplicationResponse","description":"Response for products by application."},"ProductsBySeriesResponse":{"properties":{"product_id":{"type":"string","title":"Product Id"},"series_products":{"items":{"type":"string"},"type":"array","title":"Series Products"}},"type":"object","required":["product_id","series_products"],"title":"ProductsBySeriesResponse","description":"Response for products by series."},"ProductsBySpecsResponse":{"properties":{"product_id":{"type":"string","title":"Product Id"},"similar_specs_products":{"items":{"type":"string"},"type":"array","title":"Similar Specs Products"}},"type":"object","required":["product_id","similar_specs_products"],"title":"ProductsBySpecsResponse","description":"Response for products by similar specs."},"ProfilePatchBody":{"properties":{"first_name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Last Name"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"time_zone":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Time Zone"}},"type":"object","title":"ProfilePatchBody"},"PromotePhysicalIndexRequest":{"properties":{"physical_index_id":{"type":"string","maxLength":512,"minLength":1,"title":"Physical Index Id"}},"type":"object","required":["physical_index_id"],"title":"PromotePhysicalIndexRequest","description":"Point live traffic at a different Turso physical index (blue/green swap)."},"RankingConfig":{"properties":{"lexical_bias":{"type":"number","title":"Lexical Bias","default":0.5},"hybrid_lexical_weight":{"type":"number","title":"Hybrid Lexical Weight","default":0.6},"hybrid_semantic_weight":{"type":"number","title":"Hybrid Semantic Weight","default":0.4},"rerank_lexical_weight":{"type":"number","title":"Rerank Lexical Weight","default":0.7},"rerank_semantic_weight":{"type":"number","title":"Rerank Semantic Weight","default":0.3},"w_lexical":{"type":"number","title":"W Lexical","default":0.4},"w_semantic":{"type":"number","title":"W Semantic","default":0.3},"w_popular":{"type":"number","title":"W Popular","default":0.2},"w_boost":{"type":"number","title":"W Boost","default":0.1},"popularity_field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Popularity Field"},"popularity_decay_days":{"type":"integer","title":"Popularity Decay Days","default":90},"boost_rules":{"additionalProperties":true,"type":"object","title":"Boost Rules","default":{}},"custom_doc_scores":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Custom Doc Scores"},"scoring_webhook":{"anyOf":[{"$ref":"#/components/schemas/ScoringWebhookConfig"},{"type":"null"}]}},"type":"object","title":"RankingConfig"},"RateLimitView":{"properties":{"category":{"type":"string","title":"Category"},"per_minute":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Minute"},"per_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Hour"},"per_day":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Day"},"current_minute":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Minute"},"current_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Hour"},"current_day":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Day"},"plan_name":{"type":"string","title":"Plan Name"},"overridden":{"type":"boolean","title":"Overridden"}},"type":"object","required":["category","per_minute","per_hour","per_day","current_minute","current_hour","current_day","plan_name","overridden"],"title":"RateLimitView"},"ReindexResponse":{"properties":{"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"immediate":{"type":"boolean","title":"Immediate"},"message":{"type":"string","title":"Message"},"indexed_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Indexed Count"},"failed_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failed Count"}},"type":"object","required":["immediate","message"],"title":"ReindexResponse","description":"Response for reindex operation."},"ResetPasswordBody":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"code":{"type":"string","maxLength":32,"minLength":1,"title":"Code"},"new_password":{"type":"string","maxLength":128,"minLength":8,"title":"New Password"},"recaptcha_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recaptcha Token"}},"type":"object","required":["email","code","new_password"],"title":"ResetPasswordBody"},"ResetPasswordRequest":{"properties":{"new_password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Password"}},"type":"object","title":"ResetPasswordRequest"},"ResetPasswordResponse":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id"},"temp_password":{"type":"string","title":"Temp Password"}},"type":"object","required":["user_id","temp_password"],"title":"ResetPasswordResponse"},"RevealApiKeyResponse":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"RevealApiKeyResponse"},"RunInactiveFreeNotificationsRequest":{"properties":{"dry_run":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dry Run","default":false}},"type":"object","title":"RunInactiveFreeNotificationsRequest"},"RunInactiveFreeNotificationsResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/InactiveFreeNotificationResultItem"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"RunInactiveFreeNotificationsResponse"},"RunOverageRequest":{"properties":{"dry_run":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dry Run","default":false}},"type":"object","title":"RunOverageRequest"},"RunOverageResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/RunOverageResultItem"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"RunOverageResponse"},"RunOverageResultItem":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"status":{"type":"string","title":"Status"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"amount_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Cents"}},"type":"object","required":["tenant_id","status"],"title":"RunOverageResultItem"},"ScoringWebhookConfig":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":false},"url":{"type":"string","title":"Url","default":""},"timeout_sec":{"type":"number","title":"Timeout Sec","default":2},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headers"}},"type":"object","title":"ScoringWebhookConfig","description":"Optional scoring webhook for pro/premium: we send query + candidates, you return per-doc score deltas."},"SignupResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type"},"public_api_key":{"type":"string","title":"Public Api Key"},"private_api_key":{"type":"string","title":"Private Api Key"},"public_api_key_id":{"type":"string","title":"Public Api Key Id"},"private_api_key_id":{"type":"string","title":"Private Api Key Id"}},"type":"object","required":["access_token","token_type","public_api_key","private_api_key","public_api_key_id","private_api_key_id"],"title":"SignupResponse"},"StartExportRequest":{"properties":{"format":{"type":"string","enum":["json","csv","jsonl"],"title":"Format","default":"json"}},"type":"object","title":"StartExportRequest"},"StartExportResponse":{"properties":{"immediate":{"type":"boolean","title":"Immediate"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"message":{"type":"string","title":"Message"}},"type":"object","required":["immediate","message"],"title":"StartExportResponse"},"StartIngestionResponse":{"properties":{"immediate":{"type":"boolean","title":"Immediate"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"message":{"type":"string","title":"Message"},"indexed_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Indexed Count"},"failed_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failed Count"},"presigned_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Presigned Url"},"r2_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"R2 Key"}},"type":"object","required":["immediate","message"],"title":"StartIngestionResponse"},"StructuralRecommendationsResponse":{"properties":{"product_id":{"type":"string","title":"Product Id"},"recommendations":{"items":{"type":"string"},"type":"array","title":"Recommendations"},"counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Counts"}},"type":"object","required":["product_id","recommendations","counts"],"title":"StructuralRecommendationsResponse","description":"Response for structural recommendations."},"SuggestConfig":{"properties":{"primary_fields":{"items":{"type":"string"},"type":"array","title":"Primary Fields","default":[]},"fallback_fields":{"items":{"type":"string"},"type":"array","title":"Fallback Fields","default":[]}},"type":"object","title":"SuggestConfig"},"Suggestion":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","title":"Type","default":"product"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"desc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Desc"},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manufacturer"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"discount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Discount"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"},"extra":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra"}},"type":"object","required":["id"],"title":"Suggestion"},"SyncJobView":{"properties":{"id":{"type":"string","title":"Id"},"integration_id":{"type":"string","title":"Integration Id"},"status":{"type":"string","title":"Status"},"documents_fetched":{"type":"integer","title":"Documents Fetched"},"documents_indexed":{"type":"integer","title":"Documents Indexed"},"documents_failed":{"type":"integer","title":"Documents Failed"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","integration_id","status","documents_fetched","documents_indexed","documents_failed","error","started_at","completed_at","created_at"],"title":"SyncJobView"},"TaskResponse":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","title":"Type"},"index_id":{"type":"string","title":"Index Id"},"index_name":{"type":"string","title":"Index Name"},"status":{"type":"string","title":"Status"},"progress":{"type":"integer","title":"Progress"},"total_docs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Docs"},"processed_docs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Processed Docs"},"failed_docs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failed Docs"},"source_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"},"source_filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Filename"},"file_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Url"},"file_size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size Bytes"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phase"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"created_at":{"type":"string","title":"Created At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"pages_crawled":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pages Crawled"},"products_extracted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Products Extracted"},"products_indexed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Products Indexed"},"build_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Version"},"build_duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Build Duration Ms"},"source_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Bytes"},"bundle_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bundle Bytes"},"records_per_second":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Records Per Second"},"container_instance_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Container Instance Type"},"estimated_total_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Total Cost Usd"}},"type":"object","required":["id","type","index_id","index_name","status","progress","created_at"],"title":"TaskResponse","description":"Unified task response for both ingestion and export jobs."},"TenantCatalogScrapeSettingsDTO":{"properties":{"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id"},"crawl_retry_base_delay_seconds_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crawl Retry Base Delay Seconds Override"},"crawl_retry_max_delay_seconds_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crawl Retry Max Delay Seconds Override"},"crawl_retry_max_attempts_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crawl Retry Max Attempts Override"}},"type":"object","required":["tenant_id"],"title":"TenantCatalogScrapeSettingsDTO"},"TenantCatalogScrapeSettingsUpdateDTO":{"properties":{"crawl_retry_base_delay_seconds_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crawl Retry Base Delay Seconds Override"},"crawl_retry_max_delay_seconds_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crawl Retry Max Delay Seconds Override"},"crawl_retry_max_attempts_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crawl Retry Max Attempts Override"}},"type":"object","title":"TenantCatalogScrapeSettingsUpdateDTO"},"TenantDocumentLimitDTO":{"properties":{"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id"},"max_documents_per_index_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Documents Per Index Override"},"max_documents_per_account_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Documents Per Account Override"}},"type":"object","required":["tenant_id"],"title":"TenantDocumentLimitDTO"},"TenantFileSizeLimitDTO":{"properties":{"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id"},"max_file_size_bytes_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max File Size Bytes Override"}},"type":"object","required":["tenant_id"],"title":"TenantFileSizeLimitDTO"},"TenantLimitsUpdateDTO":{"properties":{"overrides":{"items":{"$ref":"#/components/schemas/TenantRateLimitDTO"},"type":"array","title":"Overrides"}},"type":"object","required":["overrides"],"title":"TenantLimitsUpdateDTO"},"TenantLimitsViewDTO":{"properties":{"tenant":{"$ref":"#/components/schemas/TenantSummaryDTO"},"plan_rate_limits":{"items":{"$ref":"#/components/schemas/PlanRateLimitDTO"},"type":"array","title":"Plan Rate Limits"},"overrides":{"items":{"$ref":"#/components/schemas/TenantRateLimitDTO"},"type":"array","title":"Overrides"}},"type":"object","required":["tenant","plan_rate_limits","overrides"],"title":"TenantLimitsViewDTO"},"TenantPlanUpdateDTO":{"properties":{"plan_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Plan Id"}},"type":"object","title":"TenantPlanUpdateDTO"},"TenantRateLimitDTO":{"properties":{"category":{"type":"string","title":"Category"},"per_minute_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Minute Override"},"per_hour_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Hour Override"},"per_day_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Day Override"},"burst_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Burst Override"}},"type":"object","required":["category"],"title":"TenantRateLimitDTO"},"TenantSummaryDTO":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"plan_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Plan Id"},"plan_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Name"},"contact_emails":{"items":{"type":"string"},"type":"array","title":"Contact Emails"}},"type":"object","required":["id","name","plan_id","plan_name"],"title":"TenantSummaryDTO"},"UpdateApiKeyRequest":{"properties":{"allowed_indexes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Indexes"}},"type":"object","title":"UpdateApiKeyRequest"},"UpdateDocumentRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"desc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Desc"},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manufacturer"},"raw":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Raw"}},"type":"object","title":"UpdateDocumentRequest"},"UpdateIntegrationRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"sync_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sync Enabled"},"sync_interval_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sync Interval Minutes"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"UpdateIntegrationRequest"},"UsageSummary":{"properties":{"month":{"type":"string","title":"Month"},"total_api_requests":{"type":"integer","title":"Total Api Requests"},"total_embedding_chars":{"type":"integer","title":"Total Embedding Chars"},"estimated_cost_usd":{"type":"number","title":"Estimated Cost Usd"},"price_per_1k_requests":{"type":"number","title":"Price Per 1K Requests"},"price_per_1m_chars":{"type":"number","title":"Price Per 1M Chars"}},"type":"object","required":["month","total_api_requests","total_embedding_chars","estimated_cost_usd","price_per_1k_requests","price_per_1m_chars"],"title":"UsageSummary"},"UserCreate":{"properties":{"org_name":{"type":"string","title":"Org Name"},"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"},"first_name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Last Name"},"time_zone":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Time Zone","description":"IANA time zone from the browser (e.g. Intl). Invalid values are ignored."},"recaptcha_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recaptcha Token","description":"reCAPTCHA v2 response after rate limit (same as g-recaptcha-response in form posts)."}},"type":"object","required":["org_name","email","password"],"title":"UserCreate"},"UserCreateRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"tenant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Tenant Id"}},"type":"object","required":["email"],"title":"UserCreateRequest"},"UserEventRequest":{"properties":{"user_id":{"type":"string","title":"User Id"},"index_id":{"type":"string","title":"Index Id"},"doc_id":{"type":"string","title":"Doc Id"},"event_type":{"type":"string","title":"Event Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["user_id","index_id","doc_id","event_type"],"title":"UserEventRequest"},"UserProfileRequest":{"properties":{"user_id":{"type":"string","title":"User Id"},"index_id":{"type":"string","title":"Index Id"},"profile_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Text"},"likes_brand":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Likes Brand"},"likes_category":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Likes Category"},"dislikes_brand":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Dislikes Brand"},"dislikes_category":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Dislikes Category"}},"type":"object","required":["user_id","index_id"],"title":"UserProfileRequest"},"UserProfileResponse":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"index_id":{"type":"string","title":"Index Id"},"profile_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Text"},"likes_brand":{"items":{"type":"string"},"type":"array","title":"Likes Brand"},"likes_category":{"items":{"type":"string"},"type":"array","title":"Likes Category"},"dislikes_brand":{"items":{"type":"string"},"type":"array","title":"Dislikes Brand"},"dislikes_category":{"items":{"type":"string"},"type":"array","title":"Dislikes Category"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","user_id","index_id","profile_text","likes_brand","likes_category","dislikes_brand","dislikes_category","created_at","updated_at"],"title":"UserProfileResponse"},"UserRecsRequest":{"properties":{"index":{"type":"string","title":"Index"},"recent_external_ids":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Recent External Ids"},"limit":{"type":"integer","maximum":50,"minimum":1,"title":"Limit","default":10}},"type":"object","required":["index","recent_external_ids"],"title":"UserRecsRequest"},"UserResponse":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"is_superuser":{"type":"boolean","title":"Is Superuser"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"tenant_ids":{"items":{"type":"string"},"type":"array","title":"Tenant Ids"},"tenants":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Tenants"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"time_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Zone"}},"type":"object","required":["id","email","is_superuser","tenant_id","tenant_ids","tenants"],"title":"UserResponse"},"UserTenantAssignRequest":{"properties":{"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role","default":"member"}},"type":"object","required":["tenant_id"],"title":"UserTenantAssignRequest"},"UserTenantView":{"properties":{"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id"},"tenant_name":{"type":"string","title":"Tenant Name"},"role":{"type":"string","title":"Role"}},"type":"object","required":["tenant_id","tenant_name","role"],"title":"UserTenantView"},"UserUpdateRequest":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","title":"UserUpdateRequest"},"UserView":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"tenant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Tenant Id"},"tenant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Name"},"is_superuser":{"type":"boolean","title":"Is Superuser"}},"type":"object","required":["id","email","tenant_id","is_superuser"],"title":"UserView"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"app__api__admin__api_keys__ApiKeyView":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"key_display":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Display"},"status":{"type":"string","title":"Status"},"revoked":{"type":"boolean","title":"Revoked"},"created_at":{"type":"string","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used At"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix"},"tenant_id":{"type":"string","title":"Tenant Id"},"tenant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Name"}},"type":"object","required":["id","name","key_display","status","revoked","created_at","last_used_at","expires_at","prefix","tenant_id","tenant_name"],"title":"ApiKeyView"},"app__api__api_keys__ApiKeyView":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"key_display":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Display"},"status":{"type":"string","title":"Status"},"revoked":{"type":"boolean","title":"Revoked"},"created_at":{"type":"string","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used At"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix"},"allowed_indexes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Indexes"}},"type":"object","required":["id","name","key_display","status","revoked","created_at","last_used_at","expires_at","prefix"],"title":"ApiKeyView"}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/auth/token"}}}}}}