Algolia logo blueprint

Looking for our logo?

We got you covered!

Download logo pack More algolia assets

Search technology to power your business.

Accelerate the user experience

Request a demoFree Trial
Birchbox logo

Increaseorder value

Twitch logo

Power content discoveryfor 100 million viewers

Lacoste logo

Better relevanceand high sales

Stripe logo

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
Recommended products illustration

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.

Read docs
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);
val index = client.initIndex(IndexName("contacts"))
val json = json {
"firstname" to "Jimmie"
"lastname" to "Barninger"
"company" to "California Paint"}
index.saveObject(json)
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)
}
Start building

Experiences that matter to your business

Lacoste illustration
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
Get a demo

Secure, reliable & scalable

Secure

Soc 3 & GDPR approved

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

Security policies

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.

API status

Scalable

Global scale

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

Infrastructure

Trusted by7,500customers

Powering20,000applications

Serving+70Bqueries / month