WordPress REST API Tester
Test `/wp-json/` REST API endpoint availability, measure JSON response latency, and audit public user enumeration vulnerability risks.
WordPress REST API Architecture & Endpoint Security
1. The WordPress REST API Specification
The WordPress REST API has shipped with WordPress core since version 4.7 (2016) and provides JSON endpoints for posts, pages, taxonomies, media, and users â documented in full at the official WordPress REST API Handbook. Some endpoints (like published post content) are intentionally public by design, since the API is meant to let JavaScript apps and external tools read site content the same way a visitor's browser would. Other endpoints (like user data) expose more than a typical visitor needs to see, which is where the security consideration in this tool comes in.
2. Mitigating User Enumeration Vulnerabilities
If this test reports the users endpoint as publicly exposed, the fix is to restrict unauthenticated access to it â via a `rest_endpoints` filter, a maintained security plugin, or your host's WAF rules â while leaving the endpoints your site actually needs public (post content, categories) untouched. It's worth checking after the fix that legitimate uses of the API (if you have a headless front end, a mobile app, or third-party integrations reading post data) still work correctly, since an overly broad REST API lockdown can break functionality you didn't intend to affect.
3. Auditing Login Endpoint Hardening
User enumeration is only useful to an attacker if there's somewhere to use the discovered usernames â and /wp-login.php is exactly that target. Once you've checked REST API exposure here, audit the login endpoint itself (rate limiting, XML-RPC exposure, security headers) with the WordPress Login Security Checker for the complete picture.
4. The REST API's Role in Static Edge Rendering
Nimbica reads WordPress content through the REST API at build time to generate static HTML â this is a legitimate, intended use of the same public post/page endpoints this tool checks, distinct from the sensitive user-data endpoint that needs restricting. Locking down `/wp-json/wp/v2/users` doesn't interfere with this kind of content-reading integration, since post and page data typically remain public by design.
5. How to Use This Test
- Run the scan against your site's URL and note both results: REST API availability and user enumeration exposure.
- If the users endpoint shows as exposed, apply a fix (filter, plugin, or WAF rule) and re-run the scan to confirm it's now returning a non-200 status or empty data to unauthenticated requests.
- If REST API is reported unavailable but you expected it to work (e.g. for a headless integration), check whether a security plugin has disabled more than intended.
- Use the response time figure as a rough indicator of backend health â a very slow REST response often correlates with the same server-side bottlenecks that slow down normal page loads.
6. Common Mistakes
- Disabling the entire REST API instead of just the users endpoint. A blanket lockdown can silently break plugins, mobile apps, or headless integrations that legitimately depend on other REST endpoints â restrict only what needs restricting.
- Assuming this one fix eliminates username enumeration entirely. WordPress has other enumeration vectors (author archive URLs like `?author=1`, XML-RPC, login error messages) that need separate attention â see the Login Security Checker.
- Treating a fast REST response as proof of good overall site security. Response time measures performance, not safety â a fast site can still have the users endpoint wide open.
7. Who Should Use This Tool
Site owners and developers doing a basic WordPress security self-check, agencies performing a hardening audit for a client, and anyone building or debugging a headless/REST-based integration who wants to confirm which endpoints are actually reachable from outside.
8. Limitations
This test checks exactly two endpoints (the API root and the users list) via passive, unauthenticated GET requests â it is not a comprehensive REST API security audit and does not test authentication, authorization on write operations, custom plugin-registered endpoints, or rate limiting. A clean result here means these two specific checks passed, not that the site's REST API surface is fully secure.
Build headless static sites with Nimbica REST API Integration
Transform dynamic PHP rendering bottlenecks into ultra-fast static HTML deployed across 300+ global edge locations.
Frequently Asked Questions
What is the WordPress REST API (/wp-json/)?
It's a built-in, always-present part of WordPress core (since version 4.7) that exposes site data â posts, pages, taxonomies, users, media â as JSON over HTTP, letting external applications, JavaScript front ends, and mobile apps read and (with authentication) write content programmatically instead of scraping HTML.
Why is the /wp-json/wp/v2/users endpoint specifically a security concern?
By default, that endpoint returns a list of registered users including their author "slug" â which for most WordPress installs is derived from or identical to their login username. An attacker who can enumerate valid usernames this way has effectively halved the work needed for a targeted brute-force or credential-stuffing attack against /wp-login.php, since they only need to guess the password, not the username.
How can I disable public user enumeration in the WordPress REST API?
A `rest_endpoints` filter in your theme's functions.php (or a small must-use plugin) can remove or gate the users endpoint behind authentication, or a maintained security plugin can do this without custom code. Note this only closes the REST API vector specifically â WordPress has other username-enumeration paths (like author archive URLs, ?author=1) that need separate hardening.
Does this tool try to exploit or access any vulnerability it finds?
No. This is a passive, read-only check â it makes two ordinary GET requests (to /wp-json/ and /wp-json/wp/v2/users) exactly as any browser or bot would, and reports what's publicly accessible. It never attempts authentication bypass, injection, or any action beyond observing an HTTP response that's already public to anyone on the internet.
Related Tools in This Cluster
WordPress Login Security Checker
Audit public login endpoint accessibility, security headers, and XML-RPC exposure.
WordPress Malware Quick Scanner
Scan any WordPress URL for public malware redirect signatures and hidden iframes.
WordPress Server Response Time Checker
Measure origin server response time (TTFB latency) and DNS resolution time.
