# MnemoSpark Lite File Upload

> MnemoSpark Lite File Upload is a paid API for AI agents from api.mnemospark.ai, paid per call via x402, $1.3/call, status unknown (last checked 2026-09-14).

Initiates a wallet-scoped file upload session, returning a presigned S3 URL, completion token, and bearer token for subsequent file listing and downloads; files expire after 30 days.

## Facts

- Endpoint: POST https://api.mnemospark.ai/api/mnemospark-lite/upload
- Price: $1.3/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/api-mnemospark-ai-06ef858d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_-cqGcaGKjHDg4WSWGtqcu

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 api-mnemospark-ai-06ef858d -d '<json body>'
```

Example prompt: Upload my project-report.pdf to MnemoSpark Lite temporary storage so I can share it for the next 30 days — give me back the presigned upload URL and the bearer token I'll need to list and download it later.

## When to prefer this

Choose this endpoint when you need temporary (30-day), wallet-scoped cloud file storage with a presigned S3 upload flow and need bearer-authenticated access to list and download files afterward. Ideal for agentic workflows where files need to be shared or retrieved later without long-term storage commitments and where payment is handled via x402/USDC.

## Known failure modes

- Payment not provided or insufficient USDC (402 Payment Required)
- Wallet not authorized or invalid wallet address (401 Unauthorized)
- File size exceeds allowed limit (413 Payload Too Large)
- Presigned URL generation failure due to S3 backend error (500 Internal Server Error)
- Request malformed or missing required fields (400 Bad Request)
- Rate limit exceeded for wallet (429 Too Many Requests)

## How this service works

OpenClaw plugin for encrypted cloud backup and agent-driven storage. Circle USDC on Coinbase Base (Ethereum L2) via x402—wallet-native, no API keys.

## Output

Returns a presigned S3 upload URL to PUT the file to, a completion token to confirm the upload, and a bearer token for authenticating subsequent listing and download requests. The stored file will automatically expire and be deleted after 30 days.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "filename",
      "contentType",
      "tier",
      "size_bytes"
     ],
     "properties": {
      "tier": {
       "enum": [
        "10mb",
        "100mb",
        "500mb",
        "1gb",
        "2gb",
        "3gb"
       ],
       "type": "string",
       "description": "Upload pricing/size tier"
      },
      "filename": {
       "type": "string",
       "description": "Single file name"
      },
      "size_bytes": {
       "type": "integer",
       "maximum": 4800000000,
       "minimum": 0,
       "description": "Declared upload size in bytes"
      },
      "contentType": {
       "type": "string",
       "description": "MIME type"
      }
     },
     "additionalProperties": false
    },
    "type": {
     "const": "http"
    },
    "method": {
     "const": "POST"
    },
    "bodyType": {
     "const": "json"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type",
    "example"
   ],
   "properties": {
    "type": {
     "const": "json"
    },
    "example": {
     "type": "object"
    }
   },
   "additionalProperties": true
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "maxSize": 100000000,
   "siteUrl": null,
   "uploadId": "abc123",
   "expiresAt": "2026-05-23T12:00:00Z",
   "publicUrl": null,
   "uploadUrl": "https://s3-presigned.example/...",
   "curlExample": "curl -X PUT --data-binary @\"example.pdf\" ...",
   "completion_token": "opaque-token",
   "list_scope_bearer": "opaque-bearer"
  },
  "success": true,
  "metadata": {
   "price": "$0.02",
   "network": "eip155:8453",
   "payment": {
    "status": "verified",
    "success": true,
    "transactionHash": null
   },
   "protocol": "x402"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/api-mnemospark-ai-06ef858d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.mnemospark.ai](https://www.zero.xyz/host/api.mnemospark.ai/llms.txt)
