Files
POST /v1/files (multipart upload) and GET /v1/files/{id}/content. The OpenAI-compatible file store that Batch jobs read from and write to.
The file store holds the input files Batch jobs read, and the output files the batch executor writes back. Uploads are multipart, matching OpenAI. Files are tenant-scoped and transient: they are batch I/O, not durable customer state, and old files expire automatically.
Upload a file
POST https://api.zumik.ai/v1/filesSend multipart/form-data with a file part and an optional purpose part.
filefilerequiredThe file contents. For a batch input, this is JSONL with one chat-completion request per line. Required.
purposestringdefault: batchThe file's purpose. Defaults to batch.
Request
curl https://api.zumik.ai/v1/files \
-H "Authorization: Bearer zk_live_..." \
-F purpose=batch \
-F [email protected]Response
{
"id": "file-9f2a3c1e7b4d8a6f2c1e7b4d",
"object": "file",
"bytes": 412,
"created_at": 1750000123,
"filename": "requests.jsonl",
"purpose": "batch"
}idstringThe file id, file-.... Pass this as input_file_id when creating a batch.
objectstringAlways "file".
bytesintegerSize of the stored content in bytes.
filenamestringThe uploaded filename.
purposestringThe purpose, for example batch or batch_output (for executor-written outputs).
Retrieve file metadata
GET https://api.zumik.ai/v1/files/{file_id}file_idstringpathrequiredThe file-... id.
Returns the file object (metadata, no content). 404 if it does not exist for this project.
Download file content
GET https://api.zumik.ai/v1/files/{file_id}/contentReturns the raw stored bytes (for a batch output, the JSONL results). 404 if it does not exist for this project.
curl https://api.zumik.ai/v1/files/file-9f2a.../content \
-H "Authorization: Bearer zk_live_..."Limits
Per project: at most 200 files and 256 MiB total. An upload that would exceed either is rejected with 400. Individual request bodies are capped at 2 MiB. Output files expire after a day; uploaded files are reclaimed alongside their batch.
Errors
| HTTP | code | When |
|---|---|---|
| 400 | (none) | The multipart upload is malformed, the file part is missing, or the project storage quota would be exceeded. |
| 401 | invalid_api_key | Missing or invalid bearer key. |
| 404 | (none) | The file id does not exist for this project. |
See the full error reference.
Batches
POST and GET /v1/batches and /cancel. The OpenAI-compatible Batch API for running many chat completions asynchronously from an uploaded input file.
Artifacts
Create, retrieve, and delete reusable immutable content units. Artifacts are the addressable building blocks of agent state on the native /v2 surface.