{"openapi":"3.1.0","info":{"title":"push-live API","version":"0.1.0","description":"Static site hosting and private file storage for agents.","contact":{"email":"hello@push-live.com","url":"https://push-live.com"}},"servers":[{"url":"https://push-live.com"}],"tags":[{"name":"Auth"},{"name":"Sites"},{"name":"Drives"},{"name":"Domains"},{"name":"Variables"},{"name":"Payments"},{"name":"Apps"},{"name":"Support"}],"paths":{"/api/auth/agent/request-code":{"post":{"tags":["Auth"],"summary":"Request an email sign-in code","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]}}}},"responses":{"200":{"description":"ok"},"401":{"description":"unauthorized"}}}},"/api/auth/agent/verify-code":{"post":{"tags":["Auth"],"summary":"Verify an email code and get an API key","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"code":{"type":"string"}},"required":["email","code"]}}}},"responses":{"200":{"description":"ok"},"401":{"description":"unauthorized"}}}},"/api/v1/publish":{"post":{"tags":["Sites"],"summary":"Create a Site","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}]}},"/api/v1/publish/{slug}":{"put":{"tags":["Sites"],"summary":"Update an existing Site","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}]},"get":{"tags":["Sites"],"summary":"Get Site details","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"delete":{"tags":["Sites"],"summary":"Delete a Site","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/publish/{slug}/finalize":{"post":{"tags":["Sites"],"summary":"Finalize a pending version","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}]}},"/api/v1/publish/{slug}/uploads/refresh":{"post":{"tags":["Sites"],"summary":"Refresh presigned upload URLs","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/publish/{slug}/claim":{"post":{"tags":["Sites"],"summary":"Claim an anonymous Site","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/publish/{slug}/metadata":{"patch":{"tags":["Sites"],"summary":"Patch metadata + access controls","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/publish/{slug}/duplicate":{"post":{"tags":["Sites"],"summary":"Server-side copy","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/publish/from-drive":{"post":{"tags":["Sites"],"summary":"Publish a Drive snapshot as a Site","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/publishes":{"get":{"tags":["Sites"],"summary":"List account Sites","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/publish/{slug}/analytics":{"get":{"tags":["Apps"],"summary":"Analytics summary for a Site (period=1d/7d/30d/90d)","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"period","in":"query","required":false,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/drives":{"get":{"tags":["Drives"],"summary":"List Drives","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"post":{"tags":["Drives"],"summary":"Create Drive","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/drives/default":{"get":{"tags":["Drives"],"summary":"Get or create the default Drive","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/drives/{driveId}":{"get":{"tags":["Drives"],"summary":"Drive details","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"patch":{"tags":["Drives"],"summary":"Patch Drive","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"delete":{"tags":["Drives"],"summary":"Delete Drive","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/drives/{driveId}/files":{"get":{"tags":["Drives"],"summary":"List files","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"patch":{"tags":["Drives"],"summary":"Batch ops","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/drives/{driveId}/files/uploads":{"post":{"tags":["Drives"],"summary":"Stage upload","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/drives/{driveId}/files/finalize":{"post":{"tags":["Drives"],"summary":"Finalize upload","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/drives/{driveId}/files/move":{"post":{"tags":["Drives"],"summary":"Move a file","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/drives/{driveId}/files/{path}":{"get":{"tags":["Drives"],"summary":"Read a Drive file (?versions=true lists history; ?at=<unix_ms> time-travel)","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}},{"name":"versions","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"at","in":"query","required":false,"schema":{"type":"integer"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"delete":{"tags":["Drives"],"summary":"Delete a Drive file (?recursive=true for prefix delete)","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}},{"name":"recursive","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/drives/{driveId}/tokens":{"get":{"tags":["Drives"],"summary":"List tokens","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"post":{"tags":["Drives"],"summary":"Mint token","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/drives/{driveId}/tokens/{tokenId}":{"delete":{"tags":["Drives"],"summary":"Revoke token","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"driveId","in":"path","required":true,"schema":{"type":"string"}},{"name":"tokenId","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/domains":{"get":{"tags":["Domains"],"summary":"List domains","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"post":{"tags":["Domains"],"summary":"Add a custom domain","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/domains/{domain}":{"get":{"tags":["Domains"],"summary":"Get domain","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"delete":{"tags":["Domains"],"summary":"Remove domain","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/domains/{domain}/sync":{"post":{"tags":["Domains"],"summary":"Re-sync from Cloudflare","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/handle":{"get":{"tags":["Domains"],"summary":"Get handle","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"post":{"tags":["Domains"],"summary":"Create handle","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"patch":{"tags":["Domains"],"summary":"Update handle","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"delete":{"tags":["Domains"],"summary":"Delete handle","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/links":{"get":{"tags":["Domains"],"summary":"List links","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"post":{"tags":["Domains"],"summary":"Create link","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/links/{location}":{"get":{"tags":["Domains"],"summary":"Get link","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"location","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"patch":{"tags":["Domains"],"summary":"Update link","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"location","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"delete":{"tags":["Domains"],"summary":"Delete link","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"location","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/me/variables":{"get":{"tags":["Variables"],"summary":"List variables","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/me/variables/{name}":{"put":{"tags":["Variables"],"summary":"Set variable","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"delete":{"tags":["Variables"],"summary":"Delete variable","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/v1/wallet":{"get":{"tags":["Payments"],"summary":"Get wallet","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]},"patch":{"tags":["Payments"],"summary":"Set wallet","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}},"/api/pay/{slug}/session":{"post":{"tags":["Payments"],"summary":"Start a payment session","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}]}},"/api/pay/{slug}/poll":{"get":{"tags":["Payments"],"summary":"Poll a session","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"session","in":"query","required":false,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}]}},"/api/pay/{slug}/grant":{"post":{"tags":["Payments"],"summary":"Grant access after payment","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}]}},"/api/pay/{slug}/confirm":{"get":{"tags":["Payments"],"summary":"Browser-flow grant: redirects with cookie on success","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"session","in":"query","required":false,"schema":{"type":"string"}},{"name":"tx","in":"query","required":false,"schema":{"type":"string"}},{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}]}},"/api/v1/support":{"post":{"tags":["Support"],"summary":"Submit a support request","responses":{"4":{"description":"client error"},"5":{"description":"server error"},"200":{"description":"ok"}},"parameters":[{"name":"X-Push-Live-Client","in":"header","required":false,"schema":{"type":"string"},"description":"Optional caller identifier (e.g. \"my-agent/1.2.0\"). Stored with the Site for attribution."}],"security":[{"bearerAuth":[]}]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key"}}},"security":[{"bearerAuth":[]}]}