{"openapi":"3.1.0","info":{"title":"Yugvio API","version":"1.0.0","description":"Public REST API for tools, AI, and account data. Authenticate with a scoped API key."},"servers":[{"url":"https:\/\/yugvio.com\/api","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"http","scheme":"bearer","description":"Bearer <api key> or X-Api-Key header."}},"schemas":{"Envelope":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object"}}},"Error":{"type":"object","properties":{"success":{"type":"boolean","example":false},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}}}}}}},"paths":{"\/v1\/ping":{"get":{"summary":"Health check","security":[],"responses":{"200":{"description":"Success","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Envelope"}}}}}}},"\/v1\/tools":{"get":{"summary":"List tools","description":"Scope: tools.read","parameters":[{"name":"category","in":"query","required":false,"description":"Filter by category slug","schema":{"type":"string"}},{"name":"search","in":"query","required":false,"description":"Search by name","schema":{"type":"string"}},{"name":"per_page","in":"query","required":false,"description":"Page size (max 100)","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Envelope"}}}}}}},"\/v1\/tools\/{slug}":{"get":{"summary":"Get a tool","description":"Scope: tools.read","parameters":[{"name":"slug","in":"path","required":true,"description":"Tool slug","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Envelope"}}}},"404":{"description":"Error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/tools\/{slug}\/execute":{"post":{"summary":"Execute a tool","description":"Scope: tools.execute. Supports Idempotency-Key header.","parameters":[{"name":"slug","in":"path","required":true,"description":"Tool slug","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Replay guard","schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Success","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Envelope"}}}},"402":{"description":"Error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/ai\/chat":{"post":{"summary":"AI chat completion","description":"Scope: ai.chat","requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string"},"system":{"type":"string"},"temperature":{"type":"number"},"max_tokens":{"type":"integer"}}}}}},"responses":{"200":{"description":"Success","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Envelope"}}}},"422":{"description":"Error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/me":{"get":{"summary":"Current account","description":"Scope: user.read","responses":{"200":{"description":"Success","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Envelope"}}}}}}},"\/v1\/subscription":{"get":{"summary":"Subscription & entitlements","description":"Scope: subscription.read","responses":{"200":{"description":"Success","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Envelope"}}}}}}},"\/v1\/history":{"get":{"summary":"Execution history","description":"Scope: history.read","responses":{"200":{"description":"Success","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Envelope"}}}}}}}}}