Zaulto API – for uploaders

With the Zaulto API you create containers programmatically and read at any time which links are online or offline – including the hoster label. It is built for uploaders who want to wire Zaulto into their own tools, scripts or upload workflows.

Your token = your access. Treat it like a password.

An API token is shown exactly once at creation time and cannot be retrieved afterwards. Save it immediately in a safe place (e.g. a password manager) and never commit it to a repository or frontend code.

Always pass the token in the Authorization header – never in the URL, since URLs end up in logs and browser history. If you suspect it has leaked, revoke it in your account right away and create a new one. Every token is limited to the “upload” scope and to your own account: it can only create containers on your behalf – it cannot read, change or delete anyone else's containers.

Authentication & creating a token

The upload API authenticates with a personal bearer token. Here's how to get one: sign in, open the “API tokens” area in your account, give it a descriptive label (e.g. “My upload script”) and optionally a lifetime in days. The token is shown once in clear text – copy it immediately.

On every request send the header Authorization: Bearer <YOUR_TOKEN>. If the header is missing or the token is invalid or revoked, the API responds with 401.

Header
Authorization: Bearer ztk_live_xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

Manage tokens in your account

Create a container

A POST to /api/v1/containers creates a new container. Only a title and at least one link are required; every other field is optional with sensible defaults. Only http and https links are accepted.

The response contains the container ID and the ready-to-share public URL – so you can hand out the link right away.

MethodPathAuthPurpose
POST/api/v1/containersBearer tokenCreate a new container with one or more links.
Request (curl)
curl -X POST https://zaulto.com/api/v1/containers \
  -H "Authorization: Bearer $ZAULTO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My release",
    "links": [
      { "url": "https://filer.net/get/abc123", "filename": "part1.rar" },
      { "url": "https://ddownload.com/abc123xyz", "filename": "part2.rar" }
    ]
  }'
Response (201)
{
  "id": "AB12CD34",
  "slug": null,
  "url": "https://zaulto.com/#/c/AB12CD34",
  "shortUrl": null
}
Most important request fields (JSON body)
FieldTypeDescription
titlestring (1–200)Required. Container title.
linksarrayRequired. At least 1 link. Each entry: { url, hoster?, filename? }. http/https only.
descriptionstring (≤2000)Optional description.
customSlugstring (3–40)Optional custom short slug for the URL.
passwordstringOptional password visitors need to open the container.
captchaRequiredbooleanRequire a captcha before opening (default: false).
maxDownloadsnumber|nullMaximum number of successful unlocks.
expiresAtnumber|nullExpiry as Unix time in milliseconds (null = never).
mirrorSetsarray (≤20)Optional mirror tiers as complete replacement link sets.
urlMaskingbooleanEnable URL masking (the real hoster URL stays hidden).
listedbooleanList the container in the public directory (default: false).

Read status & hoster label

A GET to /api/c/:id returns the public view of a container. If the container requires neither a password nor a captcha, you can read its state without unlocking it. Per link you see the status (online, offline, pending or unknown) and – if enabled for the container – the hoster name. That lets you detect automatically what is offline where.

Note: with a password/captcha or URL masking enabled, the actual links are only delivered after unlocking; the plain status is still visible through the public view. Zaulto keeps the status current via its built-in, regular link check.

MethodPathAuthPurpose
GET/api/c/:idnonePublic container view incl. online/offline status per link and hoster label.
Request (curl)
curl https://zaulto.com/api/c/AB12CD34
Status values per link
ValueTypeMeaning
onlinestatusFile is reachable at the hoster.
offlinestatusFile is deleted or no longer available.
pendingstatusNot checked yet – check is pending.
unknownstatusStatus could not be determined unambiguously.

Which hosters are detected especially precisely

Limits & error codes

Each container allows up to 40 links. Mirror tiers hold up to 200 links per tier and at most 20 tiers. Titles are capped at 200, descriptions at 2000 characters. There is no fixed upper limit on the number of your containers.

The API responds with clear HTTP status codes – evaluate them instead of only looking at the body.

HTTP status codes
CodeMeaningNote
201CreatedContainer was created.
400Bad RequestValidation failed (e.g. missing title, invalid URL).
401UnauthorizedToken missing, invalid, revoked or wrong scope.
404Not FoundContainer not found (when reading).
409ConflictRequested customSlug is already taken.

Security – keeping your access tight

Store the token server-side or in a secret store only, never in browser code or public repositories. Create a separate token with its own label per app/script – that way you can revoke a single one precisely without affecting the others.

Set a lifetime where it makes sense so a forgotten token expires automatically. Send requests over HTTPS only. And if a token ever does leak: revoke it in your account immediately – a revoked token is worthless instantly.

More on security & privacy

That's everything to wire Zaulto cleanly into your uploads: create containers via token and monitor the online/offline status automatically.