Ochrona przed DDoS to głównie ochrona na poziomie infrastruktury sieciowej, oczywiście poziom aplikacji też.
Jeżeli robisz API publicznie dla wszystkich to wszelkiego rodzaju tokeny i inne narzuty są niepotrzebne, to się wtedy robi inaczej.
Ja mam na wszystkich swoich serwisach odpalony autorski system automatycznego banowania jeżeli ktoś (adres IP) przekroczy określone limity (X) wywołań w ciągu określonego czasu (Y) co skutkuje banem też na określony czas (Z).
X = ilość wywołań
Y = okres czasu limitu - np. ostatnia godzina, dzień kalendarzowy, etc.
Z = czas zbanowania
Przy czym przed banem twardym jest jeszcze limit A (mniejszy niż Y), naruszenie go skutkuje wywołaniem testu captcha, rozwiązanie testu captcha daje danemu adresowi IP określoną pulę wejść bez limitu, lub przez określony czas nie musi go ponownie rozwiązywać.
Do tego biała lista np. dla robotów google, bing etc, oraz czarna lista dla największych skur... przepraszam spamerów - głównie Chiny, i tutaj mogę sobie dawać do czarnej / białej listy pojedyncze IP, całe klasy lub na podstawie nazwy hosta - dokładne dopasowanie lub regexp.
Taki system stosuje dla zwykłych wywołań HTTP, ale gdybym wystawiał tak publiczne API to tam też bym do tego zastosował, lub zrobił coś podobnego.
Od kilku lat stosuję i jestem oraz moi klienci - bardzo zadowolony, system przy okazji pokazuje skalę tego jak roboty zabijają strony. Na dość popularnej stronie mojego klienta (i mojej prywatnej też) dobijają się boty chatGTP, boty amazona AWS to gdybym pozwolił to robiłyby po 200 tys wywołań HTTP dziennie, nie wspominając o Chinczykach i innych syfiarzach którzy np. postanowili odpalić program do robienia odbicia lustrzanego Twojej strony do przeglądania offline.
Warto coś takiego mieć żeby uzmysłowić sobie skalę tego, w czasach GA tego się nie widzi, bo mało kto np. używa analizatora logów serwera lub cokolwiek innego co pokazuje to zjawisko.