Difference between revisions of "API Access"

From Anime Characters Database Wiki
Jump to navigation Jump to search
(First, you need to set a HTTP_USER_AGENT for the tool you will be accessing ACDB from.)
(Second, you need to rate limit your requests.)
Line 16: Line 16:
 
===Second, you need to rate limit your requests.===
 
===Second, you need to rate limit your requests.===
  
30 pages in 3 seconds will trigger a DoS ban. ( 429 Too Many Requests )
+
NGINX handles rate limiting. Respectfully, limit your bot to 1 request per second.
100 pages in 100 seconds will trigger a day ban ( 503 Service Unavailable )
+
    limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
3000 pages in day will trigger a day ban ( 503 Service Unavailable )
+
    limit_req_zone $server_name zone=fast:10m rate=90r/s;
 +
            limit_req zone=one burst=10;
 +
            limit_req zone=fast burst=200;

Revision as of 14:45, 20 January 2021

Do you have a project that could benefit from the data on Anime Characters Database? As a way to help pay the server bills, I offer my services to develop a custom API to suit for your needs for a small fee. Contact Rei for more info.

Current API Tools

How Not To Get Banned

First, you need to set a HTTP_USER_AGENT for the tool you will be accessing ACDB from.

You will get errors like ( 402 Payment Required ) if Python,Perl,etc is in your user agent.

If you leave it with the default, you will be joining a pool of people who also left it default, and together may pose a DDoS threat. This is why I auto ban curl/python/wget any any other popular tool.

To safely check your user agent, visit this page: https://www.animecharactersdatabase.com/vars.php

Second, you need to rate limit your requests.

NGINX handles rate limiting. Respectfully, limit your bot to 1 request per second.

   limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
   limit_req_zone $server_name zone=fast:10m rate=90r/s;
           limit_req zone=one burst=10;
           limit_req zone=fast burst=200;