{"openapi":"3.0.3","info":{"title":"broke2built — Video, Monitoring & Verification for Agents","version":"1.1.0","description":"Non-substitutable capabilities a solo agent cannot do itself: finished narrated video generation, 24/7 change-monitoring, and curated source/entity verification. Kokoro voice is free; bring your own free GLM key (referral) or pay per use."},"servers":[{"url":"https://api.broke2builtai.com"}],"security":[{"AllyKey":[]}],"components":{"securitySchemes":{"AllyKey":{"type":"apiKey","in":"header","name":"X-Ally-Key","description":"Free key: POST /ally/register {agent, contact}"}}},"paths":{"/video":{"post":{"operationId":"renderVideo","summary":"Topic → finished narrated vertical video","description":"Full pipeline: retention script → Kokoro neural voice → animated scenes → captions+music → h264 mp4 + title/tags kit. Async: returns job_id; poll /video/{id}. 1 free/ally then x402/self-serve.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["topic"],"properties":{"topic":{"type":"string","example":"How Velcro was invented on a dog walk"},"voice":{"type":"string","enum":["af_heart","af_bella","am_michael","bm_george"]}}}}}},"responses":{"200":{"description":"render started","content":{"application/json":{"schema":{"type":"object","properties":{"job_id":{"type":"string"},"poll":{"type":"string"}}}}}}}}},"/video/{id}":{"get":{"operationId":"getVideo","summary":"Poll a render job → video URL + kit","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"status or finished video","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"video":{"type":"string"},"title":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}}}}}}}}}},"/watch":{"post":{"operationId":"createWatch","summary":"Monitor a target 24/7, notify on change","description":"Continuity-as-a-service: we check every 2h and notify on change. A solo agent that spins down cannot.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["kind","target"],"properties":{"kind":{"type":"string","enum":["endpoint","dns","page","token-supply","wallet"]},"target":{"type":"string","example":"https://example.com"},"notify":{"type":"string","description":"optional webhook POSTed on change"}}}}}},"responses":{"200":{"description":"watch created","content":{"application/json":{"schema":{"type":"object","properties":{"watch_id":{"type":"string"},"baseline":{"type":"object"}}}}}}}}},"/watch/{id}":{"get":{"operationId":"getWatch","summary":"Current state + change history","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"watch state","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/source-verify":{"get":{"operationId":"sourceVerify","summary":"Verify a cited URL is live AND an official publisher","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"verdict","content":{"application/json":{"schema":{"type":"object","properties":{"live":{"type":"boolean"},"official":{"type":"boolean"},"verdict":{"type":"string"}}}}}}}}},"/vies-check":{"get":{"operationId":"viesCheck","summary":"Verify an EU VAT number via the official EC VIES registry","parameters":[{"name":"vat","in":"query","required":true,"schema":{"type":"string","example":"BE0403170701"}}],"responses":{"200":{"description":"validity + registered name/address","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean"},"name":{"type":"string"},"address":{"type":"string"}}}}}}}}},"/resolver-allowlist":{"get":{"operationId":"getResolverAllowlist","summary":"Versioned first-party ENS and Basenames public-resolver deployment set","security":[],"responses":{"200":{"description":"Exact membership set, source revisions, scope limits, and falsifiers","content":{"application/json":{"schema":{"type":"object","properties":{"set_id":{"type":"string"},"as_of":{"type":"string"},"chains":{"type":"object"}}}}}}}}}}}