AniDB has if I recall handles their UDP API request differently then their HTTP API requests. This UDP API wiki page
https://wiki.anidb.net/UDP_API_Definition has some information on expected behaviors on clients, due to rate limiting/banning.
Excerpt
"Connection Problems
There are many ways for a client to end up banned or the API might currently be handling too many concurrent connections. If a client does not get any reply to an AUTH command it should start to increase the retry delay exponentially with every failed login attempt. (i.e. try again after 30 seconds if the first login attempt failed, if the second fails too retry after 2 minutes, then 5 minutes, then 10 minutes, then 30 minutes, ... until you reach a retry delay of ~2-4h.)"
and Rate Limiting (which is probably the most influencial on banning)
"Flood Protection
To prevent high server load the UDP API server enforces a strict flood protection policy.
Short Term:
A Client MUST NOT send more than 0.5 packets per second (that's one packet every two seconds, not two packets a second!)
The server will start to enforce the limit after the first 5 packets have been received.
Long Term:
A Client MUST NOT send more than one packet every four seconds over an extended amount of time.
An extended amount of time is not defined. Use common sense.
Once a client exceeds a rate limit all further UDP packets from that client will be dropped without feedback until the client's packet rate is back down to acceptable levels.
Note Dropped packets are still taken into account for the packet rate. Meaning if you continuously send packets your client will be banned forever.
Generally clients should be written in a way to minimize server and network load. You should always keep that in mind.
Abusive clients may be banned completely.
Note If you suddenly stop getting replies from the AniDB API or you normally don't have a notable packetloss and from one point on you suddenly note a high packetloss percentage you have most likely entered a critical flood ratio.
If the AniDB API isn't answering at all it might either be down or you have been banned, this is normally caused by violating the API specs (i.e. too many connections using different ports from one IP, too many auth failures, ...) (usually lasts 30 minutes). If you're experiencing packet loss you have probably reached the rate limit and the API starts to randomly drop incoming packets from your IP. (can be solved by enforcing a delay between multiple commands when you're sending a batch)
Anti Leech Protection
The API should not be used to "download" AniDB. If such attempts are detected you will get banned"
The HTTP API page here:
https://wiki.anidb.net/HTTP_API_Definition is even less detailed on what could get you banned (tho it probably is similiar to their UDP rate limiting)
Excerpt:
"Flooding and Caching
All users of this API should employ heavy local caching. Requesting the same dataset multiple times on a single day can get you banned. The same goes for request flooding. You should not request more than one page every two seconds.
Anti Leech Protection
The API should not be used to "download" AniDB. If such attempts are detected you will get banned."
The Official AniAdd client (java based) uses their UDP API, and in it's current iteration rarely get's someone banned, but on large datasets it can take quite some time. Of course it's also only good for renaming files that are actually *IN* AniDB.
unfortunately the SourceCode for AniAdd is not Open Source, but there is an older version of it (perhaps when it was OSS) that you can find on GitHub.
The list of Software/Clients for AniDB is here:
https://anidb.net/software
The API policy (and likely the API itself) is very 1990's/2000's, which fits into when AniDB was first open to the public (2002). Rest type API's where not that common I believe in the early 2000's, so it's not that unexpected that they don't have one. They also don't rely on ad revenue etc, which probably limits their options as well. They currently get their "funding" from people on Patreon (
https://www.patreon.com/AniDB).
None of these things make it less annoying to deal with
