This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.



WordPress plugin to log REST API requests and responses (for v2 of the API).


  • WordPress admin page to view and search log entries
  • API endpoint to access log entries via JSON
  • Filters to customize logging
  • Custom endpoint logging
  • ElasticPress logging

Find us on GitHub!


  • Better search capabilities for log entries via the REST API endpoint


  • Sample list of log entries
  • Sample log entry details


  1. Upload the wp-rest-api-log directory to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Go to Settings -> REST API Log to enable or disable logging
  4. Go to Tools -> REST API Log to start viewing log entries


How do I use ElasticPress logging?

ElasticPress is a plugin than interfaces WordPress to the ElasticSearch search service. Because ElasticSearch has its own REST API for indexing and searching data, it was a natural fit to extend logging support via this REST API Logging plugin.

You can go into Settings > ElasticPress to enable logging for requests & responses. You can also disable REST API logging if you only need ElasticPress logging.


جون 22, 2020
This was a legacy plugin for a client's website... I would not recommend it! It bloated our disk usage and one of the tables ended up with 22 million rows. Here are the queries we used to clean things up. -- Run first delete m from wp_posts p join wp_postmeta m on p.ID = m.post_id where post_type = 'wp-rest-api-log' -- Run second delete from wp_posts where post_type = 'wp-rest-api-log' -- Run third DELETE wp_term_relationships FROM wp_term_relationships LEFT JOIN wp_posts ON wp_term_relationships.object_id = wp_posts.ID WHERE wp_posts.ID is NULL;
مې 13, 2020
This thing slowed my database executing countless queries for nothing. After disabling i had to restart the mysql process. Don't install this.
دسمبر 10, 2019
Don't use this plugin on a live site. Don't trust it to delete old entries (because it won't do it). It can clog up the wp_posts and wp_postmeta tables really quickly and has a poor way of handling large amounts of entries. If you have many entries, don't hit the "purge all entries", it will break your site. Worst plugin ever created.
مې 9, 2019
If you want/need to use that plugin read that first: - NOT recommended for live sites! - it doesn't create it's own database table, wp_post will be taken and will grow faster slowing down your db - the first time you use it: set it do 3 days reset, to be at least safe - check your log quantity, if it grows up to 10k or more stop using it or lower the reset time, otherwise uninstalling/cleaning the databse will be a mess and your db will slow down terribly Apart from that it does the job and very well, precise and usefull for your staging enviroment. My two cents: it's a suggested plugin that need to be fine tuned with: a proprietary table and a way to relieve the informations stored.
جنوري 16, 2019
This plugin helped me debug some problems with REST requests on my site - it is really useful in that it logs everything, including the request, the request headers, the response body and the response headers. It is a lot of data though, especially if you are getting thousands of requests a day and need to run it for several days to debug, so beware. Make sure all that is deleted once you remove the plugin. Unfortunately, deleting the plugin does NOT delete the log data (which is kept in your wp_posts table) - that is quite annoying, please add a 'delete log' option! One minor bug, but an annoying one for debugging - any TABS in the response (e.g. I have JSON-encoded HTML in my response), i.e. '\t' are rendered as 't', so you get this: - I am sure that could be fixed easily. Actually, I don't think it should be stripping the slashes like that, should it?
نوومبر 12, 2018
the way that this completely clogs up the wp_posts & wp_postmeta tables with log entries is terrible and also completely screws up a site. this plugin alone added 1.5gb of bloat to my database and my api isn't even *that* busy. do not use.
Read all 17 reviews

Contributors & Developers

“REST API Log” is open source software. The following people have contributed to this plugin.


“REST API Log” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “REST API Log” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


v1.6.7 March 31, 2019

  • Added admin notice about running the plugin on a production server
  • Set the default purge days to 7
  • Updated clipboard.js version

v1.6.6 November 9, 2018

  • Moved taxonomy registration to a separate file, made taxonomies not public to prevent them from automatically showing in Yoast SEO sitemaps
  • Updated highlight.js version
  • Updated minimum WP version to 4.7
  • Updated unit test framework

v1.6.5 July 26, 2017

  • Fixed some escaping issues in admin and new-line characters when saving to database (props davidanderson)
  • Updated highlight.js and clipboard.js versions

v1.6.4 May 26, 2017

  • Fixed an issue with the URL in the settings tabs (props davidanderson)

v1.6.3 March 28, 2017

  • Updated logging for multidimensional query parameters (props mnelson4)

v1.6.2 March 10, 2017

  • Fixed bug in HTTPS download URLs.
  • Fixed bug in download URL permissions.

v1.6.0 March 9, 2017

  • Added ability to download request and response fields as JSON files, as well as copy to clipboard.
  • Added button on settings page to Purge All Log Entries.
  • Tweaked some of the ElasticPress routes that skip logging.

v1.5.2 February 21, 2017

  • Fixed a bug with ElasticPress logging getting stuck in a loop regarding the _nodes/plugins URL.

v1.5.1 February 15, 2017

  • Removed hidden custom taxonomies from the navigation menu admin (props phh for the pull request).

v1.5.0 February 2, 2017

  • Added logging for the user making the request (props drsdre for the pull request).
  • Added Settings and Log links from the Plugins page.
  • Updated term fetching when viewing log entries for fewer database queries and better performance.
  • Updated highlight.js to 9.9.0

v1.4.0 January 23, 2017

  • Added the ability to filter routes for logging, either include or exclude specific routes.

v1.3.0 December 5, 2016

  • Added support for logging HTTP_X_FORWARDED_FOR, useful for servers behind a proxy or load balancer.
  • Changed plugin name to REST API Log
  • Changed the wp-rest-api-log post type ‘public’ setting to false to prevent it from showing up in searches.
  • Updated Highlight JS version to 9.7.0
  • Updated the internal process for granting administrator role access to the custom post type
  • Bug fix: Header values with colons were not being stored correctly.
  • Bug fix: Use proper HTML escaping when viewing log entries.

v1.2.0 July 6, 2016

  • Added support for ElasticPress logging
  • Fixed undefined constant error on Help page (props vinigarcia87)

v1.1.1 May 15, 2016

  • Fixed error during activation (props pavelevap)

v1.1.0 April 28, 2016

  • Added cron job to cleanup old log entries
  • Added setting to exclude the WP core /oembed API endpoint
  • Don’t diplay log entries in the Insert Link modal

v1.0.0-beta2 April 10, 2016

  • Switched from custom tables to built-in WordPress tables using a custom post type (wp-rest-api-log)
  • Method, status, and source are now tracked using taxonomies
  • Viewing log entries now uses the standard WordPress admin UI, includes filters for method, status, and source
  • Added admin settings with the option to enable or disable logging
  • Added WP-CLI support: wp rest-api-log
  • Added .pot file to support translations

NOTE: if you are upgrading from the previous version, you can run the “wp rest-api-log migrate” WP-CLI command to migrate your existing logs into the new custom post type

v1.0.0-beta1 July 9, 2015

  • Initial release