> ## Documentation Index
> Fetch the complete documentation index at: https://algolia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# What is Autocomplete

> Autocomplete is an open source, production-ready JavaScript library for building autocomplete experiences.

export const Index = () => <Tooltip tip="An Algolia index is a searchable dataset that consists of records and configuration settings. These settings define how the records are searched and ranked.">
    index
  </Tooltip>;

<Tip>
  Autocomplete is also available as an experimental widget in InstantSearch,
  making it easier to integrate into your search experience.
  For more information,
  see the API reference for [InstantSearch.js](/doc/api-reference/widgets/autocomplete/js) or
  [React InstantSearch](/doc/api-reference/widgets/autocomplete/react).
</Tip>

A user types into an input, and the autocomplete suggests full terms or results to complete their thought.
This is the foundation of an autocomplete experience.

**Autocomplete is an ubiquitous part of most search experiences.**
Search providers like Google, ecommerce sites like Amazon,
and messaging apps like Slack all use autocomplete experiences on mobile and desktop.

Autocomplete can display completed search terms or direct search results.
This reduces typing effort—especially helpful on mobile devices—and helps users find what they need faster.
It can also surface products, searches, or pages they may not have thought of but are interested in.

You've likely already encountered Autocomplete-powered interfaces.
The Algolia documentation itself,
as well as sites like [React Native](https://reactnative.dev) and [Tailwind CSS](https://tailwindcss.com),
use Autocomplete through the [Algolia DocSearch](https://docsearch.algolia.com) project.

This library is flexible enough to power much more than documentation search.
**It's designed to help you build interactive and accessible autocomplete experiences, regardless of your use case.**

## What Autocomplete provides

Autocomplete is a JavaScript library that lets you quickly build autocomplete experiences.
All you need to get started is:

* A container to inject the experience into
* Data to fill the autocomplete with

The data that populates the autocomplete results are called [sources](/doc/ui-libraries/autocomplete/core-concepts/sources).
You can use whatever you want in your sources:
a static set of searches terms,
search results from an external source like an Algolia <Index />,
recent searches, and more.

By configuring just those two required parameters ([`container`](/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete#param-container)
and [`getSources`](/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete#param-get-sources))
you can have an interactive autocomplete experience.
**The library creates an input and provides the interactivity and accessibility attributes,
but you're in full control of the DOM elements to output.**

You don't have to display just suggested search terms,
you can display links for actual results themselves (rather than links to results pages)
or even display "actions" that a user can take from within an autocomplete.
For example, you could let your users turn dark mode on,
directly from an autocomplete, if they begin to type "dark mode".

You can also display different data types (such as suggested search terms, product results, and actions) differently.
The format of each data type and layout is customizable.

## What Autocomplete doesn't provide

Unlike [InstantSearch](/doc/guides/building-search-ui/what-is-instantsearch/js),
Autocomplete doesn't provide a library of ready-made UI widgets.
You're in control of the full rendering of your autocomplete experience,
and the library provides everything you need to make it functional and accessible.

You're also in charge of providing the collection of items to display.
You can easily plug Algolia results using [`getAlgoliaResults`](/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/getAlgoliaResults)
if you want, but you're free to use Autocomplete with any data sources you want.

Ready to learn more? Move on to [Getting started](/doc/ui-libraries/autocomplete/introduction/getting-started) to see a basic example in action.
