Disable REST API


The most comprehensive plugin for controlling access to the WordPress REST API!

Works as a „set it and forget it“ install. Just upload and activate, and the entire REST API will be inaccessible to your site visitors. Or if you have a plugin or theme installed which needs some of its endpoints to be accessible to site visitors, you can do that too. Go to the Settings page and you can quickly whitelist individual endpoints – or entire branches of endpoints – registered with the REST API.

The engine for the API has existed in WordPress since v4.4 and additional functionality and endpoints are a continual project. While this is very exciting news for many reasons, it is also not functionality that every site admin wants enabled on their website if not necessary.

As of WordPress 4.7, the filters provided for disabling the REST API were removed. To compensate, this plugin will forcibly return an authentication error to any API requests from sources who are not logged into your website, which will effectively still prevent unauthorized requests from using the REST API to get information from your website.

For WordPress versions 4.4, 4.5 and 4.6, this plugin makes use of the rest_enabled filter provided by the API to disable the API functionality. However, it is strongly recommended that all site owners run the most recent version of WordPress except where absolutely necessary.


  • Der JSON wird von einer Website zurückgegeben, deren API über Filter deaktiviert ist (WP-Versionen 4.4, 4.5, 4.6).
  • Der JSON wurde von einer Website zurückgegeben, deren API über Authentifizierungsmethoden deaktiviert wurde (WP-Versionen 4.7+).
  • The Settings page lets you selectively whitelist endpoints registered with the REST API.


  1. Lade das Verzeichnis disable-json-api per FTP in das Verzeichnis /wp-content/plugins/ hoch.
  2. Alternatively, upload the disable-json-api_v#.#.zip file to the ‚Plugins->Add New‘ page in your WordPress admin area
  3. Aktiviere das Plugin in WordPress über das Menü ‚Plugins‘


Wie weiß ich, dass das Plugin funktioniert?

While logged into WordPress as any user, the REST API will function as intended. Because of this, you must use a new browser – or Chrome’s incognito mode – to test your website with a clean session. Go to yourdomain.com/wp-json/ (or yourdomain.com/?rest_route=/ if you have pretty permalinks disabled) while NOT LOGGED IN to test the results. You will see an authentication error returned if the plugin is active. „DRA: Only authenticated users can access the REST API.“

Deaktiviert dieses Plugin alle installierten REST-APIs?

This plugin is ONLY meant to disable endpoints accessible via the default REST API that is part of WordPress itself. If a plugin or theme chooses to register its namespace with the core REST API, its endpoints will – by default – by disabled so long as this plugin is active. Namespaces and routes may be whitelisted via this plugin’s Settings page.


20. April 2020
The plugin uses a is_user_logged_in() check to grant access to disabled REST API endpoints. I run a membership site for one year and just realized it now, that any logged in visitor STILL HAVE ACCESS to any disabled REST API endpoints. This should be very explicit, and there should be a setting in the plugin settings page to set the minimum role for the user to have access to the disabled endpoints.
14. Dezember 2019
A necessary plugin if you have a site for logged-in users. Thanks for this plug-in!
Lies alle 22 Rezensionen

Mitwirkende & Entwickler

„Disable REST API“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:


„Disable REST API“ wurde in 6 Sprachen übersetzt. Danke an die Übersetzerinnen und Übersetzer für ihre Mitwirkung.

Übersetze „Disable REST API“ in deine Sprache.

Interessiert an der Entwicklung?

Durchstöbere den Code, sieh dir das SVN Repository an oder abonniere das Entwicklungsprotokoll per RSS.



  • Tested up to WP v5.5


  • Tested up to WP v5.3
  • Added enforcement for WordPress and PHP minimum version requirements
  • Fixed minor bug to prevent unintended empty routes
  • Minor text updates and adding textdomain to translation functions that didn’t have them


  • load_plugin_textdomain() für i18n hinzugefügt


  • Problem behoben, das unbeabsichtigtes Entsperren von Endpunkten verursachte, wenn ein anderer WP_Error existierte, bevor dieses Plugin seine Arbeit verrichtete.


  • Fehler behoben beim „echo der Text-URL“ zur primären Plugin-Seite im WP-Dashboard


  • Getestet für WP v4.8
  • Getestet mit PHP 5.3+
  • Bildschirm für Einstellungen hinzugefügt
  • Website-Administratoren können nun Routen auf der Whitelist auswählen, auf die sie unauthentifizierten Zugriff gewähren möchten.
  • dra_allow_rest_api-Filter zum is_logged_in()-Check hinzugefügt, so dass Entwickler granularer mit Berechtigungen arbeiten können.
  • Respekt vor @tangrufus für all die Hilfe, die in dieser Version geleistet wurde.


  • Getestet mit WP v4.7
  • Neue Funktionen zur Erhöhung von Authentifizierungsfehlern in 4.7+ für nicht angemeldete Benutzer hinzugefügt.


  • Getestet für WP v4.5
  • Entfernen von Aktionen, die REST-Informationen an den Header veröffentlichen.


  • Aktualisiert, um die neuen Filter zu unterstützen, die in der 2.0 Beta-API erstellt wurden.


  • Erste Version