Download OpenAPI specification:Download
Public, token-authenticated REST API for embedding Interakt search and AI chat into your own applications.
All endpoints live under /api/v1. Authenticate with your experience’s access token via the X-Access-Token header (or Authorization: Bearer). Document ingestion uses a separate per-index X-Api-Key.
Executes a query against a Search Experience and returns ranked results, facets, and pagination.
| query required | string [ 1 .. 1000 ] characters |
| indexId | string <uuid> |
| searchType | string Enum: "lexical" "semantic" "hybrid" "auto" |
Array of objects | |
Array of objects | |
| page | integer >= 1 Default: 1 |
| pageSize | integer [ 1 .. 100 ] |
Array of objects | |
| includeFields | Array of strings |
| excludeFields | Array of strings |
{- "query": "string",
- "indexId": "05cc11c1-58f9-44ef-9820-239dea654e62",
- "searchType": "lexical",
- "filters": [
- {
- "field": "string",
- "operator": "string",
- "value": null,
- "filters": [
- null
]
}
], - "facets": [
- {
- "field": "string",
- "type": "string",
- "size": 1
}
], - "page": 1,
- "pageSize": 1,
- "sort": [
- {
- "field": "string",
- "direction": "asc"
}
], - "includeFields": [
- "string"
], - "excludeFields": [
- "string"
]
}{- "success": true,
- "data": {
- "results": [
- {
- "id": "string",
- "score": 0,
- "source": {
- "property1": null,
- "property2": null
}, - "highlights": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}
], - "total": {
- "value": 0,
- "relation": "string"
}, - "pagination": {
- "page": 0,
- "pageSize": 0,
- "totalPages": 0,
- "totalItems": 0,
- "hasNextPage": true,
- "hasPreviousPage": true
}, - "facets": [
- {
- "field": "string",
- "type": "string",
- "label": "string",
- "buckets": [
- {
- "key": "string",
- "count": 0
}
]
}
], - "took": 0,
- "searchExperienceId": "357c0fee-a0ad-4d89-ab62-bf3aa9defaf9",
- "indexesSearched": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "displayName": "string"
}
], - "displayConfig": {
- "property1": null,
- "property2": null
}
}
}Returns type-ahead suggestions for a partial query.
| query required | string [ 1 .. 200 ] characters |
| indexId | string <uuid> |
| maxSuggestions | integer [ 1 .. 20 ] |
{- "query": "string",
- "indexId": "05cc11c1-58f9-44ef-9820-239dea654e62",
- "maxSuggestions": 1
}{- "success": true,
- "data": {
- "suggestions": [
- {
- "text": "string",
- "score": 0,
- "field": "string",
- "indexId": "string",
- "indexName": "string",
- "highlight": "string"
}
], - "query": "string",
- "took": 0
}
}Returns a single document from the experience’s indexes, respecting field-level response config.
| documentId required | string Example: sku-12345 |
{- "success": true,
- "data": {
- "document": {
- "id": "string",
- "fields": {
- "property1": null,
- "property2": null
}, - "indexId": "string",
- "indexName": "string"
}, - "displayConfig": {
- "property1": null,
- "property2": null
}
}
}Generates an AI summary over a set of search results. Server-Sent Events stream (text/event-stream). Each line is data: <json>. Event objects carry a type of content | tool_call | tool_result | done | error.
| query required | string [ 1 .. 1000 ] characters |
Array of objects | |
required | Array of objects [ 1 .. 50 ] items |
| totalResults | integer >= 0 |
| instruction | string <= 500 characters |
{- "query": "string",
- "filters": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "results": [
- {
- "id": "string",
- "index": {
- "id": "string",
- "name": "string"
}, - "fields": {
- "property1": null,
- "property2": null
}
}
], - "totalResults": 0,
- "instruction": "string"
}{- "success": false,
- "error": "Invalid access token",
- "code": "UNAUTHORIZED",
- "details": [
- {
- "field": "string",
- "message": "string"
}
]
}Sends a user message to the AI Experience identified by the access token and streams the assistant response. Server-Sent Events stream (text/event-stream). Each line is data: <json>. Event objects carry a type of content | tool_call | tool_result | done | error.
| message required | string [ 1 .. 8000 ] characters |
| sessionId | string <= 200 characters |
{- "message": "string",
- "sessionId": "string"
}{- "success": false,
- "error": "Invalid access token",
- "code": "UNAUTHORIZED",
- "details": [
- {
- "field": "string",
- "message": "string"
}
]
}Returns the greeting, suggested questions, and branding flags a chat widget needs before the first message.
{- "success": true,
- "data": {
- "name": "string",
- "greeting": "string",
- "description": "string",
- "suggestedQuestions": [
- "string"
], - "placeholder": "string",
- "showBranding": true
}
}Returns a ready-to-paste HTML snippet (and resolved config) for the experience the token identifies.
| containerId | string DOM id the widget mounts into. |
{- "success": true,
- "data": {
- "widget": "chat",
- "experienceName": "string",
- "containerId": "string",
- "globalName": "string",
- "appliedConfig": {
- "theme": "string",
- "primaryColor": "string",
- "launcher": "string",
- "placement": "string"
}, - "html": "string"
}
}Uploads documents for indexing from an external system. Authenticated with a per-index ingestion key (X-Api-Key or Authorization: Bearer).
| id required | string <uuid> Search index UUID. |
required | Array of objects non-empty Array of document objects to index. | ||
Array (non-empty)
| |||
{- "documents": [
- {
- "property1": null,
- "property2": null
}
]
}{- "success": true,
- "data": {
- "indexed": 0,
- "failed": 0
}
}