{"openapi":"3.1.0","info":{"title":"Prompt402 API","version":"1.0.0","description":"Pay-per-request Higgsfield video API with Seedance 2.5 text-to-video, x402 payments and live upstream pricing plus a fixed 10% markup. No subscription."},"servers":[{"url":"https://prompt402.com"}],"externalDocs":{"url":"https://prompt402.com/docs","description":"Request, payment, polling and failure guide"},"x-pricing-policy":"https://prompt402.com/pricing.json","paths":{"/api/v1/quote":{"post":{"summary":"Quote the current upstream cost plus 10%","operationId":"quoteGeneration","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationInput"}}}},"responses":{"200":{"description":"Exact USDC quote"},"400":{"description":"Invalid request"},"429":{"description":"Rate limited"}}}},"/api/v1/generations":{"post":{"summary":"Submit a generation after x402 payment","operationId":"submitGeneration","description":"Payment settles upfront. Retry the same body and key with PAYMENT-SIGNATURE after inspecting the 402 challenge.","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationInput"}}}},"responses":{"202":{"description":"Queued generation, or the original generation for a replayed Idempotency-Key (not charged again)"},"400":{"description":"Invalid request; not charged"},"402":{"description":"x402 payment challenge"},"409":{"description":"Idempotency-Key conflict or request in progress; not charged"},"429":{"description":"Rate limited"},"500":{"description":"Payment settled but the submission could not be recorded; key retained for reconciliation"},"502":{"description":"Payment settled but Higgsfield rejected the submission; recorded for refund review"}}}},"/api/v1/generations/{id}":{"get":{"summary":"Poll generation status","operationId":"getGenerationStatus","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current upstream status"},"404":{"description":"No generation submitted through this service has this ID"},"429":{"description":"Rate limited"},"502":{"description":"Status unavailable"}}}}},"components":{"schemas":{"GenerationInput":{"description":"Allowlisted text-to-video operations. Unknown fields are stripped; arbitrary model slugs and media modes are not supported.","oneOf":[{"type":"object","properties":{"operation":{"type":"string","const":"bytedance/seedance-2.0/text-to-video"},"prompt":{"type":"string","minLength":1,"maxLength":2000},"duration":{"default":5,"anyOf":[{"type":"number","const":5},{"type":"number","const":10}]},"resolution":{"default":"720p","type":"string","enum":["480p","720p","1080p"]},"aspect_ratio":{"default":"16:9","type":"string","enum":["16:9","9:16","1:1"]},"generate_audio":{"default":false,"type":"boolean"}},"required":["operation","prompt"]},{"type":"object","properties":{"operation":{"type":"string","const":"bytedance/seedance-2.5/text-to-video"},"prompt":{"type":"string","minLength":1,"maxLength":2000},"duration":{"default":5,"type":"integer","minimum":4,"maximum":30},"resolution":{"default":"720p","type":"string","enum":["480p","720p"]},"aspect_ratio":{"default":"16:9","type":"string","enum":["16:9","4:3","1:1","3:4","9:16","21:9"]},"output_format":{"default":"mp4","type":"string","enum":["mp4","mov"]},"generate_audio":{"default":true,"type":"boolean"}},"required":["operation","prompt"]}]}}}}