{"openapi":"3.1.0","info":{"title":"CF Manager API","description":"Inventory + DNS management across many Cloudflare accounts. Agents authenticate with X-API-Key.","version":"1.0.0"},"paths":{"/api/login":{"post":{"summary":"Login","operationId":"login_api_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/logout":{"post":{"summary":"Logout","operationId":"logout_api_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/me":{"get":{"summary":"Me","operationId":"me_api_me_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stats":{"get":{"summary":"Stats","operationId":"stats_api_stats_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/zones":{"get":{"summary":"Zones","operationId":"zones_api_zones_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"","title":"Status"}},{"name":"problem_accounts","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Problem Accounts"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":50,"title":"Per Page"}},{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts":{"get":{"summary":"Accounts","operationId":"accounts_api_accounts_get","parameters":[{"name":"failed_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Failed Only"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":50,"title":"Per Page"}},{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sync":{"post":{"summary":"Do Sync","operationId":"do_sync_api_sync_post","parameters":[{"name":"concurrency","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":30,"title":"Concurrency"}},{"name":"failed_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Failed Only"}},{"name":"dns","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Dns"}},{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sync/status":{"get":{"summary":"Sync Status","operationId":"sync_status_api_sync_status_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/zones/{zone_pk}/dns":{"get":{"summary":"Dns List","operationId":"dns_list_api_zones__zone_pk__dns_get","parameters":[{"name":"zone_pk","in":"path","required":true,"schema":{"type":"integer","title":"Zone Pk"}},{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Dns Create","operationId":"dns_create_api_zones__zone_pk__dns_post","parameters":[{"name":"zone_pk","in":"path","required":true,"schema":{"type":"integer","title":"Zone Pk"}},{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DNSIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/zones/{zone_pk}/dns/{record_id}":{"patch":{"summary":"Dns Update","operationId":"dns_update_api_zones__zone_pk__dns__record_id__patch","parameters":[{"name":"zone_pk","in":"path","required":true,"schema":{"type":"integer","title":"Zone Pk"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DNSIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Dns Delete","operationId":"dns_delete_api_zones__zone_pk__dns__record_id__delete","parameters":[{"name":"zone_pk","in":"path","required":true,"schema":{"type":"integer","title":"Zone Pk"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/apikeys":{"get":{"summary":"Apikeys List","operationId":"apikeys_list_api_apikeys_get","parameters":[{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Apikeys Create","operationId":"apikeys_create_api_apikeys_post","parameters":[{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/apikeys/{key_id}/revoke":{"post":{"summary":"Apikeys Revoke","operationId":"apikeys_revoke_api_apikeys__key_id__revoke_post","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/apikeys/{key_id}":{"delete":{"summary":"Apikeys Delete","operationId":"apikeys_delete_api_apikeys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fleet/fronts":{"get":{"summary":"Fleet Fronts","description":"Join CF A/AAAA records -> origin IP -> pingvpn panel node health.\nSurfaces fronts that lead nowhere (drained / burned / orphan origins).","operationId":"fleet_fronts_api_fleet_fronts_get","parameters":[{"name":"klass","in":"query","required":false,"schema":{"type":"string","default":"","title":"Klass"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Refresh"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"default":100,"title":"Per Page"}},{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/overview":{"get":{"summary":"Overview","description":"Domain-level tri-counter: working / banned / unused, using the same\nnode+listen IP index as the fleet tab.","operationId":"overview_api_overview_get","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Refresh"}},{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"cfman_session","in":"cookie","required":false,"schema":{"type":"string","title":"Cfman Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/docs":{"get":{"summary":"Docs","operationId":"docs_docs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"APIKeyIn":{"properties":{"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"scope":{"type":"string","title":"Scope","default":"read"}},"type":"object","title":"APIKeyIn"},"DNSIn":{"properties":{"type":{"type":"string","title":"Type"},"name":{"type":"string","title":"Name"},"content":{"type":"string","title":"Content"},"ttl":{"type":"integer","title":"Ttl","default":1},"proxied":{"type":"boolean","title":"Proxied","default":false},"priority":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Priority"}},"type":"object","required":["type","name","content"],"title":"DNSIn"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LoginIn":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"type":"object","required":["username","password"],"title":"LoginIn"},"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"}}}}