# Artefaktum Upload New Artifact Version

> Artefaktum Upload New Artifact Version is a paid API for AI agents from api.artefaktum.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-11-01).

Initiates a new artifact version upload by returning a presigned PUT URL for the file bytes, with pricing based on file size

## Facts

- Endpoint: POST https://api.artefaktum.dev/v1/artifacts/:artifact_id/uploads?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-01
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/artefaktum-upload-new-artifact-version-b3f1a924
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_s1DapmSRjV-vv-24Pky0W

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability artefaktum-upload-new-artifact-version-b3f1a924 -d '<json body>'
```

Example prompt: Upload a new version of my artifact abc123 to Artefaktum — the file is called results.csv, it's text/csv, and it's 4500000 bytes.

## When to prefer this

Use this endpoint when you need to store a new version of an existing artifact owned by your wallet on Artefaktum, especially when file sizes range from small (under 10 MiB at $0.01) to large (up to 1 GiB at $0.50). It is the correct entry point for any versioned file write operation on the platform. Prefer it over generic S3 or cloud storage when you need wallet-based ownership, automatic 30-day retention, versioning, and lineage tracking without a separate signup flow.

## Known failure modes

- size_bytes exceeds 1 GiB limit — request rejected
- artifact_id does not belong to the paying wallet — unauthorized error
- Invalid or missing content_type — validation error
- Insufficient USDC balance to cover the size-tiered price — payment failure
- Presigned URL expires before the PUT is completed — upload must be restarted
- Missing required fields (filename, content_type, size_bytes) — 422 validation error

## How this service works

Store a new version of an artifact the wallet owns, kept for 30 days: returns a presigned PUT URL for its bytes. Body: filename, content_type, size_bytes. Price by size_bytes: $0.01 up to 10 MiB, $0.05 up to 100 MiB, $0.50 up to 1 GiB. After the PUT, POST /v1/artifacts/{id}/versions/{version_id}/complete (free, sign-in-with-x). No signup: a wallet's first payment creates its account and a default project; the same wallet later reaches the same files.

## Output

Returns a presigned PUT URL that the caller uses to upload the file's raw bytes directly to object storage. After the PUT completes, the caller must POST to /v1/artifacts/{id}/versions/{version_id}/complete to finalize the version. Also returns a version_id for tracking.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "run_id": {
   "type": [
    "string",
    "null"
   ]
  },
  "filename": {
   "type": "string"
  },
  "size_bytes": {
   "type": "integer"
  },
  "content_type": {
   "type": "string"
  },
  "infer_lineage": {
   "type": "boolean"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/artefaktum-upload-new-artifact-version-b3f1a924/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.artefaktum.dev](https://www.zero.xyz/host/api.artefaktum.dev/llms.txt)
