{"openapi":"3.1.0","info":{"title":"VenvBot Core API","version":"0.1.0","description":"Multi-tenant API gateway for durable, platform-isolated VenvBot workers."},"servers":[{"url":"https://api.venvbot.com"}],"tags":[{"name":"System"},{"name":"Admin"},{"name":"Jobs"}],"paths":{"/api/health":{"get":{"tags":["System"],"summary":"Check engine health","responses":{"200":{"description":"Engine is reachable"}}}},"/api/v1/keys":{"post":{"tags":["Admin"],"summary":"Issue a scoped tenant API key","security":[{"adminBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tenant_id","scopes"],"properties":{"tenant_id":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"},"examples":[["jobs:write","platform:telegram"]]},"expires_in_days":{"type":"integer","minimum":1,"maximum":3650}}}}}},"responses":{"201":{"description":"API key issued"},"401":{"description":"Invalid admin token"}}}},"/api/v1/jobs":{"post":{"tags":["Jobs"],"summary":"Queue a platform job","security":[{"apiKeyBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["platform","action","data","idempotency_key"],"properties":{"platform":{"type":"string","enum":["whatsapp","instagram","telegram","facebook","seo"]},"action":{"type":"string","description":"{\"whatsapp\":[\"send_message\"],\"instagram\":[\"publish_image\"],\"telegram\":[\"send_message\"],\"facebook\":[\"publish_post\"],\"seo\":[\"audit_url\"]}"},"data":{"type":"object","additionalProperties":true},"idempotency_key":{"type":"string","minLength":8,"maxLength":128},"callback_url":{"type":"string","format":"uri"},"callback_secret":{"type":"string","minLength":16},"metadata":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"responses":{"202":{"description":"Job accepted by its platform queue"},"401":{"description":"Invalid API key"},"403":{"description":"API key lacks the required scope"},"422":{"description":"Invalid job payload"}}}}},"components":{"securitySchemes":{"adminBearer":{"type":"http","scheme":"bearer","description":"VENVBOT_ADMIN_TOKEN"},"apiKeyBearer":{"type":"http","scheme":"bearer","bearerFormat":"venvbot_live_*"}}}}