Create a new aggregator. Each account starts with a default aggregator; use this endpoint to create additional ones with different configurations.
Request Body
Subdomain for the aggregator (e.g., myapp → myapp.mytusky.xyz). Must be unique, lowercase, 3–32 characters.
When true, requests require authentication via Api-Key header. When false, content is served without authentication.
When true, the aggregator serves any content from the Walrus network (acts as an open Walrus aggregator). When false, the aggregator serves only content belonging to your account.
Whether to enable Cloudflare edge caching for low-latency delivery.
Whether to fall back to the centralized backup store when Walrus is unavailable.
Custom domain. Requires a CNAME record pointing to {subdomain}.mytusky.xyz.
Response
Whether authentication is required.
Whether serving all Walrus content.
Whether Cloudflare edge caching is enabled.
Whether backup fallback is enabled.
ISO 8601 creation timestamp.
Example
curl -X POST https://api.tusky.io/v2/aggregators \
-H "Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subdomain": "cdn-assets",
"restricted": false,
"public": false,
"cache": true
}'
Response
{
"id": "agg_xyz789",
"url": "https://cdn-assets.mytusky.xyz",
"subdomain": "cdn-assets",
"customDomain": null,
"restricted": false,
"public": false,
"cache": true,
"fallbackToBackup": false,
"createdAt": "2026-03-07T14:00:00Z"
}
Default: restricted: false, public: false — serves your account’s content without requiring authentication. Set restricted: true to require an Api-Key header on every request. Set public: true to serve any blob from the Walrus network.