Contextualize REST API: Query Context

Contextualize REST API: Query Context

Method description

Returns the top product attributes and the top specific products for a specific query. Both the attributes and specific products weights are calculated based on user clicks, add-to-carts and purchases and the values are normalized using a linear function.

With segmentation can send a user attributes list ("key":"value", ...) and number of tries in the request and the API try to return a segment data using this user attributes. If not have results for this user attributes in this number of tries it return the basic query context.

"topAttributes" objects don't have a fixed order and it may change in between requests. Although, values for each attribute are sorted by "weight" in descending order.

"topProducts" are sorted by "weight" in descending order.

HTTP method

GET

URL schema

/v2/querycontext/all/{client_id}?query={query}&lang={lang}&attributes.rows={attributes.rows}&products.rows={products.rows}&userAttributes={userAttributes}&maxTries={maxTries}&events.min={eventsMin}

URL example

/v2/querycontext/all/ebdemo?query=dress&lang=en&attributes.rows=3&products.rows=2&userAttributes=gender:male,size:M&maxTries=3&events.min=25

Path Parameters

Parameter name

Required

Description

client_id

Client identifier on the system

URI Parameters

Parameter name

Required

Description

Default

Parameter name

Required

Description

Default

query

Search term that user did

-

lang

Language of the query

-

attributes.rows

  

Number of values of each field

1

products.rows

  

Number of products to return

5

events.min

  

Minimum number of events required to return a field or product.

client configuration / 10

userAttributes

  

User attributes to get segmentation data

-

maxTries

 

Max tries to do segmentation intents

client configuration / 3

Responses

200 - successful request

Type: application/json

Example application/json
{ "topAttributes": [ { "field": "brand", "values": [ {"value": "apple", "weight": 3}, {"value": "sony", "weight": 1.8} ] }, { "field": "category", "values": [ {"value": "mobiles", "weight": 3} ] } ], "topProducts": [ {"value":"213115", weight:"3"}, {"value":"213149", weight:"1.3"} ] }
400 - mandatory query parameter is missing

Type: application/json

Example application/json
{ "code": 400, "error": "XXX is mandatory" }
404 - either client or endpoint don't exist

Type: application/json

Example application/json
{ "code": 404, "error": "XXX not found" }

Related articles