> Check the new [Search onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/search-onboarding). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Search and is organized by focusing on the developer's journey. This API lets you search and sort products in the Catalog using Fulltext, Category
Accept(header, required) — HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
Content-Type(header, required) — Describes the type of the content being sent.
categoryId(path, required) — Category unique number identifier.
_from(query) — Starter page range. These parameters allow the API to be paginated. Take into account that the initial and final pages cannot have a separation superior to 50 pages. Thus, it will be displayed 50 items per page.
_to(query) — Finisher page range. These parameters allow the API to be paginated. Take into account that the initial and final pages cannot have a separation superior to 50 pages. Thus, it will be displayed 50 items per page.
GET
/api/catalog_system/pub/facets/search/{term}
Search by Store Facets
map(query, required) — Mapping of the term. It can be `c` for a category, `b` for a brand, or `specificationFilter_{specificationId}` for a specification. You need to include a map for each term you are searching for in the same term's order.
Accept(header, required) — HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
Content-Type(header, required) — Describes the type of the content being sent.
term(path, required) — Term used for the facet's search. You can search for as much term as you want. The term can be: `categoryId`, `brandId`, `specificationId`.
_from(query) — Starter page range. These parameters allow the API to be paginated. Take into account that the initial and final pages cannot have a separation superior to 50 pages. Thus, it will be displayed 50 items per page.
_to(query) — Finisher page range. These parameters allow the API to be paginated. Take into account that the initial and final pages cannot have a separation superior to 50 pages. Thus, it will be displayed 50 items per page.
Accept(header, required) — HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
Content-Type(header, required) — Describes the type of the content being sent.
productId(path, required) — Product unique number identifier.
skuId(path, required) — Product unique number identifier.
GET
/api/catalog_system/pub/products/search
Search for Products with Filter, Order and Pagination
Accept(header, required) — HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
Content-Type(header, required) — Describes the type of the content being sent.
_from(query) — Starter page range. These parameters allow the API to be paginated. Take into account that the initial and final pages cannot have a separation superior to 50 pages. Thus, it will be displayed 50 items per page.
_to(query) — Finisher page range. These parameters allow the API to be paginated. Take into account that the initial and final pages cannot have a separation superior to 50 pages. Thus, it will be displayed 50 items per page.
ft(query) — Filter by full text. The form is`ft={searchWord}`
fq(query) — General filter. It can be by category (`fq=C:/{a}/{b}`), by specification (`fq=specificationFilter_{a}:{b}`), by price range (`fq=P:[{a} TO {b}]`), by collection (`fq=productClusterIds:{{productClusterId}}`), by product ID (`fq=productId:{{productId}}`), by SKU ID (`fq=skuId:{{skuId}}`), by Reference ID (`fq=alternateIds_RefId:{{referenceId}}`), by EAN13 (`fq=alternateIds_Ean:{{ean13}}`), by availability at a specific sales channel (`fq=isAvailablePerSalesChannel_{{sc}}:{{bool}}`), by available at a specific seller (`fq=sellerId:{{sellerId}}`)
O(query) — Sorting method. It can be by Price (`O=OrderByPriceDESC` or `O=OrderByPriceASC`), by Top Selling Products (`O=OrderByTopSaleDESC`), by Best Reviews (`O=OrderByReviewRateDESC`), by Name (`O=OrderByNameASC` or `O=OrderByNameDESC`), by Release Date (`O=OrderByReleaseDateDESC`), by Best Discounts (`O=OrderByBestDiscountDESC`), by Score (`O=OrderByScoreDESC`)