Welcome to the Typesense Premium API documentation. This page will walk you through how to
download and start Typesense Premium, and well as the additional API end-points that are available on the
This page only covers the additional features of the Premium version.
For other features, see our community edition's getting started guide.
Downloading Typesense Premium
We have pre-built binaries available for Linux (X86_64) and Mac OS X from our
downloads page. We also publish official Docker images for Typesense Premium on
Starting the server with the license key
If you had installed Typesense Premium via the DEB/RPM package, you can add the license key to
the configuration file at /etc/typesense/typesense-server.ini -- remember to restart
Typesense after that. You can verify that Typesense Premium has started fine by checking the log file
in the default logging directory (/var/log/typesense).
If you are starting the server from the binary, pass the license key via
the license-key argument:
NOTE: The master and replica servers have different license keys.
While Typesense makes it really easy and intuitive to deliver great search results, sometimes you might
want to promote certain documents over others. Or, you might want to exclude certain documents from a
query's result set.
Using overrides, you can include or exclude specific documents for a given query.
Create or update an override
In the following example, we are overriding the search results by placing the documents with ids 422
and 54 in the first and second positions respectively via the includes condition.
Additionally, we're ensuring that the document with id 287 is not returned at all
via the excludes condition. You need to specify only one of exclude or
Note how we are applying these overrides to an exact match of the query apple.
Instead, if we want to match all queries that contained the word apple, we will use
the contains match instead.
An alias is a virtual collection name that points to a real collection. If you're familiar with
symbolic links on Linux, it's very similar to that.
Aliases are useful when you want to reindex your
data in the background on a new collection and switch your application to it without any changes
to your code. Let's take an example.
Let's say we have a collection called companies_june10 and an alias
called companies pointing to that collection.
collection ---> companies_june10
On the next day (June 11), we will create a new collection called companies_june11
and start indexing the documents in the background into this collection. When we are done indexing,
if we updated the companies alias to point to this new collection,
your application would immediately start querying against the freshly indexed collection.
collection ---> companies_june11
Convenient isn't it? Let's now look at how we can create, update and manage aliases.