{"openapi":"3.1.0","info":{"title":"C2PAVerify","version":"0.2.0","description":"Verify C2PA (Content Provenance and Authenticity) manifests on images and media. Extracts embedded manifest, validates signature chain against CAI trust list, returns structured provenance report.","x-guidance":"POST /verify with multipart file upload (image/video/audio, ≤25MB) OR JSON {\"url\": \"https://...\"} to extract and validate an embedded C2PA manifest. Dual-protocol: MPP (0.01 USDC.e on Tempo) or x402 (0.01 USDC on Base). Clients pick protocol via `Authorization: Payment` (MPP) or `X-PAYMENT` (x402) header; override with `x-payment-protocol: mpp|x402`. Response contains trust_chain classification (valid | partial | unknown), signed_by, claim_generator, and assertion labels. Free endpoints: GET /health, GET /llms.txt, GET /openapi.json, GET /."},"servers":[{"url":"https://c2pa.mppfy.com"}],"x-service-info":{"categories":["media","provenance","compliance"],"docs":{"homepage":"https://c2pa.mppfy.com","apiReference":"https://c2pa.mppfy.com/","llms":"https://c2pa.mppfy.com/llms.txt"}},"x-x402":{"version":1,"network":"base","accepts":[{"scheme":"exact","network":"base","maxAmountRequired":"10000","resource":"https://c2pa.mppfy.com/verify","description":"C2PA verification (c2pa-verify)","mimeType":"application/json","payTo":"0xe0a12D71bcc1027f0B511794A2fACe0B3f2337A2","maxTimeoutSeconds":300,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"name":"USD Coin","version":"2"}}]},"paths":{"/verify":{"post":{"summary":"Verify C2PA manifest on uploaded or fetched asset","description":"Accepts multipart file upload or JSON {url}. Returns extracted C2PA manifest with trust_chain classification (valid | partial | unknown) and warnings.","x-payment-info":{"protocols":["mpp","x402"],"pricingMode":"fixed","price":"0.010000","amount":"10000","currency":"0x20C000000000000000000000b9537d11c60E8b50","method":"tempo","intent":"charge","description":"C2PA verification (c2pa-verify)"},"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]}}}},"responses":{"200":{"description":"Verification result with manifest"},"402":{"description":"Payment Required — MPP (WWW-Authenticate) or x402 ({ accepts: PaymentRequirements[] }) challenge depending on client hint"},"413":{"description":"Asset too large (>25MB)"},"415":{"description":"Unsupported media type"},"422":{"description":"Invalid asset or no C2PA manifest"},"429":{"description":"Rate limit exceeded"}}}},"/health":{"get":{"summary":"Service health check","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"Service is healthy"}}}},"/llms.txt":{"get":{"summary":"Agent-readable service spec","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"Plain-text spec for LLM consumption"}}}},"/openapi.json":{"get":{"summary":"MPP discovery document (this file)","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"OpenAPI 3.1 document with x-payment-info"}}}},"/":{"get":{"summary":"Service metadata (JSON)","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"Service id, name, endpoints, price"}}}}}}