Wasabi has numerous APIs available for use. The functionality of these APIs covers working with the standard S3 API, collecting statistics about your account/usage, and creating or managing other Wasabi accounts. The Wasabi API documentation is designed to support developers integrating with Wasabi’s suite of APIs. It provides clear, comprehensive guidance on how the APIs function, their capabilities, and how to interact with them effectively.
WACM Connect API Reference is available for subscribers of the Wasabi Account Control Manager (WACM). This API gives you the ability to report on your created Wasabi accounts and report on billing information used to properly account for their storage.
Wasabi Account Control API is a low-level API that interacts with Wasabi to provide you with a way to create, manage, and report your own Wasabi accounts programmatically. Typically, this API user would be a Wasabi partner who wants to integrate Wasabi into their own system, either leveraging Wasabi for storage or providing Wasabi accounts to their customers.
Wasabi S3 API is the core API of Wasabi, providing S3-style storage. This can be leveraged by the numerous SDKs available online in many different languages. The Wasabi S3 API is available to anyone with a Wasabi account.
Wasabi Stats API is a way to programmatically access bucket and utilization data for all accounts. By using the Wasabi Stats API, you can access daily summary utilization as well as daily utilization of all buckets available at a per-bucket level.
Key API Elements
When designing an API (typically a RESTful API), several key elements are required to ensure it functions properly and is understandable to users. Here are the core components of an API:
Base URL—The root address of the API. For example:
https://api.example.com/v1/
Endpoints—Specific paths under the base URL corresponding to resources or services. For example:
GET /users
POST /users
GET /users/{id}
HTTP Methods—Defines the action to perform on a given endpoint.
GET - Retrieve data
POST - Create new data
PUT - Update data (replace)
PATCH - Update data (partial)
DELETE - Remove data
Request Headers—Carry metadata such as:
Authentication tokens (Authorization: Bearer <token>)
Content type (Content-Type: application/json)
Accept Type (Accept: application/json)
Request Parameters—Can be used in various ways:
Path Parameters - Part of the endpoint (/users/{id})
Query Parameters - After a question mark (/users?role=admin)
Body Parameters - In POST, PUT, or PATCH requests (usually JSON)
Request Body—Needed for methods like POST, PUT, and PATCH. Typically, in JSON format.
Response—The data returned by the API is usually in JSON format. Includes:
Status Code (200 OK, 404 Not Found, 401 Unauthorized, etc.)
Response body (data)
Headers (like rate limit info, content-type)
Status Codes—Standard HTTP codes indicating the result:
200 OK - Success
201 Created - Resource Successfully created
400 Bad Request - Malformed request
401 Unauthorized - Missing or invalid auth
403 Forbidden - Not allowed
404 Not Found - Resource not found
500 Internal Server Error - Server-side error
Authentication—Often required, using:
API keys
OAuth 2.0
JWT (JSON Web Tokens)
Basic auth (less secure)
Enhanced Developer Experience
We incorporated interactive code playgrounds for the WACM Connect API, Wasabi Control Account API, and Wasabi AiR API. These playgrounds enable developers to experiment with API calls, making it easier to learn, test, and implement API functionality in real time.