Skip to main content

QSC API (1)

Download OpenAPI specification:Download

Complete API reference for the Quasiris Search Cloud — schema management, document feeding, search, and agent chat.

Pass your token in the X-QSC-Token request header:

X-QSC-Token: <your-token>

Three different tokens share that header — use the one that matches the endpoint group:

Token Endpoints Source
Admin token Schema (/api/v1/searchapp/*) QSC Admin → Security → API Tokens
Feeding token Feeding and scheduling (/api/v1/data/*, /api/v1/job/*) QSC Admin → Security → API Tokens
Agent token Agent Chat (/api/v1/agent/chat/*) Agent-server AUTH_TOKEN

Search endpoints (/api/v1/search/*) require no authentication.

Most paths look like /{tenant}/{code}, but code is not the same resource in every group:

Endpoint group code means
Schema, Feeding, Search, Suggest Search app code (e.g. trendware)
Agent Chat Agent configuration code (e.g. support-bot)

Schema

Define the field schema of a search app (admin token required)

Update search app schema

Replaces the field schema of a search app. QSC syncs the search configuration accordingly. Requires admin token. After updating the schema call Schedule feeding job to re-index the data with the new field configuration.

Authorizations:
QscToken
path Parameters
tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

Request Body schema: application/json
required
required
Array of objects (SearchAppSchemaField)
Array
code
required
string

Field name — must match the key in your documents

dataType
required
string (FieldDataType)
Enum: "string" "long" "double" "boolean" "date" "categories" "attributes" "raw"

Data type of the field:

  • string – Text with full-text analysis
  • long – Integer number
  • double – Floating point number
  • boolean – Boolean (true/false)
  • date – ISO 8601 date
  • categories – Hierarchical category tree
  • attributes – Key/value attribute pairs
  • raw – Unanalyzed raw value
searchMode
string (SearchMode)
Default: "balanced"
Enum: "balanced" "fuzzy" "exact" "custom" "off"

How the field is searched:

  • balanced – Standard full-text search (default for string fields)
  • fuzzy – Fuzzy/ngram — tolerates typos and partial matches
  • exact – Exact phrase matching
  • custom – Preserves manually configured search settings
  • off – Field is not searched

Non-string types (long, double, boolean, date) only support exact, custom, and off.

weight
integer
Default: 1

Relevance boost — higher means more relevant

display
boolean
Default: false

Return this field in search results

facet
boolean
Default: false

Enable filtering/faceting by this field

sort
boolean
Default: false

Enable sorting by this field

suggest
boolean
Default: false

Include this field in search suggestions

navigation
boolean
Default: false

Use this field for navigation

semantic
boolean
Default: false

Enable semantic / vector search for this field

Responses

Request samples

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

Response samples

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

Scheduling

Trigger and schedule feeding jobs (feeding token required)

Schedule feeding job

Schedules a feeding job for the search app. Must be called after every schema update so that QSC re-indexes the data with the new field configuration. Requires feeding token.

Authorizations:
QscToken
path Parameters
tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Documents

Create, update, and delete individual documents (feeding token required)

Update document

Creates or updates a single document. The body must use the QSC header/payload format. Requires feeding token.

Authorizations:
QscToken
path Parameters
type
required
string
Enum: "qsc" "reporting"
Example: qsc

Document format type. Use qsc for the standard QSC JSON format.

tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

documentId
required
string
Example: product-1

Unique document identifier

Request Body schema: application/json
required
One of
required
object (DocumentHeaderUpdate)
required
object

Document fields — keys must match the schema field codes

Responses

Request samples

Content type
application/json
{
  • "header": {
    },
  • "payload": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "documentId": "product-1",
  • "operation": "update",
  • "state": "CREATED",
  • "type": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "finishedAt": "2019-08-24T14:15:22Z"
}

Delete document

Marks a document for deletion from the index. Requires feeding token.

Authorizations:
QscToken
path Parameters
type
required
string
Enum: "qsc" "reporting"
Example: qsc

Document format type. Use qsc for the standard QSC JSON format.

tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

documentId
required
string
Example: product-1

Unique document identifier

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "documentId": "product-1",
  • "operation": "update",
  • "state": "CREATED",
  • "type": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "finishedAt": "2019-08-24T14:15:22Z"
}

Get document

Returns the current indexed state of a document. Requires feeding token.

Authorizations:
QscToken
path Parameters
tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

documentId
required
string
Example: product-1

Unique document identifier

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Bulk

Send multiple documents in one request (feeding token required)

Bulk update documents

Creates or updates multiple documents in a single request using a JSON array. Each entry must contain a header (with id and action) and a payload (the document fields). Requires feeding token.

Authorizations:
QscToken
path Parameters
type
required
string
Enum: "qsc" "reporting"
Example: qsc

Document format type. Use qsc for the standard QSC JSON format.

tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

Request Body schema: application/json
required
Array
One of
required
object (DocumentHeaderUpdate)
required
object

Document fields — keys must match the schema field codes

Responses

Request samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "message": "OK",
  • "statusCode": 200,
  • "processedValidDocs": true,
  • "documents": [
    ]
}

Upload documents from file

Uploads a file of documents for bulk indexing. The file must contain a JSON array using the header/payload format. Requires feeding token.

Authorizations:
QscToken
path Parameters
type
required
string
Enum: "qsc" "reporting"
Example: qsc

Document format type. Use qsc for the standard QSC JSON format.

tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

Request Body schema: multipart/form-data
required
file
string <binary>

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "statusCode": 200,
  • "processedValidDocs": true,
  • "documents": [
    ]
}

Full Feed

Replace the entire index with a new dataset (feeding token required)

Start full feed

Begins a full-feed cycle. Send all documents via bulk or single-document endpoints, then call End full feed to swap the index. Documents not sent since Start are removed when the cycle ends. Requires feeding token.

Authorizations:
QscToken
path Parameters
tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

End full feed

Finalises the full-feed cycle and swaps the index. Documents not sent since Start full feed are removed from the live index. Requires feeding token.

Authorizations:
QscToken
path Parameters
tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Cancel full feed

Aborts the current full-feed cycle without modifying the live index. Requires feeding token.

Authorizations:
QscToken
path Parameters
tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

Responses

Search

Full-text search with filters, facets, and sorting (no auth required)

Search (GET)

Execute a search using query parameters. No authentication required. To filter by a facet, add a query parameter in the form f.{filterId}=value (e.g. f.brand=Acme). The filter ID must match a facet configured in the schema. Multiple values can be repeated: f.brand=Acme&f.brand=Stride.

path Parameters
tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

query Parameters
q
string
Example: q=running shoes

Search query string

page
integer
Default: 1
Example: page=1

Page number (1-based)

rows
integer
Default: 10
Example: rows=10

Number of results per page

sort
string
Example: sort=pricedesc

Sort identifier configured in the search app (e.g. pricedesc)

userId
string

User identifier for personalisation and tracking

sessionId
string

Session identifier for tracking

requestId
string

Custom request identifier echoed back in the response

requestOrigin
string

Origin of the request (e.g. web, app, api)

Responses

Response samples

Content type
application/json
{
  • "statusCode": 200,
  • "requestId": "string",
  • "time": 42,
  • "result": {
    }
}

Search (POST)

Execute a search using a JSON body. No authentication required.

path Parameters
tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

Request Body schema: application/json
required
q
string

Search query string

page
integer
Default: 1

Page number (1-based)

rows
integer
Default: 10

Number of results per page

object (SortDTO)

Sorting configuration. Only the sort field is used — it must be a sort ID pre-configured in the search app (e.g. pricedesc). The field and direction properties are not supported and are ignored.

object

Filters keyed by the facet ID configured in the schema. Each value is a Filter object.

userId
string

User identifier for personalisation and tracking

sessionId
string

Session identifier for tracking

requestId
string

Custom request identifier echoed back in the response

requestOrigin
string

Origin of the request (e.g. web, app)

Responses

Request samples

Content type
application/json
Example
{
  • "q": "shoes",
  • "page": 1,
  • "rows": 10
}

Response samples

Content type
application/json
{
  • "statusCode": 200,
  • "requestId": "string",
  • "time": 42,
  • "result": {
    }
}

Suggest

Query suggestions and autocomplete (no auth required)

Suggest (GET)

Returns autocomplete suggestions for a partial query. No authentication required.

path Parameters
tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

query Parameters
q
string
Example: q=running shoes

Search query string

rows
integer
Default: 10
Example: rows=10

Number of results per page

Responses

Response samples

Content type
application/json
{ }

Suggest (POST)

Returns autocomplete suggestions using a JSON body. No authentication required.

path Parameters
tenant
required
string
Example: demo

Tenant code (e.g. demo)

code
required
string
Example: trendware

Search app code (e.g. trendware). Not the agent configuration code used by Agent Chat.

Request Body schema: application/json
required
q
string

Search query string

page
integer
Default: 1

Page number (1-based)

rows
integer
Default: 10

Number of results per page

object (SortDTO)

Sorting configuration. Only the sort field is used — it must be a sort ID pre-configured in the search app (e.g. pricedesc). The field and direction properties are not supported and are ignored.

object

Filters keyed by the facet ID configured in the schema. Each value is a Filter object.

userId
string

User identifier for personalisation and tracking

sessionId
string

Session identifier for tracking

requestId
string

Custom request identifier echoed back in the response

requestOrigin
string

Origin of the request (e.g. web, app)

Responses

Request samples

Content type
application/json
{
  • "q": "runn",
  • "rows": 5
}

Response samples

Content type
application/json
{ }

Agent Chat

Send messages to a QSC Agent and receive Markdown/JSON responses. Path {code} is the agent configuration code (not a search app). Auth: agent-server AUTH_TOKEN (different from admin/feeding tokens).

Chat

Sends a user message to a QSC Agent and returns a single JSON response. Send type: init (no text required) as the first call to receive the configured welcome message and reset the session; otherwise text is required. Requires the agent-server's static token.

Authorizations:
AgentToken
path Parameters
tenant
required
string
Example: demo

Tenant code of the agent configuration (e.g. demo)

code
required
string
Example: support-bot

Agent configuration code (e.g. support-bot). Not a search app code — look up the agent config in QSC Admin.

Request Body schema: application/json
required
text
string

The user's message. Required unless type is init or attachments is non-empty.

type
string
Value: "init"

Set to init to start/reset a conversation and receive the configured welcome message instead of running the agent.

sessionId
string

Conversation/session identifier. Omit on the first call — the server generates one and returns it in the response; send it back on subsequent calls to keep history.

userId
string

Caller-supplied end-user identifier, forwarded for tracking.

id
string

Client-supplied message id, echoed back in the response.

model
string

Overrides the default LLM from the agent config for this request (must be one of the config's llm_models).

Array of objects (ChatAttachment)

Images or files to send alongside the message, sent inline as base64. Only supported for haystack: models — sending attachments with an openai: model returns 400.

Responses

Request samples

Content type
application/json
Example
{
  • "type": "init",
  • "sessionId": "3f8c9e2a-1b4d-4b2e-9c3a-6e7d8f1a2b3c"
}

Response samples

Content type
application/json
{
  • "type": "markdown",
  • "data": "string",
  • "id": "string",
  • "date": 1753088400000,
  • "session_id": "string",
  • "models": [
    ],
  • "streaming": true
}

Streaming Chat

Same request as Chat, but the response body is a stream of newline-delimited JSON objects rather than a single JSON document: zero or more delta lines { "data": "...", "streaming": true }, followed by exactly one final line — a full Chat response object with "streaming": false. Concatenate the data of all delta lines to get the full reply. Requires the agent-server's static token.

Authorizations:
AgentToken
path Parameters
tenant
required
string
Example: demo

Tenant code of the agent configuration (e.g. demo)

code
required
string
Example: support-bot

Agent configuration code (e.g. support-bot). Not a search app code — look up the agent config in QSC Admin.

Request Body schema: application/json
required
text
string

The user's message. Required unless type is init or attachments is non-empty.

type
string
Value: "init"

Set to init to start/reset a conversation and receive the configured welcome message instead of running the agent.

sessionId
string

Conversation/session identifier. Omit on the first call — the server generates one and returns it in the response; send it back on subsequent calls to keep history.

userId
string

Caller-supplied end-user identifier, forwarded for tracking.

id
string

Client-supplied message id, echoed back in the response.

model
string

Overrides the default LLM from the agent config for this request (must be one of the config's llm_models).

Array of objects (ChatAttachment)

Images or files to send alongside the message, sent inline as base64. Only supported for haystack: models — sending attachments with an openai: model returns 400.

Responses

Request samples

Content type
application/json
Example
{
  • "text": "What running shoes do you have under 100 euros?",
  • "sessionId": "3f8c9e2a-1b4d-4b2e-9c3a-6e7d8f1a2b3c"
}

Response samples

Content type
application/json
{
  • "type": "markdown",
  • "data": "string",
  • "id": "string",
  • "date": 1753088400000,
  • "session_id": "string",
  • "models": [
    ],
  • "streaming": true
}