API Overview
Thotbot is designed from the ground up to be API-first. It's built on top of the same downloaders we've been using personally for years, just wrapped in a REST API so anyone can use it.
The frontend has some intentional design choices that make it scalable and stateless, but isn't the best for a realtime app. The intention is for the API or custom CLIs to be the best way to interact with the service.
Versioning
All API endpoints are versioned (e.g., /v1/, /v2/) to ensure stability. Once an endpoint is released under a version, its behavior won't change in breaking ways. If we need to make incompatible changes, we'll introduce a new version and give you time to migrate.
Endpoints outside of a version prefix are internal and may change without notice.
Rate Limits
Some endpoints are rate-limited with reasonable limits to protect the service. If you hit a rate limit and need to raise it, please contact us - the intention isn't to block any legitimate use of the API.
Some third-party services have their own rate limits and we do our best to adhere to them to prevent issues. Unfortunately these are outside of our control.
Pro tip: Authenticate using an API key even for unauthenticated endpoints (like server status, etc). If we need to rate limit you, this prevents us from storing your hashed IP address in memory and we can use your session instead. See the Privacy Policy for more details.
OpenAPI Specification
Our API is documented using OpenAPI 3.0. You can access the specification directly at:
https://thotbot.cc/openapi/api.yamlThis can be imported into tools like Postman, Insomnia, or used to generate client libraries.
Getting Started
Ready to start building? Check out these guides: