# IPFS Pinning Provider Procurement Decision Procedure

> IPFS Pinning Provider Procurement Decision Procedure is a paid API for AI agents from k2so-8080.on.ascii.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-13).

Returns a deterministic decision (pin / do-not-pin / needs-review) for persisting a file or dataset to IPFS/Filecoin, with provider selection across Pinata, web3.storage, Filebase, and Lighthouse based on price, durability, and redundancy.

## Facts

- Endpoint: GET https://k2so-8080.on.ascii.dev/api/services/agent-facing-ipfs-filecoin-storage-procurement-d
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ipfs-pinning-provider-procurement-decision-procedure-f8227b3f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_4NHcMNm4JtVhQqgMNuMAJ

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 ipfs-pinning-provider-procurement-decision-procedure-f8227b3f
```

Example prompt: I need to pin a 25 GB dataset to IPFS for 2 years with a monthly budget of $5 — can you run the procurement decision procedure and tell me whether to pin it, which providers to use across Pinata, web3.storage, Filebase, and Lighthouse, and whether I need redundancy across at least 2 providers?

## When to prefer this

Use this endpoint when an agent needs a structured, auditable go/no-go decision on IPFS/Filecoin storage before committing spend — especially when comparing multiple providers (Pinata, web3.storage, Filebase, Lighthouse) on price and durability, enforcing per-object or monthly budget caps, requiring redundant pinning for important artifacts, or needing CID retrieval proof before any settlement. Prefer this over manual provider lookups or generic storage APIs when you need a single deterministic recommendation with evidence rather than raw pricing data.

## Known failure modes

- Provider candidates unavailable or pricing data stale — returns needs-review with explanation
- Budget cap already exceeded before evaluation — returns do-not-pin with spend detail
- CID retrieval proof fails GET check — blocks settlement and returns needs-review
- Payment not completed (402) — returns unpaid metadata only if meta=1 query param set
- Invalid or missing required input fields — returns error with schema validation message
- Monthly spend cap breach detected mid-evaluation — returns do-not-pin with cap evidence

## How this service works

Deterministic decision procedure for an agent that must persist a file or dataset to IPFS/Filecoin. Inputs: object size, retention window, budget, provider candidates. Outputs: pin / do-not-pin / needs-review with evidence. Checks: provider selection across Pinata, web3.storage, Filebase, and Lighthouse by price per GB and durability; per-object and monthly spend caps; redundancy threshold for important artifacts (pin to 2+ providers); CID retrieval proof via real GET before any settlement;

## Output

A structured decision object containing: an ok/not-ok outcome flag, a pin/do-not-pin/needs-review verdict, prose explanation of the decision rationale, selected provider(s) with price-per-GB evidence, redundancy assessment, CID retrieval proof status, budget utilization breakdown, generation timestamp, and the generation source (llm, reasoning, or deterministic).

## 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"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "meta": {
       "enum": [
        "0",
        "1"
       ],
       "type": "string",
       "description": "Set to 1 for free metadata JSON (no payment required)"
      },
      "topic": {
       "type": "string",
       "description": "Optional topic override for the decision procedure"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "title": "IPFS pinning provider procurement decision procedure paid response",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "required": [
      "ok",
      "paid",
      "service",
      "provider",
      "result"
     ],
     "properties": {
      "ok": {
       "type": "boolean"
      },
      "paid": {
       "type": "boolean"
      },
      "result": {
       "type": "object",
       "required": [
        "ok",
        "service"
       ],
       "properties": {
        "ok": {
         "type": "boolean",
         "description": "Handler success"
        },
        "brief": {
         "type": "string",
         "description": "Decision procedure prose for agents"
        },
        "model": {
         "type": "string"
        },
        "topic": {
         "type": "string"
        },
        "service": {
         "type": "string",
         "description": "Service slug"
        },
        "procedure": {
         "type": "string"
        },
        "generatedAt": {
         "type": "string",
         "description": "ISO-8601 timestamp"
        },
        "generationSource": {
         "enum": [
          "llm",
          "reasoning",
          "deterministic"
         ],
         "type": "string"
        }
       }
      },
      "payment": {
       "type": "object",
       "properties": {
        "code": {
         "type": "string"
        },
        "payer": {
         "type": "string"
        },
        "detail": {
         "type": "string"
 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ipfs-pinning-provider-procurement-decision-procedure-f8227b3f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from k2so-8080.on.ascii.dev](https://www.zero.xyz/host/k2so-8080.on.ascii.dev/llms.txt)
