{"openapi":"3.1.0","info":{"title":"ProxyAtlas public provider API","version":"1.0.0","description":"Provider-reported status snapshots, not live monitoring or independent speed benchmarks. Preserve source URLs, check times, service names and reporting periods. Missing status is unknown, not downtime. Directory order is not a performance ranking."},"servers":[{"url":"https://proxy-atlas.com"}],"security":[],"paths":{"/api/providers":{"get":{"operationId":"searchProviders","summary":"Search public providers","parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":200}},{"name":"type","in":"query","schema":{"type":"string","enum":["all","Residential","Datacenter","ISP","Mobile"],"default":"all"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["count","total","notice","providers"],"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"notice":{"type":"string"},"providers":{"type":"array","items":{"$ref":"#/components/schemas/Provider"}}}}}}},"400":{"description":"Invalid request or unknown provider","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}},"/api/providers/{slug}":{"get":{"operationId":"getProvider","summary":"Read a public provider profile","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"notice":{"type":"string"},"provider":{"$ref":"#/components/schemas/Provider"}}}}}},"404":{"description":"Invalid request or unknown provider","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}},"/api/health":{"get":{"operationId":"getHealth","summary":"Public directory service health","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"ok"},"providerCount":{"type":"integer"}}}}}}}}}},"components":{"schemas":{"Provider":{"type":"object","required":["name","slug","url","types","description","profileUrl","status"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"types":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"headquarters":{"type":["string","null"]},"headquartersSource":{"type":["string","null"]},"linkedin":{"type":["string","null"]},"profileSource":{"type":"string","format":"uri"},"profileUrl":{"type":"string","format":"uri"},"status":{"type":["object","null"],"properties":{"sourceUrl":{"type":"string","format":"uri"},"checkedAt":{"type":"string","format":"date-time"},"status":{"type":"string"},"components":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"},"uptime":{"type":["number","null"]},"period":{"type":["string","null"]}}}}}}}}}}}