# API Reference

Although the **SDK** is the recommended way of using XO Search, a REST API is provided for convenience. This API provides a single endpoint, available with both `GET` and `POST` methods.

## Method

XO Search API supports both `GET` and `POST` methods:

* **`GET` requests:** parameters must be passed in the **URL**'s query string. Parameters must be [URL-encoded](https://en.wikipedia.org/wiki/Percent-encoding).
* **`POST` requests:** parameters must be passed in the **request body**, as *JSON*

Both will work the same as long as you follow the right format, which is described below.

## Format

The API uses ***JSON*** encoded as **UTF-8**.

The body of `POST` requests must be a *JSON* object and the `Content-Type` header should be set to `application/json; charset=UTF-8`.

The body of responses is always a *JSON* object, and the `Content-Type` is always `application/json; charset=UTF-8`.

## APIs

{% content-ref url="api/search-api" %}
[search-api](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api/search-api)
{% endcontent-ref %}

{% content-ref url="api/product-suggest-api" %}
[product-suggest-api](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api/product-suggest-api)
{% endcontent-ref %}

{% content-ref url="api/search-api-1" %}
[search-api-1](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api/search-api-1)
{% endcontent-ref %}

## Go further

For more detailed information about the parameters and usage, check the following pages.

{% content-ref url="api-parameters/search" %}
[search](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api-parameters/search)
{% endcontent-ref %}

{% content-ref url="api-parameters/pagination" %}
[pagination](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api-parameters/pagination)
{% endcontent-ref %}

{% content-ref url="api-parameters/faceting" %}
[faceting](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api-parameters/faceting)
{% endcontent-ref %}

{% content-ref url="api-parameters/sorting" %}
[sorting](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api-parameters/sorting)
{% endcontent-ref %}

{% content-ref url="api-parameters/grouping" %}
[grouping](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api-parameters/grouping)
{% endcontent-ref %}

{% content-ref url="api-parameters/filtering" %}
[filtering](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api-parameters/filtering)
{% endcontent-ref %}

{% content-ref url="api-parameters/disable-features" %}
[disable-features](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api-parameters/disable-features)
{% endcontent-ref %}

{% content-ref url="api-parameters/response-mask" %}
[response-mask](https://crownpeak.gitbook.io/product-discovery/resources/archived-pages/introduction/api-parameters/response-mask)
{% endcontent-ref %}
