Skip to main content
GET
/
search
/
complete?query=
{query}
Autocomplete: Get Suggestions
curl --request GET \
  --url 'https://app.uselayers.com/api/storefront/v1/search/complete?query={query}' \
  --header 'Accept: <accept>' \
  --header 'Content-Type: <content-type>' \
  --header 'X-Storefront-Access-Token: <x-storefront-access-token>'
{
    "matchedQueries": [
        {
            "query_text": "sup",
            "num_searches": 1
        },
        {
            "query_text": "supreme",
            "num_searches": 11
        }
    ],
    "originalQuery": "sup",
    "normalizedQuery": "sup"
}

Documentation Index

Fetch the complete documentation index at: https://docs.uselayers.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorization

X-Storefront-Access-Token
string
required
Token-based authentication header in the form of <YOUR_LAYERS_TOKEN>.

Headers

Content-Type
string
default:"application/json"
required
Accept
string
default:"application/json"
required

Query parameters

query
string
The partial query you want to retrieve suggestions for. When omitted, the endpoint returns default or trending suggestions.

Response

matchedQueries
Array of Objects
originalQuery
string
The original query text.
normalizedQuery
string
The normalized version of the original query text.
_meta
object
Metadata about the autocomplete response. Currently includes semantic redirect information when a match is found.
Semantic Redirects: When the autocomplete query semantically matches a configured semantic redirect term, the response includes a _meta.redirect object with the redirect URL. This allows you to redirect users directly from the typeahead experience before they submit a full search. Autocomplete suggestions are still returned alongside the redirect — your frontend decides whether to redirect immediately or show suggestions.

Suggestion quality

Layers applies several techniques to keep autocomplete suggestions relevant and concise.

Brand curation

You can layer a natural-language brand prompt on top of the default suggestion pipeline. Layers uses the prompt — together with your store description — to suppress off-brand suggestions and rewrite display labels for customers. Suppressed clusters never appear in matchedQueries, and curated clusters return their rewritten text in query_text. Matching against raw customer queries is unchanged. See Autocomplete curation for configuration details.

Stem deduplication

Autocomplete automatically collapses singular and plural variants of the same word into a single suggestion. For example, if your query data contains both “diamond” and “diamonds”, only the higher-scoring canonical form is returned. This also applies to other English stem variations like “berry” and “berries” or “long sleeve” and “long-sleeve”. Stem awareness extends to query matching as well. When you search for “diamonds”, autocomplete finds suggestions containing the singular “diamond” and vice versa. This means singular and plural queries produce identical suggestion lists, so your customers see the same results regardless of which form they type. When multiple suggestions share the same stem, the suggestion with the highest relevance score is kept. Shorter canonical forms (typically the singular) win ties, which keeps the suggestion list clean and predictable. Stem deduplication reduces clutter in the suggestion list and helps customers reach the best result faster.

Relevance gating

Suggestions that don’t closely match the query text are filtered out before results are returned. Prefix matches (where the query is the beginning of a suggestion) always pass through. Non-prefix matches must meet a minimum text-similarity threshold to appear. This prevents semantically distant suggestions from surfacing alongside direct matches.
{
    "matchedQueries": [
        {
            "query_text": "sup",
            "num_searches": 1
        },
        {
            "query_text": "supreme",
            "num_searches": 11
        }
    ],
    "originalQuery": "sup",
    "normalizedQuery": "sup"
}