{"openapi":"3.2.0","info":{"title":"All-in-One SEO Toolkit API","description":"Ultra-fast micro-services for JSON-LD Schema generation, LSI keywords, Helpful Content audits, URL slugifying, and meta inspection.","version":"1.0.0"},"servers":[{"url":"https://kpzyy.jojapi.net"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"v1"}],"x-agent-commerce":{"catalog_url":"https://kpzyy.jojapi.net/_jojapi/agent/plans","discovery_url":"https://kpzyy.jojapi.net/.well-known/x402","directory_url":"https://agents.jojapi.net/apis/all-in-one-seo-toolkit-api","docs":"https://docs.jojapi.com/consumers/agents"},"paths":{"/":{"get":{"operationId":"get","summary":"root__get","description":"Health check and service status ping.","responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"Example_1":{"value":{}},"default":{"value":{"status":"online","service":"All-in-One SEO Toolkit API","version":"1.1.0","documentation":"/docs"}}}}}}}}},"/v1/seo/meta-inspect":{"post":{"operationId":"post_v1_seo_meta_inspect","summary":"inspect_meta_v1_seo_meta_inspect_post","description":"Inspect HTML Meta Title, Meta Description, H1 tags, Canonical & OG tags.","tags":["v1"],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"title_length":{"type":"integer","title":"Title Length"},"title_status":{"type":"string","title":"Title Status"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"description_length":{"type":"integer","title":"Description Length"},"description_status":{"type":"string","title":"Description Status"},"h1_count":{"type":"integer","title":"H1 Count"},"has_canonical":{"type":"boolean","title":"Has Canonical"},"has_og_image":{"type":"boolean","title":"Has Og Image"}},"type":"object","required":["title","title_length","title_status","description","description_length","description_status","h1_count","has_canonical","has_og_image"],"title":"MetaInspectResponse"},"examples":{"Example_1":{"value":{"title":{},"title_length":0,"title_status":"","description":{},"description_length":0,"description_status":"","h1_count":0,"has_canonical":true,"has_og_image":true}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"examples":{"Example_1":{"value":{"detail":[{"loc":[],"msg":"","type":"","ctx":{}}]}}}}}}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"},"requestBody":{"content":{"application/json":{"schema":{"properties":{"html_content":{"type":"string","title":"Html Content"}},"type":"object","required":["html_content"],"title":"MetaInspectRequest"},"example":{"html_content":"<html><head><title>My Great Article Page</title><meta name='description' content='A short description here.'></head><body><h1>Main Title</h1></body></html>"}}}}}},"/v1/seo/readability":{"post":{"operationId":"post_v1_seo_readability","summary":"calculate_readability_v1_seo_readability_post","description":"Calculate Word Count, Character Count, Estimated Reading Time, and Difficulty Level.","tags":["v1"],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"word_count":{"type":"integer","title":"Word Count"},"character_count":{"type":"integer","title":"Character Count"},"estimated_reading_time_minutes":{"type":"number","title":"Estimated Reading Time Minutes"},"reading_difficulty":{"type":"string","title":"Reading Difficulty"}},"type":"object","required":["word_count","character_count","estimated_reading_time_minutes","reading_difficulty"],"title":"ReadabilityResponse"},"examples":{"Example_1":{"value":{"word_count":0,"character_count":0,"estimated_reading_time_minutes":0,"reading_difficulty":""}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"examples":{"Example_1":{"value":{"detail":[{"loc":[],"msg":"","type":"","ctx":{}}]}}}}}}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"},"requestBody":{"content":{"application/json":{"schema":{"properties":{"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"ReadabilityRequest"},"example":{"text":"FastAPI is an asynchronous web framework built on top of Starlette and Pydantic."}}}}}},"/v1/seo/schema-generate":{"post":{"operationId":"post_v1_seo_schema_generate","summary":"generate_schema_v1_seo_schema_generate_post","description":"Generate valid JSON-LD Structured Data (Schema.org) for Article, Product, or FAQ.","tags":["v1"],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"schema_type":{"type":"string","title":"Schema Type"},"json_ld":{"type":"string","title":"Json Ld"},"is_valid":{"type":"boolean","title":"Is Valid"}},"type":"object","required":["schema_type","json_ld","is_valid"],"title":"SchemaGenerateResponse"},"examples":{"Example_1":{"value":{"schema_type":"","json_ld":"","is_valid":true}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"examples":{"Example_1":{"value":{"detail":[{"loc":[],"msg":"","type":"","ctx":{}}]}}}}}}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"},"requestBody":{"content":{"application/json":{"schema":{"properties":{"schema_type":{"type":"string","title":"Schema Type","description":"Supported types: 'article', 'product', 'faq'"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"author_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author Name","default":"Editorial Team"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency","default":"USD"},"faq_items":{"anyOf":[{"items":{"properties":{"question":{"type":"string","title":"Question"},"answer":{"type":"string","title":"Answer"}},"type":"object","required":["question","answer"],"title":"FAQItem"},"type":"array"},{"type":"null"}],"title":"Faq Items"}},"type":"object","required":["schema_type","title"],"title":"SchemaGenerateRequest"},"example":{"schema_type":"article","title":"How to Build Ultra-Fast APIs with Python","description":{},"url":{},"author_name":{},"image_url":{},"price":{},"currency":{},"faq_items":{"0":{"question":"What is FastAPI?","answer":"FastAPI is a high-performance Python web framework."}}}}}}}},"/v1/seo/link-check":{"post":{"operationId":"post_v1_seo_link_check","summary":"check_links_v1_seo_link_check_post","description":"Extract and classify internal vs external links, anchor text, and nofollow attributes from HTML.","tags":["v1"],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"total_links":{"type":"integer","title":"Total Links"},"internal_links_count":{"type":"integer","title":"Internal Links Count"},"external_links_count":{"type":"integer","title":"External Links Count"},"nofollow_links_count":{"type":"integer","title":"Nofollow Links Count"},"links":{"items":{"properties":{"href":{"type":"string","title":"Href"},"anchor_text":{"type":"string","title":"Anchor Text"},"is_internal":{"type":"boolean","title":"Is Internal"},"is_nofollow":{"type":"boolean","title":"Is Nofollow"}},"type":"object","required":["href","anchor_text","is_internal","is_nofollow"],"title":"LinkItem"},"type":"array","title":"Links"}},"type":"object","required":["total_links","internal_links_count","external_links_count","nofollow_links_count","links"],"title":"LinkCheckResponse"},"examples":{"Example_1":{"value":{"total_links":0,"internal_links_count":0,"external_links_count":0,"nofollow_links_count":0,"links":[{"href":"","anchor_text":"","is_internal":true,"is_nofollow":true}]}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"examples":{"Example_1":{"value":{"detail":[{"loc":[],"msg":"","type":"","ctx":{}}]}}}}}}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"},"requestBody":{"content":{"application/json":{"schema":{"properties":{"html_content":{"type":"string","title":"Html Content"},"base_domain":{"type":"string","title":"Base Domain","default":"example.com"}},"type":"object","required":["html_content"],"title":"LinkCheckRequest"},"example":{"html_content":"<html><body><a href='/about'>About Us</a><a href='https://google.com' rel='nofollow'>Google</a></body></html>","base_domain":"example.com"}}}}}},"/v1/seo/slugify":{"post":{"operationId":"post_v1_seo_slugify","summary":"generate_slug_v1_seo_slugify_post","description":"Generate clean, SEO-friendly, stop-word-free URL slug.","tags":["v1"],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"original_text":{"type":"string","title":"Original Text"},"slug":{"type":"string","title":"Slug"},"word_count":{"type":"integer","title":"Word Count"}},"type":"object","required":["original_text","slug","word_count"],"title":"SlugifyResponse"},"examples":{"Example_1":{"value":{"original_text":"","slug":"","word_count":0}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"examples":{"Example_1":{"value":{"detail":[{"loc":[],"msg":"","type":"","ctx":{}}]}}}}}}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"},"requestBody":{"content":{"application/json":{"schema":{"properties":{"text":{"type":"string","title":"Text"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","default":"en"},"remove_stopwords":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Remove Stopwords","default":true}},"type":"object","required":["text"],"title":"SlugifyRequest"},"example":{"text":"10 Best AI & Python Tools for Translators in 2026!","language":{},"remove_stopwords":{}}}}}}},"/v1/seo/robots-generator":{"post":{"operationId":"post_v1_seo_robots_generator","summary":"generate_robots_v1_seo_robots_generator_post","description":"Generate clean robots.txt directives and Sitemap declaration.","tags":["v1"],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"robots_txt":{"type":"string","title":"Robots Txt"},"rules_count":{"type":"integer","title":"Rules Count"}},"type":"object","required":["robots_txt","rules_count"],"title":"RobotsGeneratorResponse"},"examples":{"Example_1":{"value":{"robots_txt":"","rules_count":0}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"examples":{"Example_1":{"value":{"detail":[{"loc":[],"msg":"","type":"","ctx":{}}]}}}}}}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"},"requestBody":{"content":{"application/json":{"schema":{"properties":{"site_url":{"type":"string","title":"Site Url","default":"https://example.com"},"disallow_paths":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Disallow Paths","default":["/admin/","/private/"]},"allow_paths":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allow Paths","default":["/"]},"sitemap_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sitemap Url","default":"https://example.com/sitemap.xml"},"user_agents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"User Agents","default":["*"]}},"type":"object","title":"RobotsGeneratorRequest"},"example":{"site_url":"https://example.com","disallow_paths":{},"allow_paths":{},"sitemap_url":{},"user_agents":{}}}}}}},"/v1/seo/lsi-keywords":{"post":{"operationId":"post_v1_seo_lsi_keywords","summary":"extract_lsi_keywords_v1_seo_lsi_keywords_post","description":"Extract N-gram phrases (2-word and 3-word co-occurrences) for LSI Keyword Analysis.","tags":["v1"],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"total_phrases_extracted":{"type":"integer","title":"Total Phrases Extracted"},"top_ngrams":{"items":{"properties":{"phrase":{"type":"string","title":"Phrase"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["phrase","count"],"title":"NgramItem"},"type":"array","title":"Top Ngrams"}},"type":"object","required":["total_phrases_extracted","top_ngrams"],"title":"LsiKeywordsResponse"},"examples":{"Example_1":{"value":{"total_phrases_extracted":0,"top_ngrams":[{"phrase":"","count":0}]}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"examples":{"Example_1":{"value":{"detail":[{"loc":[],"msg":"","type":"","ctx":{}}]}}}}}}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"},"requestBody":{"content":{"application/json":{"schema":{"properties":{"text":{"type":"string","title":"Text"},"min_words":{"anyOf":[{"type":"integer","maximum":3,"minimum":2},{"type":"null"}],"title":"Min Words","default":2},"max_words":{"anyOf":[{"type":"integer","maximum":4,"minimum":2},{"type":"null"}],"title":"Max Words","default":3},"top_n":{"anyOf":[{"type":"integer","maximum":50,"minimum":1},{"type":"null"}],"title":"Top N","default":10}},"type":"object","required":["text"],"title":"LsiKeywordsRequest"},"example":{"text":"FastAPI is great for building high performance web APIs. High performance web applications use FastAPI.","min_words":{},"max_words":{},"top_n":{}}}}}}},"/v1/seo/content-audit":{"post":{"operationId":"post_v1_seo_content_audit","summary":"audit_content_v1_seo_content_audit_post","description":"Perform a heuristic Helpful Content audit (word count, paragraph structure, readability score).","tags":["v1"],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"word_count":{"type":"integer","title":"Word Count"},"paragraph_count":{"type":"integer","title":"Paragraph Count"},"avg_words_per_sentence":{"type":"number","title":"Avg Words Per Sentence"},"helpful_content_score":{"type":"integer","title":"Helpful Content Score"},"thin_content_warning":{"type":"boolean","title":"Thin Content Warning"},"recommendations":{"items":{"type":"string"},"type":"array","title":"Recommendations"}},"type":"object","required":["word_count","paragraph_count","avg_words_per_sentence","helpful_content_score","thin_content_warning","recommendations"],"title":"ContentAuditResponse"},"examples":{"Example_1":{"value":{"word_count":0,"paragraph_count":0,"avg_words_per_sentence":0,"helpful_content_score":0,"thin_content_warning":true,"recommendations":[]}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"examples":{"Example_1":{"value":{"detail":[{"loc":[],"msg":"","type":"","ctx":{}}]}}}}}}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"},"requestBody":{"content":{"application/json":{"schema":{"properties":{"text_or_html":{"type":"string","title":"Text Or Html"}},"type":"object","required":["text_or_html"],"title":"ContentAuditRequest"},"example":{"text_or_html":"<h1>Title</h1><p>First long paragraph about SEO optimization and best practices for developers.</p><p>Second paragraph providing actionable tips.</p>"}}}}}},"/v1/seo/extract-keywords":{"post":{"operationId":"post_v1_seo_extract_keywords","summary":"extract_keywords_v1_seo_extract_keywords_post","description":"Extract top keywords and calculate keyword density percentage.","tags":["v1"],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"total_words":{"type":"integer","title":"Total Words"},"top_keywords":{"items":{"properties":{"keyword":{"type":"string","title":"Keyword"},"count":{"type":"integer","title":"Count"},"density_percent":{"type":"number","title":"Density Percent"}},"type":"object","required":["keyword","count","density_percent"],"title":"KeywordItem"},"type":"array","title":"Top Keywords"}},"type":"object","required":["total_words","top_keywords"],"title":"KeywordResponse"},"examples":{"Example_1":{"value":{"total_words":0,"top_keywords":[{"keyword":"","count":0,"density_percent":0}]}}}}}},"402":{"description":"Payment required — pay per request with x402/mpp (offer in the PAYMENT-REQUIRED / WWW-Authenticate headers and the JSON body), or send a JoJ API key."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"examples":{"Example_1":{"value":{"detail":[{"loc":[],"msg":"","type":"","ctx":{}}]}}}}}}},"x-payment-info":{"protocols":["x402","mpp"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"intent":"charge"},"requestBody":{"content":{"application/json":{"schema":{"properties":{"text":{"type":"string","title":"Text"},"top_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top N","default":5}},"type":"object","required":["text"],"title":"KeywordRequest"},"example":{"text":"FastAPI is a modern, fast Web framework for Python. Python is great for AI.","top_n":{}}}}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-JoJAPI-Key","description":"Your JoJ API key."}}}}