gotosocial/docs/api/swagger.md
nya1 bee8458a2d
[feature] add rate limit middleware (#741)
* feat: add rate limit middleware

* chore: update vendor dir

* chore: update readme with new dependency

* chore: add rate limit infos to swagger.md file

* refactor: add ipv6 mask limiter option

Add IPv6 CIDR /64 mask

* refactor: increase rate limit to 1000

Address https://github.com/superseriousbusiness/gotosocial/pull/741#discussion_r945584800

Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com>
2022-08-31 12:06:14 +02:00

1.2 KiB

API Documentation

Rate limit

To prevent abuse of the API an IP-based HTTP rate limit is in place, a maximum of 300 requests in a 5 minutes time window are allowed, every response will include the current status of the rate limit with the following headers:

  • x-ratelimit-limit maximum number of requests allowed per time period (fixed)
  • x-ratelimit-remaining number of remaining requests that can still be performed
  • x-ratelimit-reset unix timestamp when the rate limit will reset

In case the rate limit is exceeded an HTTP 429 error is returned to the caller.

GoToSocial uses go-swagger to generate a V2 OpenAPI specification document from code annotations.

The resulting API documentation is rendered below, for quick reference.

If you'd like to do more with the spec, you can also view the swagger.yaml directly, and then paste it into something like the Swagger Editor in order to autogenerate GoToSocial API clients in different languages, convert the doc to JSON or OpenAPI v3 specification, etc. See here for more.

!!swagger swagger.yaml!!