Skip to main content
GrN.dk

Main navigation

  • Articles
  • Cases
  • Contact
  • Your Digital Project Manager
  • About Greg Nowak
  • Services
  • Portfolio
  • Container
    • Excel Freelancer
    • Kubuntu - tips and tricks
    • Linux Apache MySQL and PHP
    • News
    • Image Gallery
User account menu
  • Log in

Join my community / free newsletter — sign up here

Breadcrumb

  1. Home

Cloudflare Zombie API Endpoints: A Practical Cleanup Plan

Illustrated infographic summarizing: Cloudflare Zombie API Endpoints: A Practical Cleanup Plan

By Greg Nowak. Last updated 17 July 2026.

Cloudflare can now identify saved API endpoints that have received no traffic for 32 days. That is useful, but the cf-risk-zombie label is a prompt to investigate—not permission to delete a route.

A quiet endpoint might be obsolete. It might also support a monthly process, a seasonal service, a partner integration or an emergency workflow that nobody has exercised recently. The real job is to establish ownership, gather evidence and retire the route without surprising customers or delivery teams.

What the zombie label actually tells you

Cloudflare applies the label to saved endpoints after 32 days without traffic and reevaluates endpoints daily. It does not confirm that the origin route has been removed, that no client still expects it or that the endpoint is absent from deployed code.

Deleting an endpoint from Endpoint Management does not delete the application route. It removes the endpoint from Cloudflare's managed inventory and permanently removes its historical metrics. If the route remains live at the origin, it can still be reached unless another control catches it.

Signal Question to answer Safe next action
cf-risk-zombie Is the route genuinely unused or merely quiet? Check logs, owner, release history and client commitments.
Discovered but unmanaged Why is live traffic reaching an undocumented route? Save the endpoint, normalize its path and assign an owner.
In OpenAPI but absent from traffic Is the specification ahead of production or out of date? Test the deployed route and reconcile the specification.
Approved for retirement What will happen if an old client calls it? Deploy the retirement control, monitor and then remove it.
Unknown endpoint traffic Should unidentified routes be logged or blocked? Use a scoped fallthrough rule after validating the inventory.
A decision matrix for moving from a Cloudflare signal to an accountable cleanup decision.

Build an inventory you can defend

Use three views together: observed traffic, Endpoint Management and the OpenAPI specification. None is authoritative on its own.

API Discovery groups similar paths and hostnames, helping teams turn requests such as /customers/123 and /customers/456 into one logical endpoint. Discovery is an Enterprise feature and derives its results from traffic using machine-learning and session-identifier methods. A route missing from Discovery therefore needs investigation, not an automatic “dead” verdict. Cloudflare also warns that unsaved discovery results can disappear.

Endpoint Management is available on all plans and accepts endpoints from Discovery, schema uploads or manual entry. Use variables consistently—for example, /api/users/{var1} or {hostVar1}.example.com—so one logical route does not become dozens of misleading records.

Assign every questionable endpoint a service owner and a business owner. The service owner verifies code and infrastructure; the business owner confirms whether a customer, supplier or internal process still depends on it. For agency-managed systems, include the client-side owner rather than assuming the agency can authorize retirement.

Use a change-controlled retirement workflow

  1. Record the evidence. Add request counts, relevant log windows, schema status, known consumers and the Cloudflare label to a cleanup ticket. Do this before deleting the managed endpoint because its historical metrics cannot be restored.
  2. Search beyond Cloudflare. Check origin logs, gateway logs, repositories, integration documentation, scheduled jobs and support records. Pay particular attention to low-frequency machine-to-machine calls.
  3. Classify the route. Mark it as active, legacy but required, scheduled for deprecation or safe to remove. “Unknown” is a valid temporary state, but it needs an owner and review date.
  4. Plan client behaviour. Decide whether callers should receive a deprecation response, a replacement route, an explicit error or a temporary redirect. Authentication and authorization must remain enforced throughout the transition.
  5. Deploy and observe. Remove or disable the origin route through the normal release process, then monitor Cloudflare and origin events for unexpected callers.
  6. Clean the inventory last. Delete the Endpoint Management entry only after the application change is verified and the evidence has been retained elsewhere.

Turn the inventory into enforcement

Schema validation protects only operations added to Endpoint Management. Dashboard schema uploads can add endpoints automatically. When schemas are uploaded through the API or Terraform, Cloudflare says the endpoints must be parsed and added separately. Missing that step creates a dangerous gap between “schema uploaded” and “route protected.”

Cloudflare currently accepts OpenAPI 3.0 schemas, including 3.0 patch versions, but not OpenAPI 3.1. Validate the file before rollout and confirm that its host, method and path tuples match production.

Where your plan permits it, begin with schema violations logged and review real traffic before blocking. Cloudflare's current plan table is important here: Free, Pro and Business plans expose a Block-only rule action, while Enterprise plans can use Log or Block. On a block-only plan, test the schema carefully in a non-production environment or narrowly scope the first deployment.

Once the managed inventory is trustworthy, consider a fallthrough rule for requests that match no saved endpoint. Cloudflare exposes cf.api_gateway.fallthrough_detected for custom logic. Scope the rule to API hostnames or root paths so an API control does not accidentally catch ordinary website traffic.

Use scanning as a separate assurance step

Cloudflare's Vulnerability Scanner remains an open-beta, API-driven feature for Enterprise API Shield customers. Its current BOLA workflow needs an OpenAPI schema, a target environment and two credential sets: an owner and an attacker who should not access the owner's resources.

That can reveal authorization problems, but it is not a substitute for endpoint cleanup. Scans send real requests, so use controlled accounts, agree the target and timing, and make result review part of the release or security backlog.

Make zombie review routine

A one-off sweep will decay. Review new discoveries and risk labels on a regular schedule, keep OpenAPI changes tied to releases, and require an owner and retirement date for every legacy exception. The useful outcome is not an empty dashboard; it is an inventory that engineering, operations and the business can trust.

If your Cloudflare inventory has become a mixture of forgotten routes, incomplete schemas and uncertain ownership, Greg can help turn it into a controlled cleanup plan without treating live integrations as collateral damage.

Related on GrN.dk

  • How to Bulk Delete Cloudflare DNS Records Without Browser Console JavaScript
  • AI automations need a spend dashboard before the first runaway bill
  • Cloudflare AI Gateway Puts LLM Budgets in the Request Path

Need help with this kind of work?

Discuss your API cleanup with Greg Get in touch with Greg.

Sources

  • New Zombie API detection for API Shield
  • API Discovery
  • Endpoint Management
  • Schema validation
  • Configure Vulnerability Scanner via the API
Last modified
2026-07-28

Tags

  • Cloudflare
  • API Shield
  • API Security
  • Operations

Review Greg on Google

Greg Nowak Google Reviews

 

Illustrated infographic summarizing: EU OpenAI Residency Is a Migration Project, Not a Dashboard Toggle
EU OpenAI Residency Is a Migration Project, Not a Dashboard Toggle
2026-08-05

An EU-resident OpenAI API setup needs a new project, regional routing, dependency and state migration, compatibility testing, and clear governance evidence.

Illustrated infographic summarizing: AI Images Need a Chain of Custody, Not Just a Disclosure Label
AI Images Need a Chain of Custody, Not Just a Disclosure Label
2026-08-04

AI image labels are only the endpoint. Learn how to test C2PA credentials through editing, CMS, CDN and agency handoffs while preserving evidence.

Illustrated infographic summarizing: MCP Just Went Stateless: Audit the Integrations Behind Your AI Tools
MCP Just Went Stateless: Audit the Integrations Behind Your AI Tools
2026-08-03

The 28 July 2026 MCP release removes protocol sessions and changes discovery, tasks, caching, OAuth and tracing. A practical guide to auditing the move.

Illustrated infographic summarizing: SEO Trends for 2026: What Actually Changed Since 2024
SEO Trends for 2026: What Actually Changed Since 2024
2026-08-03

A practical guide to what changed in SEO between 2024 and 2026, from AI and multimodal search to Core Web Vitals, privacy and local visibility.

Illustrated infographic summarizing: INP and Green SEO Share a Backlog: Cut the Work Every Visit Repeats
INP and Green SEO Share a Backlog: Cut the Work Every Visit Repeats
2026-08-03

INP and sustainable web work often expose the same waste. Use field data, profiling, caching and performance budgets to build one practical backlog.

Illustrated infographic summarizing: AI crawler policy now has verbs: separate search, RAG, and training
AI crawler policy now has verbs: separate search, RAG, and training
2026-08-02

AI crawler rules now need separate decisions for search, RAG, and training, backed by practical testing across robots.txt, CDNs, WAFs, and CMS controls.

Illustrated infographic summarizing: WordPress Supports Old PHP; Your Production Server Shouldn’t
WordPress Supports Old PHP; Your Production Server Shouldn’t
2026-08-01

WordPress still runs on legacy PHP, but compatibility is not a security policy. Build and test your upgrade path before PHP 8.2 support ends.

Illustrated infographic summarizing: The AI-built tool your team relies on needs an owner
The AI-built tool your team relies on needs an owner
2026-07-31

AI-built internal tools can become business-critical before anyone owns them. Here is how to secure, review, monitor, and retire them without blocking useful work.

Illustrated infographic summarizing: Your AI model has an expiry date: build the migration lane now
Your AI model has an expiry date: build the migration lane now
2026-07-30

AI models retire on a schedule. Learn how to map dependencies, test replacements, release safely and preserve a working rollback route.

Illustrated infographic summarizing: Copilot Has Repo-Level Metrics Now. What Should Teams Measure?
Copilot Has Repo-Level Metrics Now. What Should Teams Measure?
2026-07-29

GitHub’s repo-level Copilot metrics show where AI is active, but not whether it adds value. This scorecard connects usage with delivery, quality, and cost.

More articles
RSS feed

Footer

  • All articles
  • Contact

GrN.dk web platforms, web optimization, data analysis, data handling and logistics.