Raise the API Rate Limit for a Self-Hosted Instance of PlausibleIf you're running Plausible Analytics on a virtual machine (or some other box), you don't need to abide by the default API key rate limit it enforces. Let's walk through how to raise it.
I've been using the self-hosted version of Plausible Analytics for a couple of years now, and I've really enjoyed it. One of the many perks of the self-hosted model is that I'm able to do what I want with my data as often as I want to do it.
For example: this is statically generated site. Every time it builds, I pull in the latest analytics data from the Plausible REST API to render on various pages, including my personal dashboard. By default, there's a rate limit set in place – 600 requests/hour. That's usually a suitable default, but it's occasionally not.
Fortunately, being self-hosted, it's easy enough to raise that limit to something astronomical. Let's walk through it. Heads up: I'm assuming you're on a virtual machine that you can access via SSH (mine's on DigitalOcean).
Access the machine and
cd to wherever your instance of Plausible is living:
Next, we'll need to find the name of the container in which Plausible's Postgres database is running. Run
docker ps and you'll see a list of running containers. You're looking for the name assigned to the one using the "postgres:VERSION" image:
Now, we'll access that container with
psql, logging in under the
docker exec -ti plausible_plausible_db_1 psql -U postgres
\l should show every database running in the container:
\c plausible_db to connect to the database we'll need:
We're in. Next up, let's find the table and raise that API limit.
The table we'll need to update is
api_keys. Just for sanity's sake, go a head and view the records in there. Assuming you've already generated a token (if you haven't, do it), you'll see something similar to this:
As might've guessed, we're interested in that
hourly_request_limit field. That field is an
integer type, which has a maximum value of 2,147,483,647. So, let's update it:
UPDATE public.api_keys SET hourly_request_limit = 2147483647;
But before you move on, keep a couple of things in mind:
- This change won't impact any keys you add in the future. If you add any later, you'll need to run through this process again.
- There are reasons rate limits exist in the first place. You're virtually removing it here, so think about the potential performance and security implications of that decision.
Hope this is useful to someone!
Alex MacArthur is a software engineer working for Dave Ramsey in
Soli Deo gloria.
Get irregular emails about new posts or projects.No spam. Unsubscribe whenever.