Looking for our logo?

We got you covered!

Search technology to power your business.

Accelerate the user experience

Increaseorder value

Power content discoveryfor 100 million viewers

Better relevanceand high sales

Global help deskdeployed 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.

Want to see what Algolia can do for you?

Assess your search experience in less than 5 minutes and get a personalized report with our Grader

Evaluate your site
Grader image
Recommended products illustration

Find iconFind

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.

Recommended products illustration

Discover iconDiscover

Create a path for customers to discover

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

Inspire iconInspire

Design predictive and natural interactions

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

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.

BackendFrontend
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;
/**
* @var string
*
* @ORM\Column(name="lastname", type="string")
* @Group({searchable})
*/
protected $lastname;
/**
* @var string
*
* @ORM\Column(name="company", type="string")
* @Group({searchable})
*/
protected $company;
}
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 := map[string]string{
"firstname": "Jimmie",
"lastname": "Barninger",
"company": "California Paint"
}
res, err := index.SaveObject(object)
SearchIndex index = client.InitIndex("contacts");
var contact = new Contact
{
FirstName = "Jimmie",
LastName = "Barninger",
Company = "California Paint"
};
index.SaveObject(contact);
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 />
<Hits />
<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-instant-search>
<ais-search-box />
<ais-hits>
<template slot="item" scope="{ item }">
<h2>{{ item.company }}</h2>
<p>{{ item.firstname }} {{ item.lastname }}</p>
</template>
</ais-hits>
<ais-refinement-list attribute="company" />
<ais-pagination />
</ais-instant-search>
<ais-instantsearch>
<ais-search-box></ais-search-box>
<ais-hits>
<ng-template let-hits="hits">
<div *ngFor="let hit of hits">
<h2>{{ hit.company }}</h2>
<p>{{ hit.firstname }} {{ hit.lastname }}</p>
</div>
</ng-template>
</ais-hits>
</ais-instantsearch>
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.

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.

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.

Birchbox logo
Weight Watchers logo
Stripe logo
National Geographic logo
Coursera logo
Strava logo
Sense logo
Lacoste logo
NPR logo
Ouest France logo
Universal logo
France TV logo
Bringmeister logo
The Times UK logo

Secure, reliable & scalable

Activity iconReliable

SLA 99.999%

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

Trusted by7,500customers

Powering20,000applications

Serving+50Bqueries / month