Docs / Getting started

Anow Cloud API

Store files from any app with simple HTTPS requests. The base URL for every request is https://cloud.anowhosting.com/api/v1. If you already use the AWS S3 SDK, point it at https://cloud.anowhosting.com/s3 and it works without code changes.

Authentication

Send your secret key in the Authorization header. Create keys in Dashboard → API keys. Keep secret keys on your server only; for browsers and mobile apps use a read-only public key or a signed upload URL.

Authorization: Bearer sk_live_7Hk2mQ9xVb4L••••••••3f9a

Upload a file POST /buckets/{bucket}/files

Send the file as multipart form data. Files larger than 100 MB should use multipart upload, which the SDKs handle for you.

FieldTypeDescription
file requiredbinaryThe file to store.
folderstringFolder path, e.g. 2026/10
visibilitypublic | privateDefaults to the bucket setting.
# Upload one image to your bucket
curl -X POST https://cloud.anowhosting.com/api/v1/buckets/news-site-media/files \
  -H "Authorization: Bearer $VAULTORA_KEY" \
  -F "file=@cover.jpg" -F "folder=2026/10"

# Response
{
  "id": "fil_8Kq2xW",
  "size": 2483120,
  "url": "https://cloud.anowhosting.com/cdn/news-site-media/2026/10/cover.jpg"
}

List & delete files

GET /buckets/{bucket}/files?folder=2026/10&limit=50 GET /files/{id} PATCH /files/{id} — rename, move or change visibility DELETE /files/{id}

Signed links

Private files are never public. Ask for a link that works for a set time, then expires on its own.

GET /files/fil_8Kq2xW/signed-url?expires_in=3600

{ "url": "https://cloud.anowhosting.com/cdn/p/fil_8Kq2xW?sig=9fa1…&exp=1792310400" }

SDK & plugins

Laravel

Filesystem disk vaultora, works with Storage::put()

WordPress

Media Library uploads go straight to your bucket with any S3 media plugin.

Node.js & Python

Use the official AWS S3 SDK with our endpoint.

Errors & limits

CodeMeaning
401Missing or wrong API key
403Key has no access to this bucket
413File is bigger than your plan allows
507Storage limit reached — upgrade or free space
429Too many requests (600 per minute per key)

Large files

Start an upload, send the parts in order, then complete it. Each part can be up to 100 MB; the upload may stay open for 24 hours.

POST /buckets/{bucket}/uploads — name, folder, size PUT /uploads/{id}/parts/{number} — raw bytes as the request body POST /uploads/{id}/complete

S3 endpoint

Use any S3 SDK with path-style addressing. The access key ID is shown with your key; the secret is the full key you copied once.

# AWS CLI
aws s3 cp cover.jpg s3://news-site-media/2026/10/cover.jpg \
  --endpoint-url https://cloud.anowhosting.com/s3
# supported: PutObject, GetObject, HeadObject, DeleteObject, CopyObject,
# ListObjectsV2 and multipart uploads

Image resizing

On buckets with resizing turned on, add parameters to any public image link: ?w=600 &h=400 &format=webp &q=80. The longest side is limited to 4000 px and results are cached.

Webhooks

Add an endpoint in Dashboard → Webhooks. Every request carries a signature header; compute the HMAC-SHA256 of {timestamp}.{body} with your signing secret and compare it with v1.

POST /your/endpoint
Vaultora-Signature: t=1792303800,v1=5b1f0c…

{ "event": "file.uploaded", "bucket": "news-site-media", "file": { "id": "fil_8Kq2xW", … } }