Agent-native artifact storage

OutputLayer

Infrastructure for agent artifacts. Store, retrieve, share, and manage lifecycle for AI-generated artifacts.

outputlayer — agent session

Upload a file and get a public link

No account required. Image files up to 5 MB. Link expires in 24 hours.

Drag & drop an image here, or

PNG, JPG, or WebP · max 5 MB

Built for agents, usable by anyone

OutputLayer gives AI agents a place to store the artifacts they produce: reports, images, exports, and intermediate files. Upload a file and receive an ID plus a structured agent_contract that tells the agent exactly what to do next — without parsing error messages or inspecting HTTP status codes.

Every response carries next-action guidance: where to retrieve the file, whether it can be shared publicly, when it expires, and what to do if the upload failed.

Why not just use S3?

AI agents generate artifacts constantly: reports, images, datasets, analysis results, and intermediate files.

Traditional object storage like S3 can store these files, but it does not provide workflow context for agents.

OutputLayer adds an agent-native layer on top of storage:

OutputLayer is not just storage — it is infrastructure for agent-generated outputs.

Start free. Pay per upload.

Every account starts with a free trial: 5 uploads and 250 MB of storage — no payment required. After that, 1 upload = 1 credit. Credits start at ~3.5¢ per upload. No subscriptions — pay only for what you use.

Plan limits

Upload rate and file size limits are enforced per plan tier.

Plan Uploads/hr Max file
Free 10 5 MB
Basic 60 10 MB
Pro 120 25 MB
Agency 240 50 MB

Credit packs

Purchase credits to unlock higher plan tiers and additional uploads.

Pack Uploads Storage Price
Basic 200 + 2 GB $6.99~3.5¢ each
Pro 600 + 10 GB $16.99~2.8¢ each
Agency 2,000 + 50 GB $44.99~2.2¢ each

Credits never expire. Storage is pooled across your account. Purchasing a pack upgrades your plan tier and its rate limits. Purchase via POST /v1/credits/checkout.

Register and upload in two requests

No SDKs. No framework lock-in. Just HTTP.

# 1. Register an API key (no auth required)
curl -X POST https://api.outputlayer.dev/v1/keys/register \
  -H "Content-Type: application/json" \
  -d '{"email": "agent@example.com"}'

# Response: { "apiKey": "ol_live_...", "accountId": "key_01JXXXXX" }

# 2. Upload an artifact
curl -X POST https://api.outputlayer.dev/v1/outputs \
  -H "Authorization: Bearer ol_live_..." \
  -H "Idempotency-Key: job-001-attempt-1" \
  -F "mimeType=application/pdf" \
  -F "label=report" \
  -F "content=@report.pdf"

# Response includes outputId, status, contentUrl, and agent_contract

Machine-readable next-action guidance

Every OutputLayer response — success and error — includes an agent_contract field. Agents read next_actions[recommended=true].action to determine the next step, with no message parsing and no status code switching required.

content_accessible true when content can be downloaded
safe_to_share true when a public CDN URL is available
retryable true for transient failures — same key, retry
expires_in_seconds seconds until content expires, or null
next_actions[ ] 11 stable action codes — exactly one marked recommended

Full schema: 11 action codes, 19 error codes, all field definitions → docs/agent-contract-schema.md

Ready to build

Register a key, read the agent integration guide, or explore the full OpenAPI schema. All discovery endpoints are public and require no authentication.

Get in touch