{"openapi":"3.1.0","info":{"title":"Agentix — AI Code Validation API","version":"1.0.0","description":"Validate AI-generated code against **live documentation** for 48+ libraries.\n\nAgentix checks every line of AI-generated code against indexed docs for your exact library versions. Catches wrong imports, deprecated APIs, version mismatches, and framework convention violations.\n\n- **Base URL:** https://siamsmartweb.com\n- **Docs:** https://siamsmartweb.com/docs\n- **Status:** Beta","contact":{"email":"info@siamsmartweb.com"},"x-product":"Agentix","x-category":["developer-tools","ai-validation"],"x-keywords":["code validation","AI code review","API validation","linter API"]},"servers":[{"url":"https://siamsmartweb.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"ca_","description":"API key from the dashboard. Format: ca_liv_..."},"sessionJwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Session JWT from Supabase Auth (account management only)."}},"schemas":{"ValidateRequest":{"type":"object","required":["code"],"properties":{"code":{"type":"string","description":"Code snippet to validate.","example":"import { useState } from \"react\""},"files":{"type":"object","description":"Project files keyed by path. `package.json` used for dependency detection.","additionalProperties":{"type":"string"},"example":{"package.json":"{\"dependencies\":{\"next\":\"16.2.9\",\"react\":\"19.0.0\"}}"}},"task":{"type":"string","description":"Task description for context-aware validation."},"skill_name":{"type":"string","description":"Skill name for prompt resolution."},"session_token":{"type":"string","description":"Session token for skill-based validation."}}},"ValidateResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"valid":{"type":"boolean"},"issues":{"type":"array","items":{"type":"object","properties":{"line":{"type":"integer"},"column":{"type":"integer"},"message":{"type":"string"},"severity":{"type":"string","enum":["error","warning"]}}}},"summary":{"type":"string"},"checked_libraries":{"type":"array","items":{"type":"string"}}}},"usage":{"type":"object","properties":{"credits_used":{"type":"integer"},"credits_remaining":{"type":"integer"}}}}},"DetectStackRequest":{"type":"object","required":["files"],"properties":{"files":{"type":"object","required":["package.json"],"properties":{"package.json":{"type":"string"}}}}},"DetectStackResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"libraries":{"type":"array","items":{"type":"string"}},"versions":{"type":"object","additionalProperties":{"type":"string"}},"frameworks":{"type":"array","items":{"type":"string"}},"total_deps":{"type":"integer"}}}}},"UsageResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"credits_remaining":{"type":"integer"},"credits_total":{"type":"integer"},"plan":{"type":"string"},"used_this_month":{"type":"integer"}}}}},"SkillResolveRequest":{"type":"object","required":["skills"],"properties":{"skills":{"type":"array","items":{"type":"string"},"example":["code-validation"]},"context":{"type":"object","description":"Context variables injected as {{context.key}} in prompts.","additionalProperties":{"type":"string"}}}},"SkillResolveResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"name":{"type":"string"},"resolved_skills":{"type":"array","items":{"type":"string"}},"prompt":{"type":"string"},"session_token":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"recommended_skills":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"reason":{"type":"string"}}}}}}}},"DocsListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"library":{"type":"string"},"version":{"type":"string"}}}}}}}},"paths":{"/api/validate":{"post":{"summary":"Validate AI-generated code","description":"Check AI-generated code against live documentation for detected libraries. Catches wrong imports, deprecated APIs, version mismatches, and framework convention violations.","operationId":"validateCode","tags":["Validation"],"security":[{"apiKey":[]},{"sessionJwt":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateRequest"}}}},"responses":{"200":{"description":"Validation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateResponse"}}}},"400":{"description":"Invalid request body"},"401":{"description":"Invalid or missing API key"},"413":{"description":"Payload too large (>5MB)"},"429":{"description":"Rate limit exceeded (60/min)"}},"x-rate-limit":"60 requests per minute","x-max-payload":"5MB"}},"/api/detect-stack":{"post":{"summary":"Detect technology stack","description":"Analyze package.json to detect framework, libraries, and dependency versions.","operationId":"detectStack","tags":["Validation"],"security":[{"apiKey":[]},{"sessionJwt":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetectStackRequest"}}}},"responses":{"200":{"description":"Stack detection result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetectStackResponse"}}}},"400":{"description":"Invalid request body"},"401":{"description":"Invalid API key"},"413":{"description":"Payload too large (>100KB)"}},"x-max-payload":"100KB"}},"/api/usage":{"get":{"summary":"Check API usage and credits","description":"Check remaining credits, plan info, daily usage breakdown, and recent API calls.","operationId":"getUsage","tags":["Account"],"security":[{"apiKey":[]},{"sessionJwt":[]}],"responses":{"200":{"description":"Usage data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponse"}}}},"401":{"description":"Invalid API key"}}}},"/api/skills/resolve":{"post":{"summary":"Resolve skills with dependency tree","description":"Resolve skills, compile prompts with context injection, and return a session token for subsequent validations.","operationId":"resolveSkills","tags":["Skills"],"security":[{"apiKey":[]},{"sessionJwt":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillResolveRequest"}}}},"responses":{"200":{"description":"Resolved skill data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillResolveResponse"}}}},"400":{"description":"Invalid skills or context"},"401":{"description":"Invalid API key"},"413":{"description":"Payload too large (>500KB)"}},"x-max-payload":"500KB"}},"/api/docs":{"get":{"summary":"List indexed libraries","description":"List all libraries currently indexed in the docs cache with their versions.","operationId":"listDocs","tags":["Docs"],"security":[],"responses":{"200":{"description":"List of indexed libraries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocsListResponse"}}}}}}},"/api/docs/check-stale":{"get":{"summary":"Check for stale library versions","description":"Check which indexed libraries have newer versions available on npm.","operationId":"checkStaleDocs","tags":["Docs"],"security":[],"responses":{"200":{"description":"Staleness check results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"library":{"type":"string"},"cached_version":{"type":"string"},"npm_latest":{"type":"string"},"stale":{"type":"boolean"},"error":{"type":"string","nullable":true}}}}}}}}}}}},"/api/account/export":{"post":{"summary":"Export account data (GDPR)","description":"Export all account data for GDPR data portability. Requires session JWT (not API key).","operationId":"exportAccount","tags":["Account"],"security":[{"sessionJwt":[]}],"responses":{"200":{"description":"Account data export (JSON)"},"401":{"description":"Invalid or missing session JWT"}}}},"/api/account/delete":{"post":{"summary":"Delete account (GDPR)","description":"Permanently delete account and all associated data. Requires session JWT (not API key).","operationId":"deleteAccount","tags":["Account"],"security":[{"sessionJwt":[]}],"responses":{"200":{"description":"Account deleted"},"401":{"description":"Invalid or missing session JWT"}}}}},"tags":[{"name":"Validation","description":"Code validation and stack detection endpoints."},{"name":"Account","description":"Account management and usage tracking."},{"name":"Skills","description":"Skill resolution and prompt compilation."},{"name":"Docs","description":"Library documentation index endpoints."}],"externalDocs":{"description":"Full API Reference","url":"https://siamsmartweb.com/docs"},"x-features":["Code validation against live docs","Stack auto-detection","Skill-based prompt resolution","Credit-based usage metering"],"x-supported-libraries":["Next.js","React","Express.js","Hono","React Native / Expo","Three.js","tRPC","Tailwind CSS","shadcn/ui","Radix UI","Headless UI","Framer Motion","GSAP","Panda CSS","Lucide","Supabase","Prisma","Drizzle ORM","Kysely","better-sqlite3","Redis","Stripe","Axios","Socket.io","Clerk","Better Auth","Auth.js / NextAuth.js","Lucia Auth","Zustand","Jotai","Redux Toolkit","TanStack React Query","SWR","Immer","Zod","React Hook Form","Vitest","Testing Library","Playwright","Cypress","Vercel","Cloudflare","Docker","Resend","date-fns","Sharp","next-intl"]}