Skip to main content

Interakt Public API (1.0.0)

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.

Search

Query indexes and fetch documents.

Run a search query

Executes a query against a Search Experience and returns ranked results, facets, and pagination.

Authorizations:
AccessTokenBearerAuth
Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "query": "string",
  • "indexId": "05cc11c1-58f9-44ef-9820-239dea654e62",
  • "searchType": "lexical",
  • "filters": [
    ],
  • "facets": [
    ],
  • "page": 1,
  • "pageSize": 1,
  • "sort": [
    ],
  • "includeFields": [
    ],
  • "excludeFields": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Autocomplete suggestions

Returns type-ahead suggestions for a partial query.

Authorizations:
AccessTokenBearerAuth
Request Body schema: application/json
query
required
string [ 1 .. 200 ] characters
indexId
string <uuid>
maxSuggestions
integer [ 1 .. 20 ]

Responses

Request samples

Content type
application/json
{
  • "query": "string",
  • "indexId": "05cc11c1-58f9-44ef-9820-239dea654e62",
  • "maxSuggestions": 1
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Fetch a document by ID

Returns a single document from the experience’s indexes, respecting field-level response config.

Authorizations:
AccessTokenBearerAuth
path Parameters
documentId
required
string
Example: sku-12345

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

AI

AI summaries and chat experiences.

Summarize search results (streaming)

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.

Authorizations:
AccessTokenBearerAuth
Request Body schema: application/json
query
required
string [ 1 .. 1000 ] characters
Array of objects
required
Array of objects [ 1 .. 50 ] items
totalResults
integer >= 0
instruction
string <= 500 characters

Responses

Request samples

Content type
application/json
{
  • "query": "string",
  • "filters": [
    ],
  • "results": [
    ],
  • "totalResults": 0,
  • "instruction": "string"
}

Response samples

Content type
application/json
{
  • "success": false,
  • "error": "Invalid access token",
  • "code": "UNAUTHORIZED",
  • "details": [
    ]
}

Chat with an AI Experience (streaming)

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.

Authorizations:
AccessTokenBearerAuth
Request Body schema: application/json
message
required
string [ 1 .. 8000 ] characters
sessionId
string <= 200 characters

Responses

Request samples

Content type
application/json
{
  • "message": "string",
  • "sessionId": "string"
}

Response samples

Content type
application/json
{
  • "success": false,
  • "error": "Invalid access token",
  • "code": "UNAUTHORIZED",
  • "details": [
    ]
}

Public widget configuration

Returns the greeting, suggested questions, and branding flags a chat widget needs before the first message.

Authorizations:
AccessTokenBearerAuth

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Embed

Drop-in widget embedding.

Get the drop-in embed snippet

Returns a ready-to-paste HTML snippet (and resolved config) for the experience the token identifies.

Authorizations:
AccessTokenBearerAuth
query Parameters
containerId
string

DOM id the widget mounts into.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Ingestion

Push documents into an index.

Ingest documents into an index

Uploads documents for indexing from an external system. Authenticated with a per-index ingestion key (X-Api-Key or Authorization: Bearer).

Authorizations:
IngestApiKeyBearerAuth
path Parameters
id
required
string <uuid>

Search index UUID.

Request Body schema: application/json
required
Array of objects non-empty

Array of document objects to index.

Array (non-empty)
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "documents": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}