API
A clean and documented REST API to automate your infrastructure.
Base URL
All endpoints live under https://api.popug.cloud/v1. Requests and responses use JSON. See Authentication for how to send your token.
Service status
A request to the root returns the service name, status and version:
{"service":"popug-api","status":"ok","version":"2.9.1"}
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /v1/buckets | List buckets |
| POST | /v1/buckets | Create a bucket |
| DELETE | /v1/buckets/{name} | Delete an empty bucket |
| GET | /v1/buckets/{name}/objects | List objects in a bucket |
| POST | /v1/purge | Purge objects from the CDN |
Example
curl https://api.popug.cloud/v1/buckets \
-H "Authorization: Bearer $POPUG_TOKEN"
{
"data": [
{ "name": "my-bucket", "region": "eu", "public": true, "created_at": "2026-03-14T09:21:07Z" }
]
}
Errors
| Status | Code | Meaning |
|---|---|---|
| 401 | unauthorized | Missing or invalid API token |
| 403 | forbidden | The token does not have the required scope |
| 404 | not_found | The requested resource does not exist |
| 429 | rate_limited | Too many requests; retry after the time in Retry-After |
Rate limits
The default limit is 600 requests per minute per token. Every response carries X-RateLimit-Limit and X-RateLimit-Remaining headers.