{"openapi":"3.1.0","info":{"title":"SEO Audit Kit — AI-Agent Toolbox","version":"1.0.0","description":"Self-service HTTP toolbox of SEO skills for AI agents. Register, submit a blog article URL, run skills, get Markdown reports.","contact":{"name":"while.chat","email":"operator@while.chat","url":"https://www.while.chat"}},"servers":[{"url":"https://audit.while.chat"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key issued by POST /api/agents/register. Prefix `sak_`."}}},"paths":{"/api/agents/register":{"post":{"summary":"Self-service agent registration","description":"Returns an api_key. Shown ONCE.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","operator_contact","use_case"],"properties":{"name":{"type":"string","minLength":3,"maxLength":80},"operator_contact":{"type":"string","maxLength":200},"use_case":{"type":"string","minLength":20,"maxLength":2000}}}}}},"responses":{"201":{"description":"Agent registered"}}}},"/api/articles":{"post":{"summary":"Submit a blog-article URL","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"},"refetch":{"type":"boolean","default":false}}}}}},"responses":{"201":{"description":"Article persisted"}}},"get":{"summary":"List your articles","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Articles"}}}},"/api/articles/{id}":{"get":{"summary":"Article + tool-run history","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Article"},"404":{"description":"Not found"}}},"delete":{"summary":"Delete article","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted"}}}},"/api/tools/seo-schreibstil":{"post":{"summary":"SEO-Schreibstil-Audit","description":"Prueft Schreibstil eines Blog-Artikels gegen MaxScript-Qualitaet, AIDA, Keyword-Intent-Matrix.","tags":["tools","content"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["article_id"],"properties":{"article_id":{"type":"string","format":"uuid"},"target_keywords":{"type":"string","description":"string[] (optional)"}}}}}},"responses":{"200":{"description":"Markdown report"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Article or skill not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Skill execution failed"}}},"get":{"summary":"Describe SEO-Schreibstil-Audit","tags":["tools","content"]}},"/api/tools/seo-content-verify":{"post":{"summary":"SEO-Content-Pre-Publish-Check","description":"Verifiziert Artikel gegen 12 K.o.-Fragen vor Veroeffentlichung: FAQ-Deprecation, Takeaway, E-E-A-T, Schema.","tags":["tools","qa"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["article_id"],"properties":{"article_id":{"type":"string","format":"uuid"}}}}}},"responses":{"200":{"description":"Markdown report"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Article or skill not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Skill execution failed"}}},"get":{"summary":"Describe SEO-Content-Pre-Publish-Check","tags":["tools","qa"]}},"/api/tools/seo-recht":{"post":{"summary":"Rechts-Check (DDG/TDDDG/DSGVO/UWG)","description":"Prueft Artikel auf DACH-2026-Recht: Werbe-Kennzeichnung, Marken-Erwaehnungen, CC-Bilder, Erfolgsversprechen.","tags":["tools","compliance"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["article_id"],"properties":{"article_id":{"type":"string","format":"uuid"}}}}}},"responses":{"200":{"description":"Markdown report"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Article or skill not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Skill execution failed"}}},"get":{"summary":"Describe Rechts-Check (DDG/TDDDG/DSGVO/UWG)","tags":["tools","compliance"]}},"/api/tools/humanizer":{"post":{"summary":"AI-Detection-Score","description":"12 Detektoren (Em-dash, Floskeln, generische Eroeffnungen, ...). Score 0-100 wie KI-verdaechtig der Text wirkt.","tags":["tools","qa"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["article_id"],"properties":{"article_id":{"type":"string","format":"uuid"}}}}}},"responses":{"200":{"description":"Markdown report"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Article or skill not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Skill execution failed"}}},"get":{"summary":"Describe AI-Detection-Score","tags":["tools","qa"]}},"/api/tools/keyword-optimize":{"post":{"summary":"Keyword-Coverage-Optimierung","description":"Analysiert Keyword-Coverage gegen Target-Keywords. 5-Klassen-Schema (Brand/Money/Compound/Info/Trans). DataForSEO-integriert.","tags":["tools","research"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["article_id"],"properties":{"article_id":{"type":"string","format":"uuid"},"target_keywords":{"type":"string","description":"string[] (required)"},"use_dataforseo":{"type":"string","description":"boolean (default: true)"}}}}}},"responses":{"200":{"description":"Markdown report"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Article or skill not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Skill execution failed"}}},"get":{"summary":"Describe Keyword-Coverage-Optimierung","tags":["tools","research"]}},"/api/tools/internal-links":{"post":{"summary":"Interne-Verlinkungs-Vorschlaege","description":"Crawlt Sitemap der Domain, sucht thematisch passende interne Verlinkungs-Kandidaten fuer den Artikel.","tags":["tools","structure"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["article_id"],"properties":{"article_id":{"type":"string","format":"uuid"},"sitemap_url":{"type":"string","description":"string (optional, sonst auto-detect)"}}}}}},"responses":{"200":{"description":"Markdown report"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Article or skill not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Skill execution failed"}}},"get":{"summary":"Describe Interne-Verlinkungs-Vorschlaege","tags":["tools","structure"]}},"/api/tools/cta-suggest":{"post":{"summary":"CTA-Vorschlaege","description":"Schlaegt Call-to-Actions basierend auf Artikel-Intent + ad-creative-psychologie-Patterns vor.","tags":["tools","conversion"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["article_id"],"properties":{"article_id":{"type":"string","format":"uuid"},"business_context":{"type":"string","description":"string (z.B. 'B2B-SaaS DACH, Trial-Sign-up')"}}}}}},"responses":{"200":{"description":"Markdown report"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Article or skill not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Skill execution failed"}}},"get":{"summary":"Describe CTA-Vorschlaege","tags":["tools","conversion"]}},"/api/tools/local-seo-check":{"post":{"summary":"Local-SEO-Potenzial","description":"Prueft ob Artikel Local-SEO-Potenzial hat (Stadt-Nennungen, lokale Keywords, lokales Schema).","tags":["tools","local"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["article_id"],"properties":{"article_id":{"type":"string","format":"uuid"},"target_city":{"type":"string","description":"string (optional)"}}}}}},"responses":{"200":{"description":"Markdown report"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Article or skill not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Skill execution failed"}}},"get":{"summary":"Describe Local-SEO-Potenzial","tags":["tools","local"]}},"/api/tools/conversion-audit":{"post":{"summary":"Conversion-Audit","description":"Analysiert Conversion-Pfade im Artikel: Trust-Signals, Friction-Points, Above-Fold, Mobile-CTAs.","tags":["tools","conversion"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["article_id"],"properties":{"article_id":{"type":"string","format":"uuid"}}}}}},"responses":{"200":{"description":"Markdown report"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Article or skill not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Skill execution failed"}}},"get":{"summary":"Describe Conversion-Audit","tags":["tools","conversion"]}},"/api/tools/schema-suggest":{"post":{"summary":"Schema-Markup-Empfehlung","description":"Schlaegt passende Schema.org-Typen vor (Article, HowTo, BreadcrumbList, ...). FAQ-Deprecation beachtet.","tags":["tools","structure"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["article_id"],"properties":{"article_id":{"type":"string","format":"uuid"}}}}}},"responses":{"200":{"description":"Markdown report"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Article or skill not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Skill execution failed"}}},"get":{"summary":"Describe Schema-Markup-Empfehlung","tags":["tools","structure"]}}}}