{"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.","termsOfService":"https://c2pa-staging.mppfy.com/legal/terms","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 /.well-known/mpp-services, GET /."},"servers":[{"url":"https://c2pa-staging.mppfy.com"}],"x-service-info":{"categories":["media","provenance","compliance"],"docs":{"homepage":"https://c2pa-staging.mppfy.com","apiReference":"https://c2pa-staging.mppfy.com/","llms":"https://c2pa-staging.mppfy.com/llms.txt"}},"x-x402":{"version":1,"network":"base-sepolia","accepts":[{"scheme":"exact","network":"base-sepolia","maxAmountRequired":"10000","resource":"https://c2pa-staging.mppfy.com/verify","description":"C2PA verification (c2pa-verify)","mimeType":"application/json","payTo":"0x191B80BA0beACF1e597f015D3814Ffbd54d2eff3","maxTimeoutSeconds":300,"asset":"0x036CbD53842c5426634e7929541eC2318f3dCF7e","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":"0x20c0000000000000000000000000000000000000","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"}}}},"/.well-known/mpp-services":{"get":{"summary":"RFC 8615 well-known alias for /openapi.json","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"Same payload as GET /openapi.json"}}}},"/.well-known/api-catalog":{"get":{"summary":"RFC 9727 API-catalog linkset","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"application/linkset+json pointing at service-desc, service-doc, service-meta"}}}},"/.well-known/mcp/server-card.json":{"get":{"summary":"MCP server manifest (@mppfy/c2pa-verify-mcp, stdio transport)","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"Tool catalog, transport, and installation hints for MCP hosts"}}}},"/legal/terms":{"get":{"summary":"Terms of Service (markdown)","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"text/markdown body with binding service terms"}}}},"/legal/privacy":{"get":{"summary":"Privacy Policy (markdown)","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"text/markdown body with data processing policy"}}}},"/robots.txt":{"get":{"summary":"robots.txt with AI-bot allow rules and sitemap link","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"text/plain robots.txt"}}}},"/sitemap.xml":{"get":{"summary":"sitemap.xml listing public discovery URLs","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"application/xml sitemap"}}}},"/":{"get":{"summary":"Service metadata (JSON)","x-payment-info":{"protocols":["mpp"],"pricingMode":"fixed","price":"0"},"responses":{"200":{"description":"Service id, name, endpoints, price"}}}}}}