80trust / 100

Uploads

by api.munition.io in Documents & files

x402 APIPassing, checked 4 h ago

Munition Upload: x402-paid temporary file hosting for AI agents. Buy a presigned upload slot, upload one local file or generated artifact up to 10 MB, and get a public non-guessable files.munition.io link retained for 7 days. Useful for PDFs, screenshots, images, logs, JSON, reports, browser sharing, webhook sharing, and agent-to-human handoff.

POST https://api.munition.io/v1/uploads

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
794 ms typical, 794 ms slowest 5%
Last check
4 h ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X POST "https://api.munition.io/v1/uploads" \
  -H "content-type: application/json" \
  -d '{"filename":"agent-report.pdf","mime":"application/pdf","sha256":"b43cd80a9e6155029135a38c0559aff6696566c431bfb8a9c9433882898247d1","sha256Base64":"tDzYCp5hVQKRNaOMBVmv9mllZsQxv7ipyUM4gomCR9E=","size":42000,"tags":["agent-output","report"],"tier":"short-10mb"}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.munition.io%2Fv1%2Fuploads
const res = await pay("https://api.munition.io/v1/uploads", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"filename":"agent-report.pdf","mime":"application/pdf","sha256":"b43cd80a9e6155029135a38c0559aff6696566c431bfb8a9c9433882898247d1","sha256Base64":"tDzYCp5hVQKRNaOMBVmv9mllZsQxv7ipyUM4gomCR9E=","size":42000,"tags":["agent-output","report"],"tier":"short-10mb"}),
});
console.log(await res.json());

Example input

{
  "filename": "agent-report.pdf",
  "mime": "application/pdf",
  "sha256": "b43cd80a9e6155029135a38c0559aff6696566c431bfb8a9c9433882898247d1",
  "sha256Base64": "tDzYCp5hVQKRNaOMBVmv9mllZsQxv7ipyUM4gomCR9E=",
  "size": 42000,
  "tags": [
    "agent-output",
    "report"
  ],
  "tier": "short-10mb"
}

Example output

{
  "expiresAt": "2026-10-15T05:03:38.472Z",
  "id": "upl_example",
  "maxSize": 10485760,
  "publicUrl": "https://files.munition.io/direct/upl_example-agent-report.pdf",
  "tags": [
    "agent-output",
    "report"
  ],
  "uploadHeaders": {
    "content-length": "42000",
    "content-type": "application/pdf",
    "x-amz-checksum-sha256": "tDzYCp5hVQKRNaOMBVmv9mllZsQxv7ipyUM4gomCR9E=",
    "x-amz-meta-sha256": "b43cd80a9e6155029135a38c0559aff6696566c431bfb8a9c9433882898247d1"
  },
  "uploadMethod": "PUT",
  "uploadUrl": "https://s3.example.com/presigned-put",
  "uploadUrlExpiresAt": "2026-10-08T05:13:38.474Z"
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
4 h agoPassed402794 ms$0.005