Conversational AI API Reference Conversational AI is a REST API that provides developers with a framework and toolbox to formulate any request for, by using standard syntax technologies like HTTP Rest Services with a predefined set of URLs. These URLs represent various resources, any information or content accessed at that location, which can be returned as JSON, HTML, audio (speech) files or text.

API Endpoints Conversational AI is a set of HTTP endpoints that help your app integrate with These endpoints accept arguments as JSON in the request body and return results as JSON in the response body.

All Conversational AI API endpoints will be served on

Authentication/authAuthentication related functions
Dialogue/queryDialogue system Q/A and request/response

Dialogue endpoints will be user-tailored, making use of the RequestInfo header parametrization, prioritizing location over other results.

Header Parameters

All the API calls have common parameters in the header.

Request HeaderMandatoryDescription
• lang: The ISO 639-1 language code in lowercase.
• country: The country/region code as an uppercase ISO-3166 2-letter code.
ex: en-GB, en-US, es-ES, es-MX
Time-ZoneUser’s time zone, in GMT +/- time or long format.
ex: GMT+1:00, Europe/Berlin
AcceptThe response format of the body
In most cases, it will be application/json. Otherwise, it will be specified in each method description.
Content-TypeThe request format of the body.
In most cases, it will be application/json. Otherwise, it will be specified in each method description.

The specific header parameters will be defined on each API call.


Specific header where parameters are grouped in the form of a JSON object.

Besides the specific information to be sent to each endpoint, Sherpa-Request-Info will gather the request context as a request header field.
The fields in RequestInfo are optional. However, each additional piece of data helps fetch a more tailored response, so including as many fields as possible is recommended.

For some location-related requests (weather, restaurants, etc.), the latitude and longitude are required. If they are not included, no results will be returned.

For example, by setting the lat and lon fields to specify user location, can use that information to respond to queries such as "Where am I?" or "Recommend a restaurant near here."

country_codeStringThe country/region code as an uppercase ISO-3166 2-letter code
refStringReference ID data, from a previous query context


In order to make a text-based dialogue query regarding the weather, latitude and longitude parameters are mandatory in the RequestInformation data header.


curl -X POST "" \
-H  "Authorization: Basic XXXX-SHERPA-TOKEN-XXXX" \
-H "Sherpa-Request-Info:{\"lat\":37.468319,\"lon\":-122.143936}" \
-H  "Accept-Language: en-US" \
-H  "Time-Zone: Europe/Madrid"
-H  "accept: application/json" \
-H  "content-type: application/json" \
-d "{\"q\":\"what's the weather like?\"}"

Be aware that if you are using a tool like POSTMAN or PAW, you don't need to escape the Sherpa-Request-Info JSON, as the tool does it for you.


  "context": {"ref": 342673096},
  "nextActions": [{"data": ""}],
  "responses": {
    "query": "what's the weather like?",
    "text": "Right now, in East Palo Alto, it is 51 degrees and cloudy. The temperature will rise in the coming hours."


Each endpoint method will have a parameter table with explanatory information, along with an example. In this table, information will be provided for each field, like 'source', 'mandatory', 'type', and 'description'.

  • Field
    Parameter field
  • Source
    Where the parameter has to be placed

    • Query
      Parameter is part of the URL
    • Body
      The parameter is set inside the body payloads part of a POST/PUT type method request. These parameters will be in JSON format and will require the corresponding header to be set:

      -H  "content-type: application/json"
  • Mandatory
    Whether parameter is mandatory or not
  • Type
    Value type [String, Integer, etc.]
  • Description
    Additional information