Search technology
to power your business

Accelerate the user experience

Underarmour logo

Accelerate
conversions

Twitch logo

Power content discovery
for 100 million viewers

Lacoste logo

Better relevance
and higher sales

Stripe logo

Global help desk
deployed in days

Search beyond the box.

Algolia's full suite APIs enable teams to develop unique search and discovery experiences for their customers across all platforms and devices. Type a query. Click a link. Open an app. Everything your customers do sends a signal about what they want. Algolia decodes that intent to deliver the right content - instantly.

Search input illustration

Find

Help customers find what they are searching for

Create frictionless find-to-conversion paths by connecting users with exactly what they're looking for, with lightning fast and highly relevant search.

Learn more
Recommended products illustration

Discover

Create a path for customers to discover

Go beyond the search box with navigation, browse, and content discovery experiences powered by Algolia.

Learn more
Recommended products illustration

Inspire

Design predictive and natural interactions

Build immersive experiences that surface unexpected and relevant content to surprise and delight users.

Learn more

Designed for the developer experience.

Algolia obsesses over developer experience. Our mission is to give development teams the building blocks to create a fast, relevant search experience. Extensive documentation & guides, an active community, 24/7 support make it a pleasure to work with Algolia.

Backend
Frontend
my_index = Algolia::Index.new('contacts')
my_index.add_object :firstname => "Jimmie",
                    :lastname => "Barninger",
                    :company => "California Paint"

class Contact < ActiveRecord::Base
  include AlgoliaSearch

  algoliasearch do
    attribute :firstname, :lastname, :company
  end
end

myIndex = apiClient.init_index("contacts")
myIndex.add_object({
  "firstname": "Jimmie",
  "lastname": "Barninger",
  "company": "California Paint"
})

from django.contrib.algoliasearch import AlgoliaIndex

class YourModelIndex(AlgoliaIndex):
    fields = ('firstname', 'lastname', 'company')

$myIndex = $apiClient->initIndex("contacts");
$myIndex->addObject([
    "firstname" => "Jimmie",
    "lastname" => "Barninger",
    "company" => "California Paint",
]);

/**
 * @ORM\Entity
 */
class Contact
{
  /**
   * @var string
   *
   * @ORM\Column(name="firstname", type="string")
   * @Group({searchable})
   */
  protected $firstname;
}


use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;

class Contact extends Model
{
    use Searchable; // Simply add a trait
}


const myIndex = apiClient.initIndex('contacts');
myIndex
  .addObject({
    firstname: 'Jimmie',
    lastname: 'Barninger',
    company: 'California Paint',
  })
  .then(content => console.log(content))
  .catch(err => console.error(err));

Index<Contact> index = client
  .initIndex("contacts", Contact.class);

index.addObject(
  new Contact()
    .setFirstname("Jimmie")
    .setLastname("Barninger")
    .setCompany("California Paint")
);


import algolia.AlgoliaDsl._
import scala.concurrent.ExecutionContext.Implicits.global

case class Contact(
  firstname: String,
  lastname: String,
  company: String
)

val indexing: Future[Indexing] = client.execute {
  index into "contacts" `object` Contact(
    "Jimmie",
    "Barninger",
    "California Paint"
  )
}


object := algoliasearch.Object{
    "firstname": "Jimmie",
    "lastname":  "Barninger",
}
res, err := index.AddObject(object)

Index myIndex = apiClient.InitIndex("contacts");
var jsonObject = new JObject();
jsonObject.Add("firstname", "Jimmie");
jsonObject.Add("lastname", "Barninger");
jsonObject.Add("company", "California Paint");
myIndex.AddObject(jsonObject);

let myIndex = apiClient.getIndex("contacts")
let n = [
    "firstname": "Jimmie",
    "lastname": "Barninger",
    "company": "California Paint"
]
myIndex.addObject(n)

Index myIndex = apiClient.initIndex("contacts");

JSONObject jsonObject = new JSONObject()
  .put("firstname", "Jimmie")
  .put("lastname", "Barninger")
  .put("company", "California Paint");

myIndex.addObjectAsync(jsonObject, null);

<div id="searchbox"></div>
<div id="hits"></div>

<script>
  const {
    searchBox,
    hits
  } = instantsearch.widgets;

  search.addWidget(
    searchBox({ container: "#searchbox" })
  );
  search.addWidget(
    hits({ container: "#hits" })
  );
  search.start();
</script>

const App = (
  <InstantSearch>
    <SearchBox />
    <Results />
    <Pagination />
    <RefinementList
      attribute="company"
    />
  </InstantSearch>
);

<RelativeLayout
  xmlns:algolia="http://schemas.android.com/apk/res-auto"
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <com.algolia.instantsearch.ui.views.SearchBox
    android:id="@+id/search_box"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

  <com.algolia.instantsearch.ui.views.Stats
    android:id="@+id/search_box"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

  <com.algolia.instantsearch.ui.views.Hits
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    algolia:itemLayout="@layout/hits_item"/>
</RelativeLayout>

<ais-index>
  <ais-search-box />
  <ais-results>
    <template scope="{ result }">
      <h2>{{ result.name }}</h2>
      <p>{{ result.description }}</p>
    </template>
  </ais-results>
  <ais-refinement-list attributeName="company" />
  <ais-pagination />
</ais-index>

@Component({
  selector: 'search-ui',
  template: `
    <input type="search" (input)="search()">
    <div *ngFor="let result of results">{{result.title.highlighted}}</div>
    `
})
export algolia(App);

import InstantSearch

override func viewDidLoad() {
  super.viewDidLoad()

  let searchBar = SearchBarWidget(frame: ...)
  let statsWidget = StatsLabelWidget(frame: ...)
  self.view.addSubview(searchBar)
  self.view.addSubview(statsWidget)

  // Add all widgets in view to InstantSearch
  InstantSearch.shared.registerAllWidgets(in: self.view)
}

Experiences that matter to your business.

Lacoste illustration

E-commerce

Personalize the Shopping Experience

Your users want an intuitive shopping experience. Algolia enables teams to create a personalized site search and discovery experience that customers will love.

Learn more
Twitch illustration

Media

Unique Experiences to Drive Engagement

Users are looking to consume engaging content. Algolia empowers teams to surface the freshest and most relevant content, and ultimately drive user satisfaction.

Learn more
Zendesk illustration

SaaS

Powerful APIs to Fit Your Use Case

Every product deserves a bespoke search and discovery experience. Algolia’s flexible APIs and UI toolkits provides teams with the resources necessary to build the experience best suited for your needs.

Learn more
Birchbox logo
Universal logo
Stripe logo
National Geographic logo
Coursera logo
Strava logo
Sense logo
Lacoste logo

Secure, reliable & scalable

Last year's infrastructure availability

Secure

Soc 3 & GDPR approved

Algolia is committed to delivering a highly secure and compliant environment for our customers.

Reliable

SLA 99.999%

We stand behind our service with an industry leading 99.999% SLA available on select plans with a 1000x rebate policy.

Scalable

Global scale

70+ data centers on 6 continents to ensure a consistent experience for every user.

Trusted by

5,000

customers

Powering

20,000

applications

Serving

40B+

Queries / Month