{"openapi":"3.0.0","info":{"title":"The Dev Suite API","version":"0.0.1","description":"API for The Dev Suite platform - developer tools, AI features, and subscriptions"},"servers":[{"url":"https://api.thedevsuite.com","description":"Production"},{"url":"http://localhost:8787","description":"Development"}],"tags":[{"name":"Health","description":"Health check endpoints"},{"name":"Auth","description":"Authentication endpoints"},{"name":"Users","description":"User management"},{"name":"Subscriptions","description":"Subscription management"},{"name":"AI","description":"AI-powered features"},{"name":"Interview","description":"Interview preparation"},{"name":"Tools - Formatters","description":"Code and data formatting tools"},{"name":"Tools - Encoders","description":"Encoding and decoding tools"},{"name":"Tools - Generators","description":"Data generation tools"},{"name":"Tools - Converters","description":"Data conversion tools"},{"name":"Tools - Parsers","description":"Data parsing tools"},{"name":"Tools - Analyzers","description":"Text and code analysis tools"},{"name":"Tools - Validators","description":"Data validation tools"},{"name":"Agent Discovery","description":"Agent discovery endpoints compliant with llmstxt.org, OpenAI plugin, and MCP specifications"}],"paths":{"/health":{"get":{"summary":"Health check","tags":["Health"],"responses":{"200":{"description":"API is healthy"}}}},"/auth/login":{"post":{"summary":"Login with email","tags":["Auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}}}}}},"responses":{"200":{"description":"Magic link sent"}}}},"/auth/verify":{"get":{"summary":"Verify magic link token","tags":["Auth"],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Token verified"}}}},"/users/me":{"get":{"summary":"Get current user","tags":["Users"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"User profile"}}}},"/subscriptions":{"get":{"summary":"Get user subscription","tags":["Subscriptions"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Subscription details"}}}},"/ai/explain":{"post":{"summary":"AI code explanation","tags":["AI"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"}}}}}},"responses":{"200":{"description":"Code explanation"}}}},"/ai/generate":{"post":{"summary":"AI code generation","tags":["AI"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string"}}}}}},"responses":{"200":{"description":"Generated code"}}}},"/ai/optimize":{"post":{"summary":"AI code optimization","tags":["AI"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"}}}}}},"responses":{"200":{"description":"Optimized code"}}}},"/interview/topics":{"get":{"summary":"Get interview topics","tags":["Interview"],"responses":{"200":{"description":"List of topics"}}}},"/interview/challenges":{"get":{"summary":"Get coding challenges","tags":["Interview"],"responses":{"200":{"description":"List of challenges"}}}},"/tools/format/json":{"get":{"summary":"Format JSON (via Query Params)","tags":["Tools - Formatters"],"parameters":[{"name":"input","in":"query","required":true,"schema":{"type":"string"},"description":"JSON string to format"},{"name":"indentation","in":"query","schema":{"type":"string","enum":["2","4","tab"],"default":"2"}},{"name":"sortKeys","in":"query","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Formatted JSON with Edge Caching"}}},"post":{"summary":"Format JSON (via JSON Body)","tags":["Tools - Formatters"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","description":"JSON string to format"},"indentation":{"type":"number","enum":[2,4],"default":2},"sortKeys":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Formatted JSON"}}}},"/tools/minify/json":{"post":{"summary":"Minify JSON","tags":["Tools - Formatters"],"responses":{"200":{"description":"Minified JSON"}}}},"/tools/format/xml":{"post":{"summary":"Format XML","tags":["Tools - Formatters"],"responses":{"200":{"description":"Formatted XML"}}}},"/tools/format/css":{"post":{"summary":"Format CSS","tags":["Tools - Formatters"],"responses":{"200":{"description":"Formatted CSS"}}}},"/tools/format/html":{"post":{"summary":"Format HTML","tags":["Tools - Formatters"],"responses":{"200":{"description":"Formatted HTML"}}}},"/tools/format/sql":{"post":{"summary":"Format SQL","tags":["Tools - Formatters"],"responses":{"200":{"description":"Formatted SQL"}}}},"/tools/format/javascript":{"post":{"summary":"Format JavaScript","tags":["Tools - Formatters"],"responses":{"200":{"description":"Formatted JS"}}}},"/tools/format/python":{"post":{"summary":"Format Python","tags":["Tools - Formatters"],"responses":{"200":{"description":"Formatted Python"}}}},"/tools/encode/base64":{"post":{"summary":"Encode to Base64","tags":["Tools - Encoders"],"responses":{"200":{"description":"Base64 encoded"}}}},"/tools/decode/base64":{"post":{"summary":"Decode from Base64","tags":["Tools - Encoders"],"responses":{"200":{"description":"Decoded string"}}}},"/tools/encode/url":{"post":{"summary":"URL Encode","tags":["Tools - Encoders"],"responses":{"200":{"description":"URL encoded"}}}},"/tools/decode/url":{"post":{"summary":"URL Decode","tags":["Tools - Encoders"],"responses":{"200":{"description":"Decoded URL"}}}},"/tools/encode/html-entities":{"post":{"summary":"Encode HTML Entities","tags":["Tools - Encoders"],"responses":{"200":{"description":"Encoded"}}}},"/tools/decode/html-entities":{"post":{"summary":"Decode HTML Entities","tags":["Tools - Encoders"],"responses":{"200":{"description":"Decoded"}}}},"/tools/generate/hash":{"post":{"summary":"Generate Hash","tags":["Tools - Generators"],"responses":{"200":{"description":"Hash generated"}}}},"/tools/generate/uuid":{"post":{"summary":"Generate UUID","tags":["Tools - Generators"],"responses":{"200":{"description":"UUIDs generated"}}}},"/tools/generate/password":{"post":{"summary":"Generate Password","tags":["Tools - Generators"],"responses":{"200":{"description":"Password generated"}}}},"/tools/generate/slug":{"post":{"summary":"Generate Slug","tags":["Tools - Generators"],"responses":{"200":{"description":"Slug generated"}}}},"/tools/generate/lorem":{"post":{"summary":"Generate Lorem Ipsum","tags":["Tools - Generators"],"responses":{"200":{"description":"Lorem ipsum text"}}}},"/tools/generate/api-key":{"post":{"summary":"Generate API Key","tags":["Tools - Generators"],"responses":{"200":{"description":"API key generated"}}}},"/tools/convert/timestamp":{"post":{"summary":"Convert Timestamp","tags":["Tools - Converters"],"responses":{"200":{"description":"Converted timestamp"}}}},"/tools/convert/timestamp/now":{"get":{"summary":"Get Current Timestamp","tags":["Tools - Converters"],"responses":{"200":{"description":"Current timestamp"}}}},"/tools/convert/color":{"post":{"summary":"Convert Color","tags":["Tools - Converters"],"responses":{"200":{"description":"Converted color"}}}},"/tools/convert/case":{"post":{"summary":"Convert Case","tags":["Tools - Converters"],"responses":{"200":{"description":"Converted case"}}}},"/tools/convert/number-base":{"post":{"summary":"Convert Number Base","tags":["Tools - Converters"],"responses":{"200":{"description":"Converted number"}}}},"/tools/convert/yaml-to-json":{"post":{"summary":"YAML to JSON","tags":["Tools - Converters"],"responses":{"200":{"description":"JSON output"}}}},"/tools/convert/json-to-yaml":{"post":{"summary":"JSON to YAML","tags":["Tools - Converters"],"responses":{"200":{"description":"YAML output"}}}},"/tools/convert/csv-to-json":{"post":{"summary":"CSV to JSON","tags":["Tools - Converters"],"responses":{"200":{"description":"JSON output"}}}},"/tools/convert/json-to-csv":{"post":{"summary":"JSON to CSV","tags":["Tools - Converters"],"responses":{"200":{"description":"CSV output"}}}},"/tools/convert/json-to-typescript":{"post":{"summary":"JSON to TypeScript","tags":["Tools - Converters"],"responses":{"200":{"description":"TypeScript types"}}}},"/tools/convert/markdown-to-html":{"post":{"summary":"Markdown to HTML","tags":["Tools - Converters"],"responses":{"200":{"description":"HTML output"}}}},"/tools/parse/url":{"post":{"summary":"Parse URL","tags":["Tools - Parsers"],"responses":{"200":{"description":"Parsed URL components"}}}},"/tools/parse/jwt":{"post":{"summary":"Parse JWT","tags":["Tools - Parsers"],"responses":{"200":{"description":"Decoded JWT"}}}},"/tools/parse/cron":{"post":{"summary":"Parse Cron Expression","tags":["Tools - Parsers"],"responses":{"200":{"description":"Cron explanation"}}}},"/tools/parse/user-agent":{"post":{"summary":"Parse User Agent","tags":["Tools - Parsers"],"responses":{"200":{"description":"Parsed UA"}}}},"/tools/analyze/diff":{"post":{"summary":"Text Diff","tags":["Tools - Analyzers"],"responses":{"200":{"description":"Diff result"}}}},"/tools/analyze/text-stats":{"post":{"summary":"Text Statistics","tags":["Tools - Analyzers"],"responses":{"200":{"description":"Text stats"}}}},"/tools/analyze/tokens":{"post":{"summary":"Count Tokens","tags":["Tools - Analyzers"],"responses":{"200":{"description":"Token count"}}}},"/tools/validate/json-schema":{"post":{"summary":"Validate JSON Schema","tags":["Tools - Validators"],"responses":{"200":{"description":"Validation result"}}}},"/tools/validate/email":{"post":{"summary":"Validate Email","tags":["Tools - Validators"],"responses":{"200":{"description":"Validation result"}}}},"/llms.txt":{"get":{"summary":"LLM documentation and tool directory standard","tags":["Agent Discovery"],"responses":{"200":{"description":"Plaintext markdown specification compliant with llmstxt.org"}}}},"/.well-known/ai-plugin.json":{"get":{"summary":"OpenAI plugin manifest","tags":["Agent Discovery"],"responses":{"200":{"description":"OpenAI plugin manifest"}}}},"/.well-known/agent.json":{"get":{"summary":"Agent discovery manifest","tags":["Agent Discovery"],"responses":{"200":{"description":"Agent discovery manifest"}}}},"/tools/schema/openai":{"get":{"summary":"OpenAI function calling schemas for all 52 tools","tags":["Agent Discovery"],"responses":{"200":{"description":"Array of OpenAI function tools"}}}},"/tools/schema/anthropic":{"get":{"summary":"Anthropic Claude tool schemas for all 52 tools","tags":["Agent Discovery"],"responses":{"200":{"description":"Array of Anthropic tools"}}}},"/tools/schema/mcp":{"get":{"summary":"Model Context Protocol (MCP) tool schemas for all 52 tools","tags":["Agent Discovery"],"responses":{"200":{"description":"Array of MCP tools"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}}}