Skip to main content

QSC API (1)

Download OpenAPI specification:Download

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

Authentication

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

X-QSC-Token: <your-token>

Two separate tokens are used depending on the operation:

Token Endpoints
Admin token Schema (/api/v1/searchapp/*)
Feeding token Feeding and scheduling (/api/v1/data/*, /api/v1/job/*)

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

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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
{ }