Search API

POST https://api-eu.attraqt.io/search

Search for items using the XO Search engine.

Request Body

NameTypeDescription

token

string

XO Search token (can be found in the XO Console)

query

string

The query string used for the search

options.offset

integer

Pagination:

\

If specified, only fetch results starting from this offset. It should be a multiple of

limit

parameter.

\

Defaults to 0.

\

Check

Pagination

page for more info.

options.limit

integer

Pagination:

\

If specified, fetch the specified number of results per page. Should be used in conjunction with

offset

.

\

Defaults to 10.

\

Check

Pagination

page for more info.

options.sortBy

array

Sorting:

\

Sort the results using the specified sort options.

\

Defaults to an empty array (no sort applied, ie. results are sorted by relevancy).

\

Check

Sorting

page for more info about the

sortBy

array format.

options.facets

array

Faceting:

\

Filters the results that match the provided facets names and values.

\

Defaults to an empty array (no filter applied).

\

Check

Faceting

page for more info about the

facets

array format.

options.filter

string

Filtering:

\

Filters the results based on the filter query (SQL-like syntax).

\

Defaults to an empty array (no filter applied).

\

Check

Filtering

page for more info about the

filter

string format.

options.customResponseMask

string

Attributes to retrieve:

\

If specified, you have the control which attributes to retrieve and which not to retrieve.

options.disable

array

Disable features:

\

If specified, disable features from the query.

\

Check

Disable features

page for more info about the

disable

array format.

Example search request

The following sample request includes all possible parameters you can use

POST https://api-eu.attraqt.io/search HTTP/1.1
Content-Type: application/json; charset=UTF-8

{
  "token": "SEARCH_API_TOKEN",
  "query": "T-Shirt",
  "options": {
    "offset": 40,
    "limit": 20,
    "sortBy": [
      {
        "attribute": "price",
        "order": "asc"
      }
    ],
    "facets": [
      {
        "id": "color",
        "values": ["red"]
      }
    ],
    "filter": "price < 100",
    "customResponseMask": "id, product(title, price, photo)",
    "disable": [{ "name": "facet" }]
  }
}

Search

GET https://api-eu.attraqt.io/search/:token

Same as the

POST

method. The

token

must be specified in the

URL

path. Other parameters should be url-encoded and send as a single query parameter.

Path Parameters

NameTypeDescription

token

string

XO Search token (can be found in the XO Console)

Query Parameters

NameTypeDescription

encoded

string

Every other parameters (as specified in the

POST

method), as a

URL-encoded JSON

object.

Response

The search response contains two parts:

PropertyTypeDescription

items

array

Array of fetched items from the catalog

metadata

object

Metadata about the search request: available facets, pagination, number of items, elapsed time, ...

items

The items matching the search query.

PropertyTypeDescription

id

string

ID of the item

score

number

Relevancy score of the item. Higher is better

product

object

If present, contains the item's attributes, as specified in the XO catalog

redirect

object

If present, a search redirect was triggered, and contains the redirect information

metadata

Metadata about the search query and its results.

PropertyTypeDescription

count

number

Number of items matching the query

time

number

Time the request took to complete (in milliseconds)

token

string

Search API token used for the request

url

string

Equivalent url that can be used to send the same request

offset

number

Pagination: index of the first fetched item

limit

number

Pagination: Size of the page (ie. number of elements returned)

facets

string

List of facets (and their values) matching the query. Facets must be defined in the XO console.

id

string

Unique identifier

configurationId

string

Search configuration id used

exactCount

boolean

If true, the count of the results is exact

Example

{
  "items": [
    ...
  ],
  "metadata": {
    "id": "573e30b1-7d97-46a0-bbe0-110527150534",
    "configurationId": "cddda87b-c99d-45aa-bf45-cd53d2bc8ace",
    "count": 170,
    "exactCount": true,
    "time": 35.23,
    "token": "a28570e6ac94e8d86c19e820",
    "url": "/search?...",
    "offset": 19,
    "limit": 20,
    "facets": [
      {
        "id": "color",
        "title": "Color",
        "count": 2,
        "values": [
          {
            "value": "red",
            "count": 25,
            "selected": true
          },
          {
            "value": "blue",
            "count": 5,
            "selected": false
          }
        ]
      }
    ]
  }
}

Last updated