# Uploader — Zapi reference > Every Uploader endpoint on Zapi, with parameters, request shape and an example response. **Base URL:** `https://api-preview.zapi.ink` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a key at https://preview.zapi.ink/dashboard/keys (free tier — 600 req/mo, no credit card). **Response envelope:** `{ status: "success" | "error", message: string, content: }` **Rate limit:** 60 req/min (free tier). Per-endpoint cache TTL is documented below. **Errors:** standard HTTP codes (`401` invalid key, `429` rate limited, `5xx` upstream). Body always has `{ status: "error", message, errors? }`. ```bash curl "https://api-preview.zapi.ink/v1/CATEGORY:SCRAPER/ENDPOINT?param=value" \ -H "x-api-key: $ZAPI_KEY" ``` **Category page:** https://preview.zapi.ink/category/uploader **Full catalog:** https://preview.zapi.ink/apis · **Index:** https://preview.zapi.ink/llms-full.txt --- ## Catbox **Category:** uploader · **Slug:** `catbox` **Detail page:** https://preview.zapi.ink/api/uploader/catbox Upload file permanent — tidak expire. Max 200MB. **Tags:** upload, file, permanent ### Upload File Upload file permanent — tidak expire. Max 200MB. - **Method:** `POST` - **Endpoint:** `https://api-preview.zapi.ink/v1/uploader:catbox/upload` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `file` | file | form | yes | File yang mau di-upload. Max 200MB. | **cURL:** ```bash curl -X POST "https://api-preview.zapi.ink/v1/uploader:catbox/upload" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "file": "photo.jpg" }' ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api-preview.zapi.ink/v1/uploader:catbox/upload", { method: "POST", headers: { "x-api-key": process.env.ZAPI_KEY, "Content-Type": "application/json" }, body: JSON.stringify({ "file": "photo.jpg" }) }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.post("https://api-preview.zapi.ink/v1/uploader:catbox/upload", headers={"x-api-key": "YOUR_API_KEY"}, json={ "file": "photo.jpg" }) data = r.json() ``` --- ## Cutout Image **Category:** uploader · **Slug:** `cutout` **Detail page:** https://preview.zapi.ink/api/uploader/cutout Upload gambar ke S3 presigned URL (3 jam). Khusus image. **Tags:** upload, image ### Upload File Upload gambar ke S3 presigned URL (3 jam). Khusus image. - **Method:** `POST` - **Endpoint:** `https://api-preview.zapi.ink/v1/uploader:cutout/upload` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `file` | file | form | yes | Gambar (jpg/png/webp). Khusus image, expire 3 jam. | **cURL:** ```bash curl -X POST "https://api-preview.zapi.ink/v1/uploader:cutout/upload" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "file": "photo.jpg" }' ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api-preview.zapi.ink/v1/uploader:cutout/upload", { method: "POST", headers: { "x-api-key": process.env.ZAPI_KEY, "Content-Type": "application/json" }, body: JSON.stringify({ "file": "photo.jpg" }) }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.post("https://api-preview.zapi.ink/v1/uploader:cutout/upload", headers={"x-api-key": "YOUR_API_KEY"}, json={ "file": "photo.jpg" }) data = r.json() ``` --- ## Gofile **Category:** uploader · **Slug:** `gofile` **Detail page:** https://preview.zapi.ink/api/uploader/gofile Upload file tanpa batas size. Reset expiry tiap download. **Tags:** upload, file, unlimited ### Upload File Upload file tanpa batas size. Reset expiry tiap download. - **Method:** `POST` - **Endpoint:** `https://api-preview.zapi.ink/v1/uploader:gofile/upload` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `file` | file | form | yes | File yang mau di-upload. Tanpa batas size. | **cURL:** ```bash curl -X POST "https://api-preview.zapi.ink/v1/uploader:gofile/upload" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "file": "archive.zip" }' ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api-preview.zapi.ink/v1/uploader:gofile/upload", { method: "POST", headers: { "x-api-key": process.env.ZAPI_KEY, "Content-Type": "application/json" }, body: JSON.stringify({ "file": "archive.zip" }) }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.post("https://api-preview.zapi.ink/v1/uploader:gofile/upload", headers={"x-api-key": "YOUR_API_KEY"}, json={ "file": "archive.zip" }) data = r.json() ``` --- ## Litterbox **Category:** uploader · **Slug:** `litterbox` **Detail page:** https://preview.zapi.ink/api/uploader/litterbox Upload file ephemeral 1h-72h. Max 1GB. **Tags:** upload, file, ephemeral ### Upload File Upload file ephemeral 1h-72h. Max 1GB. - **Method:** `POST` - **Endpoint:** `https://api-preview.zapi.ink/v1/uploader:litterbox/upload` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `file` | file | form | yes | File yang mau di-upload. Max 1GB. | | `duration` | enum(1h|12h|24h|72h) | form | no | Durasi simpan sebelum file auto-dihapus. Default 1h. | **cURL:** ```bash curl -X POST "https://api-preview.zapi.ink/v1/uploader:litterbox/upload" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "file": "report.pdf", "duration": "1h" }' ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api-preview.zapi.ink/v1/uploader:litterbox/upload", { method: "POST", headers: { "x-api-key": process.env.ZAPI_KEY, "Content-Type": "application/json" }, body: JSON.stringify({ "file": "report.pdf", "duration": "1h" }) }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.post("https://api-preview.zapi.ink/v1/uploader:litterbox/upload", headers={"x-api-key": "YOUR_API_KEY"}, json={ "file": "report.pdf", "duration": "1h" }) data = r.json() ``` --- ## Tmpfiles **Category:** uploader · **Slug:** `tmpfiles` **Detail page:** https://preview.zapi.ink/api/uploader/tmpfiles Upload file ephemeral 1 jam. Max 100MB. **Tags:** upload, file, ephemeral ### Upload File Upload file ephemeral 1 jam. Max 100MB. - **Method:** `POST` - **Endpoint:** `https://api-preview.zapi.ink/v1/uploader:tmpfiles/upload` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `file` | file | form | yes | File yang mau di-upload. Max 100MB, expire 1 jam. | **cURL:** ```bash curl -X POST "https://api-preview.zapi.ink/v1/uploader:tmpfiles/upload" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "file": "image.png" }' ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api-preview.zapi.ink/v1/uploader:tmpfiles/upload", { method: "POST", headers: { "x-api-key": process.env.ZAPI_KEY, "Content-Type": "application/json" }, body: JSON.stringify({ "file": "image.png" }) }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.post("https://api-preview.zapi.ink/v1/uploader:tmpfiles/upload", headers={"x-api-key": "YOUR_API_KEY"}, json={ "file": "image.png" }) data = r.json() ``` --- ## Uguu **Category:** uploader · **Slug:** `uguu` **Detail page:** https://preview.zapi.ink/api/uploader/uguu Upload file ephemeral 3 jam. Max 128MB. **Tags:** upload, file, ephemeral ### Upload File Upload file ephemeral 3 jam. Max 128MB. - **Method:** `POST` - **Endpoint:** `https://api-preview.zapi.ink/v1/uploader:uguu/upload` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `file` | file | form | yes | File yang mau di-upload. Max 128MB, expire dalam 3 jam. | **cURL:** ```bash curl -X POST "https://api-preview.zapi.ink/v1/uploader:uguu/upload" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "file": "photo.jpg" }' ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api-preview.zapi.ink/v1/uploader:uguu/upload", { method: "POST", headers: { "x-api-key": process.env.ZAPI_KEY, "Content-Type": "application/json" }, body: JSON.stringify({ "file": "photo.jpg" }) }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.post("https://api-preview.zapi.ink/v1/uploader:uguu/upload", headers={"x-api-key": "YOUR_API_KEY"}, json={ "file": "photo.jpg" }) data = r.json() ``` ---