# objekt.sh Deploy — File Storage & CDN for AI Agents

> objekt.sh Deploy — File Storage & CDN for AI Agents is a paid API for AI agents from api.objekt.sh, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-11).

Uploads a set of files (up to 200 files, 10MB total) to a temporary or permanent CDN endpoint, returning an IPFS URI, a public URL, and ENS-compatible contenthash.

## Facts

- Endpoint: POST https://api.objekt.sh/deploy?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/objekt-sh-deploy-file-storage-cdn-for-ai-agents-6326457b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_e9fuYky4NGTewCPnYXRuo

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 objekt-sh-deploy-file-storage-cdn-for-ai-agents-6326457b -d '<json body>'
```

Example prompt: Upload these 3 HTML and CSS files to objekt.sh so I get a public CDN URL and an IPFS link I can use as an ENS contenthash — here are the files as data URLs.

## When to prefer this

Choose this endpoint when an AI agent needs to publish files to a publicly accessible URL with an IPFS URI and ENS contenthash in a single call, especially within an x402 micropayment workflow. Prefer it over generic S3-style storage when decentralized storage compatibility (IPFS/Arweave) or ENS integration is required, or when the caller needs a CDN-fronted temporary URL without managing a hosting account.

## Known failure modes

- Payment not included or invalid x402 payment header — returns 402 Payment Required
- Signature (sig) does not match the manifest hash or unverifiedAddress — returns 401/403
- Total file size exceeds 10MB or more than 200 files submitted — returns 400 with size/count error
- Invalid dataURL format in one or more file entries — returns 400 validation error
- Expired or malformed expiry timestamp — returns 400
- Network or upstream IPFS/Arweave pinning failure — returns 502 or 503

## How this service works

File storage for AI agents and ENS names. Upload via MCP, REST, or CLI. Free CDN tier. Permanent Arweave and IPFS options.

## Output

Returns a JSON object with: an IPFS URI (e.g. ipfs://bafy…), a temporary public CDN URL (e.g. https://tmp.objekt.sh/a1b2c3), a short hash identifier, total size string, file count, expiry duration, and an ENS-compatible contenthash hex string.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "sig": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]+$"
  },
  "hash": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]+$",
   "description": "SHA-256 of the deploy manifest"
  },
  "files": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "path",
     "dataURL"
    ],
    "properties": {
     "path": {
      "type": "string"
     },
     "dataURL": {
      "type": "string"
     }
    }
   },
   "description": "Site files — max 200, 10MB total"
  },
  "expiry": {
   "type": "string"
  },
  "unverifiedAddress": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]{40}$"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "uri": "ipfs://bafy…",
  "url": "https://tmp.objekt.sh/a1b2c3",
  "hash": "a1b2c3",
  "size": "340KB",
  "files": 12,
  "expiresIn": "7d",
  "contenthash": "0xe3010170…"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/objekt-sh-deploy-file-storage-cdn-for-ai-agents-6326457b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.objekt.sh](https://www.zero.xyz/host/api.objekt.sh/llms.txt)
