{"openapi":"3.1.0","info":{"title":"Site2MD API","description":"Convert documentation websites to Markdown and store in GitHub","version":"1.0.0"},"paths":{"/api/v1/check-website":{"get":{"summary":"Single Page Html","operationId":"single_page_html_api_v1_check_website_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}},{"name":"repo_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Name"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/convert":{"post":{"summary":"Convert Docs","description":"Convert documentation to Markdown and create GitHub repository.","operationId":"convert_docs_api_v1_convert_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvertRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvertResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cancel/{repo_name}":{"post":{"summary":"Cancel Conversion","operationId":"cancel_conversion_api_v1_cancel__repo_name__post","parameters":[{"name":"repo_name","in":"path","required":true,"schema":{"type":"string","title":"Repo Name"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/processes":{"get":{"summary":"Get Process Monitor Status","description":"Get current browser process and memory statistics.\n\nReturns real-time information about:\n- Number of browser processes (Chromium, Playwright, etc.)\n- Memory usage by browsers\n- System memory statistics\n- Process memory growth","operationId":"get_process_monitor_status_api_v1_monitor_processes_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Root","description":"Root endpoint with API information.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","description":"Health check endpoint for Kubernetes probes.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"ConvertRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"URL of the website to convert"},"base_url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Base Url","description":"Base URL for crawling scope"},"repo_name":{"type":"string","title":"Repo Name","description":"Name of the GitHub repository"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Repository description"},"force":{"type":"boolean","title":"Force","description":"Force conversion even if one is in progress","default":false},"rerun":{"type":"boolean","title":"Rerun","description":"Rerun conversion even if one is in progress","default":false},"rate_limit":{"type":"boolean","title":"Rate Limit","description":"Apply rate limiting config to requests","default":false},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id","description":"Project ID for fetching settings from Redis"},"keep_query":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Keep Query","description":"Keep query parameters in URLs"},"keep_fragment":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Keep Fragment","description":"Keep URL fragments/anchors"},"sitemap_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sitemap Url","description":"Custom sitemap URL (if not at standard location)"},"use_browser_profile":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Browser Profile","description":"Use persistent browser profile for cookie consent"}},"type":"object","required":["url","base_url","repo_name"],"title":"ConvertRequest","description":"Request model for website conversion."},"ConvertResponse":{"properties":{"message":{"type":"string","title":"Message","description":"Status message"},"repo_name":{"type":"string","title":"Repo Name","description":"Name of the GitHub repository"},"github_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Github Url","description":"URL of the GitHub repository"}},"type":"object","required":["message","repo_name"],"title":"ConvertResponse","description":"Response model for conversion request."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}