Step 1: Get upload URL
POST
/api/artifacts/upload-urlStep 2: Upload the zip
PUT the zip binary to theuploadUrl from Step 1:
__pycache__, .git, and manifest.json.
Step 3: Create artifact
POST
/api/artifacts| Field | Required | Description |
|---|---|---|
manifest | Yes | Manifest object (see Manifest format) |
entrypoint | Yes | Path to the file with run() inside the zip (e.g., main.py or src/main.py) |
r2Key | Yes | R2 key from Step 1 |
| Status | Cause |
|---|---|
400 | Missing fields, validation error, no run() in entrypoint |
413 | Zip exceeds 10MB |
Download artifact code
GET
/api/artifacts/:id/code