Instant Typeahead Search

With Instant Typeahead Search, you can provide autocomplete suggestions as the user is typing. Even if they've only typed one or two characters, Miso can anticipate what they're looking for and connect them with the right products on your site.

Example for Instant Typeahead Search

Introduction

When a site supports Instant Typeahead Search, users will see a list of suggested search results appear as they're typing a query, with the most relevant options at the top. Since sites like Google have offered powerful personalized autocomplete for years, users expect this functionality across the web. It's essential to help people find what they're looking for faster and enable them to discover new products on your site.

Using Miso's Autocomplete API, you'll get results that adapt in real time to connect users with precisely what they're looking for, even if they've only typed one or two characters. The Autocomplete API is similar to the Search API and is typo-resistant, meaning that Miso can still find the right results if the query contains spelling mistakes. As always, you have control over which results show here using [boosting, filtering, and other advanced parameters](/deep-dives/filtering-boosting-and-other-advanced-topics).

Instant Typeahead Search is usually implemented together with Personalized Search, letting you provide the full-powered search experience that users have come to expect from marketplaces on the web today.

Before You Start

API Call / JSON Response

To fetch your Instant Typeahead Search results, POST to the Autocomplete API with the following minimum parameters:

  • user_id or anonymous_id: The user or anonymous visitor to personalize the recommendations for
  • q: The partial search query that the user has entered.

By default, we only autocomplete against the value in the title field. The completion_fields parameter lets you specify the attributes you want to autocomplete against.

Miso will return a list of completions containing both the autocompletion text and the product_id for instant linking.

Don't forget: there are many parameters you can use to optimize and filter the results that Miso returns, such as fq , boost_fq , and order_by .
Read more in the deep dive

Example API Call

POST /v1/search/autocomplete?api_key=<API_KEY> HTTP/1.1
{
    "user_id":"user-123",
    "completion_fields":["suggested_queries","title"],
    "q":"bab",
    "rows":6
}

Example JSON Response

{
    "message": "success",
    "data": {
        "took": 38,
        "miso_id": "ae75e25c-ddf4-11eb-9862-ba7ee8b57635",
        "completions": {
            "suggested_queries": [
                {
                    "text": "baby wipes",
                    "text_with_markups": "bab<mark>y wipes</mark>",
                    "text_with_inverted_markups": "<mark>bab</mark>y wipes"
                },
                {
                    "text": "baby food",
                    "text_with_markups": "bab<mark>y food</mark>",
                    "text_with_inverted_markups": "<mark>bab</mark>y food"
                },
                {
                    "text": "baby bottle",
                    "text_with_markups": "bab<mark>y bottle</mark>",
                    "text_with_inverted_markups": "<mark>bab</mark>y bottle"
                },
                ...
            ],
            "title": [
                {
                    "text": "Pampers Baby Wipes Sensitive 56ct",
                    "text_with_markups": "<mark>Pampers </mark>Bab<mark>y Wipes Sensitive 56ct</mark>",
                    "text_with_inverted_markups": "Pampers <mark>Bab</mark>y Wipes Sensitive 56ct",
                    "product": {
                        "product_id": "pampers-baby-wipes",
                        "_boosted": false
                    }
                },
                {
                    "text": "Pampers Diapers Baby-Dry Size 6 21ct",
                    "text_with_markups": "<mark>Pampers Diapers </mark>Bab<mark>y-Dry Size 6 21ct</mark>",
                    "text_with_inverted_markups": "Pampers Diapers <mark>Bab</mark>y-Dry Size 6 21ct",
                    "product": {
                        "product_id": "pampers-diapers-baby-dry",
                        "_boosted": false
                    }
                },
                ...
            ]
        }
    }
}

Before You Launch

Using this API recipe as a starting point, test API calls to your engine in development
If you haven't already, build pipelines to stream your real-time data updates to Miso via API. Your Miso solutions engineer is here to help with the integration.
Start using this API recipe to power the UX on your site in staging. If you need UX recommendations, ask your Miso solutions engineer about Bento .
Run an A/B test with Miso on simulated website traffic. If desired, your Miso solutions engineer can perform this test and provide a report.
If this is your first time launching with Miso, ask your Miso solutions engineer to unlock your production environment.
Replicate your Data and Engine API calls on production and set up the same engine in your production environment in Dojo.
Review your data and engine performance in Dojo.
Turn on this recipe for a percentage of your users and scale up to a full rollout. Notify your Miso solutions engineer who will monitor the launch metrics.

API Reference

💻

Need more info on the API? Check out our dedicated API page with all the info you could ever want.

Read API Reference
Icon/Activity Icon/Add Icon/API Icon/Arrow/Down Icon/Arrow/Left Icon/Arrow/Right Icon/Arrow/TopRight Icon/Arrow/Up Icon/Bento Icon/Billing Icon/Bin Icon/Book Icon/Bookmark/Default Icon/Bookmark/Filled Icon/Calendar Icon/Caret/Down Icon/Caret/Up Icon/Chavron/DownIcon/Chavron/LeftIcon/Chavron/RightIcon/Chavron/UpIcon/Checknox/CheckedIcon/Checknox/Unchecked Icon/Checklist Icon/Chip Icon/Clipboard / Copied Icon/Clipboard/Default Icon/Clock/Stopwatch Icon/CMD Icon/Data/Catalog Icon/Data/Engine Icon/Data/Group Icon/Data/Interact Icon/Data/Users Icon/Dive Icon/Docs/Key Icon/Dojo Icon/Email Icon/Env/Development Icon/Env/Playground Icon/Env/Prod Icon/Folder Icon/Fullscreen/Collapse Icon/Fullscreen/Expand Icon/Guides/Multiple Icon/Guides/Single Icon/Hashtag Icon/Heart/Outline Icon/Heart/Solid Icon / Cart z Icon / Click Icon / Clock Icon / Data Icon / Doc Icon / EmptyCart z Icon/Social/Facebook Icon / Genome Incognito Icon / Money Icon/Social/ProductHunt Icon / Search Icon/Social/Twitter Icon / User Icon/Info/Error Icon/Info/Info Icon/Info/Question Icon/Info/Warning Icon/Interact/Download Icon/Interact/Edit Icon/Interact/External v2 Icon/Interact/External Icon/Interact/Filter Icon/Interact/Logout Icon/Interact/Options Icon/Interact/Re-order Icon/Interact/Reload Icon/Interact/Remove Icon/Interact/Replace Icon/Interact/Search Icon/Interact/Shuffle Icon/Interact/Undo Icon/Interact/Upload Icon/Interact/Video Icon/Invoice Icon/Loading Icon/Loading Icon/Lock/Locked Icon/Lock/Unlocked Icon/Lock Icon/Mapping Menu Icon/Notification Icon/Overview Icon/Person/Team Icon/Person/User Icon/Plan/Enterprise Icon/Plan/Growth Icon/Plan/Startup Icon/Plan/Trial Icon/Recipe Icon/Rocket Icon/Settings/App Icon/Settings/User Icon/Settings Icon/Shrine Icon/Sidebar/Close Icon/Sidebar/Open Icon/Slideout Icon/Sort/Ascending Icon/Sort/Default Icon/Sort/Descending Icon/Star/Filled Icon/Star/Outlined Stopwatch Icon/Support Icon/Tag Icon/Interact/Thumb/Dislike Icon/Interact/Thumb/Like Icon/Tick Icon/Trend/New Icon/Trend/Trending Icon/Tutorial Icon/Lock/Unlocked Icon/View/Grid Icon/View/List Icon/Watchlist/Add