Skip to content
Dashboard
Menu Deploying · Appending files

Deploying

Appending files

A single deploy request caps at 900 files — a Cloudflare platform ceiling, since every stored file is one subrequest. Subscribers go past it by appending: create the drop with POST /deploy, then keep adding batches to the same slug until the drop holds 10,000 files.

The endpoint

POST

/deploy/<slug>

hp_ key or ID token

Adds the request body’s files to an existing drop you own. All three body formats work, and the ?ttl= story doesn’t change — appended files inherit the drop’s existing expiry. Paths that already exist on the drop are overwritten.

bash
curl -X POST https://hurl.page/deploy/vast-juice-c2dse08p \
  -H "Authorization: Bearer hp_QffDmo0…" \
  -H "Content-Type: application/zip" \
  --data-binary @assets-batch-2.zip
json200 OK
{
  "slug": "vast-juice-c2dse08p",
  "url": "https://vast-juice-c2dse08p.hurled.page/",
  "files": ["img/photo-901.webp", "img/photo-902.webp", …],
  "total_files": 1800,
  "plan": "pro",
  "expires_at": null
}

total_files is the running count after this batch — handy for scripting big uploads.

StatusDescription
401unauthorizedNo credential. Appending always needs an API key — see Authentication.
402payment requiredValid key, but no active subscription.
404not foundThe slug doesn’t exist — or belongs to someone else. Ownership is never disclosed.
400bad requestMore than 900 files in one batch, or an unparseable body.
413payload too largeThis batch would push the drop past 10,000 files total.

Scripting big asset trees

Split the build into ≤900-file zips and loop: the first batch goes to POST /deploy, every following batch to POST /deploy/<slug> with the slug from the first response. At 900 files per request, a maxed-out 10,000-file drop is 12 requests.