{"openapi":"3.1.0","info":{"title":"6Frame Verify API","version":"1.0.0","description":"Paid agent-to-agent website acceptance-testing API. Jobs queue only after verified Stripe payment or credit reservation. Offered SKUs: website_quick ($3), website_full ($12), credit_pack ($100).","contact":{"name":"6Frame Studio","url":"https://6framestudio.com"}},"servers":[{"url":"https://web-production-1cede.up.railway.app"}],"x-offered-skus":{"website_quick":{"label":"Website Quick Check","amount_cents":300,"currency":"usd"},"website_full":{"label":"Website Full Acceptance","amount_cents":1200,"currency":"usd"},"credit_pack":{"label":"Prepaid Credit Pack ($110 usable)","amount_cents":10000,"currency":"usd"}},"x-offered-profiles":["website-acceptance"],"paths":{"/v1/capabilities":{"get":{"summary":"List profiles, SKUs, limits","security":[{"bearerAuth":[]},{}],"responses":{"200":{"description":"OK"}}}},"/v1/profiles/{slug}":{"get":{"summary":"Profile contract","responses":{"200":{"description":"OK"}}}},"/v1/quotes":{"post":{"summary":"Create quote","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["profile","input"],"properties":{"profile":{"type":"object","properties":{"slug":{"type":"string","enum":["website-acceptance"]},"version":{"type":"string"}}},"sku":{"type":"string","enum":["website_quick","website_full","credit_pack"]},"input":{"type":"object"}}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Quote"},"422":{"description":"Invalid input, or SKU/profile not currently offered"}}}},"/v1/orders":{"post":{"summary":"Create order from quote (payment_mode checkout | payment_intent | credit — credit draws down prepaid balance)","security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Order"},"503":{"description":"Stripe not configured"}}}},"/v1/credits":{"get":{"summary":"Prepaid credit balance + ledger","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Balance"}}}},"/v1/credits/checkout":{"post":{"summary":"Buy credit_pack ($100 → $110 usable). Returns Stripe Checkout URL; credits added on verified webhook","security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"success_url":{"type":"string","format":"uri"},"cancel_url":{"type":"string","format":"uri"}}}}}},"responses":{"200":{"description":"Checkout session"},"503":{"description":"Stripe not configured"}}}},"/v1/orders/{id}":{"get":{"summary":"Order payment state","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Order"}}}},"/v1/orders/{id}/payment-session":{"post":{"summary":"Create Stripe Checkout session","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Checkout"}}}},"/v1/jobs":{"post":{"summary":"Submit verification job (requires paid order)","security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Queued"},"402":{"description":"Payment required — unpaid jobs refused"}}}},"/v1/jobs/{id}":{"get":{"summary":"Job status","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Job"}}}},"/v1/jobs/{id}/cancel":{"post":{"summary":"Cancel before worker starts","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Cancelled"}}}},"/v1/jobs/{id}/report":{"get":{"summary":"Signed terminal report","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Report"}}}},"/v1/jobs/{id}/evidence":{"get":{"summary":"Evidence descriptors","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Evidence"}}}},"/v1/webhooks/stripe":{"post":{"summary":"Stripe webhook (raw body signature verification)","responses":{"200":{"description":"Received"}}}},"/v1/healthz":{"get":{"summary":"Liveness","responses":{"200":{"description":"OK"}}}},"/v1/readyz":{"get":{"summary":"Readiness","responses":{"200":{"description":"OK"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"fv_live_"}}}}