TL;DR: Common WordPress REST API errors include 401 (authentication failure), 403 (permissions blocked), 404 (endpoint missing), and 405 (incorrect HTTP method). Check yoursite.com/wp-json/ to ensure the API is accessible, then use this guide’s decision tree to find and fix the issue.
Last Updated: July 2026. Tested on WordPress 6.7 with PHP 8.3.
The WordPress REST API, fully integrated in version 4.7, supports features like the Gutenberg editor and third-party integrations. Failures can disrupt editors, mobile app syncs, and payment webhooks. This guide provides a decision tree for diagnosing and fixing REST API errors in 2026.
First, go to https://yoursite.com/wp-json/. A JSON response confirms API functionality. If you see a 404, blank page, or HTML error, the API is disabled or blocked by the server. This is the first step in the decision tree below.

REST API Decision Tree: Where to Start in 2026
Try GigaPress AI Free →
Use this decision tree before attempting any individual fix. It will route you to the correct section of this guide in under two minutes.
| What you see at /wp-json/ | Likely cause | Go to section |
|---|---|---|
| Valid JSON with routes listed | API is enabled; error is request-specific | Check your specific HTTP error code below |
| 404 Not Found | Permalinks not flushed or REST API disabled | 404 section |
| HTML page (your homepage) | Server not passing REST routes to WordPress | 404 section, server config subsection |
| 401 or 403 JSON error | Authentication or permission failure | 401 section or 403 section |
| 500 Internal Server Error | PHP fatal error, plugin conflict, memory limit | Plugin conflict section |
| Firewall block / no response | WAF or security plugin blocking REST routes | Firewall section |
Fixing WordPress REST API 404 Errors: Disabled or Missing Endpoints
A 404 on the REST API almost always has one of three causes: permalinks have not been flushed since a recent change, the REST API has been explicitly disabled by a plugin or filter, or your server’s URL rewriting configuration is not passing pretty URLs to WordPress.
Step 1: Flush Permalinks
This is the fix for 80% of fresh 404s. Go to Settings, then Perm