Skip to main content
All developer endpoints are available since v2.9.0.

GET /developer/hooks

Returns all registered WordPress hooks and their callbacks. Results are limited to 2000 entries.
curl -X GET "https://example.com/wp-json/wp-manager-pro/v1/developer/hooks?search=wp_head" \
  -H "X-WP-Nonce: YOUR_NONCE"

Parameters

Filter results to hooks or callbacks whose name or source file contains this string.
file
string
Filter results to callbacks defined in files whose path contains this string.

Response

hooks
array
total
integer
Number of entries returned (capped at 2000).

GET /developer/rest-routes

Lists all registered WordPress REST API routes with their methods and namespace.
curl -X GET https://example.com/wp-json/wp-manager-pro/v1/developer/rest-routes \
  -H "X-WP-Nonce: YOUR_NONCE"

Response

routes
array
total
integer
Total number of routes.

POST /developer/rest-request

Proxies an authenticated internal REST API request and returns the response along with timing information. Useful for testing REST endpoints from the browser.
curl -X POST https://example.com/wp-json/wp-manager-pro/v1/developer/rest-request \
  -H "X-WP-Nonce: YOUR_NONCE" \
  -H "Content-Type: application/json" \
  -d '{"method": "GET", "path": "/wp/v2/posts", "body": {"per_page": 5}}'

Parameters

method
string
HTTP method: GET, POST, PUT, PATCH, or DELETE. Defaults to GET.
path
string
required
The REST route path (e.g. /wp/v2/posts).
body
object
Request parameters to pass to the internal request.
headers
object
Additional headers to attach to the internal request.

Response

status
integer
HTTP status code returned by the proxied request.
headers
object
Response headers from the proxied request.
body
any
Parsed response body.
duration_ms
number
Round-trip execution time in milliseconds.

POST /developer/generate

Generates dummy posts, pages, users, or WooCommerce products tagged with _wmp_dummy_data for easy cleanup.
curl -X POST https://example.com/wp-json/wp-manager-pro/v1/developer/generate \
  -H "X-WP-Nonce: YOUR_NONCE" \
  -H "Content-Type: application/json" \
  -d '{"type": "post", "count": 10}'

Parameters

type
string
required
Type of content to generate: post, page, user, or product (requires WooCommerce).
count
integer
Number of items to generate. Maximum 50. Defaults to 1.

Response

generated
array
Array of IDs of the created items.
count
integer
Number of items successfully created.
errors
array
Array of error messages for items that failed to generate.

GET /developer/dummy-stats

Returns counts of dummy-tagged posts and users currently in the database.
curl -X GET https://example.com/wp-json/wp-manager-pro/v1/developer/dummy-stats \
  -H "X-WP-Nonce: YOUR_NONCE"

Response

posts
integer
Number of posts/pages/products tagged as dummy data.
users
integer
Number of users tagged as dummy data.
total
integer
Total dummy items across posts and users.
woo_active
boolean
Whether WooCommerce is active.

DELETE /developer/dummy

Deletes all posts, pages, and users tagged with _wmp_dummy_data.
This permanently deletes all dummy-tagged content and users. The operation cannot be undone.
curl -X DELETE https://example.com/wp-json/wp-manager-pro/v1/developer/dummy \
  -H "X-WP-Nonce: YOUR_NONCE"

Response

deleted_posts
integer
Number of posts deleted.
deleted_users
integer
Number of users deleted.
total
integer
Total items deleted.

GET /developer/rewrite-test

Tests a URL against the site’s registered rewrite rules and returns which rule matched and what query variables were resolved.
curl -X GET "https://example.com/wp-json/wp-manager-pro/v1/developer/rewrite-test?url=https://example.com/blog/my-post/" \
  -H "X-WP-Nonce: YOUR_NONCE"

Parameters

url
string
The URL to test. The site URL prefix is stripped automatically.
rules_only
boolean
If true, returns only the full list of rewrite rules without testing a URL.

Response

url
string
The normalised URL path that was tested.
matched
boolean
true if a rewrite rule matched.
rule
string
The matching regex pattern.
redirect
string
The raw redirect string from the matched rule.
query_vars
object
Resolved WordPress query variables.
matches
array
Regex capture groups from the URL match.
all_rules
array
All registered rewrite rules as {pattern, redirect} objects.

GET /developer/cache-keys

Browses object cache keys. Supports Redis (via SCAN) and the default WordPress in-memory cache.
curl -X GET "https://example.com/wp-json/wp-manager-pro/v1/developer/cache-keys?prefix=wp_" \
  -H "X-WP-Nonce: YOUR_NONCE"

Parameters

prefix
string
Filter keys to those containing this prefix string.

Response

backend
string
The detected cache backend: redis, wp, or none.
keys
array
total
integer
Total keys found (up to 500).

GET /developer/cache-value

Retrieves the value of a specific cache key.
curl -X GET "https://example.com/wp-json/wp-manager-pro/v1/developer/cache-value?key=posts:1" \
  -H "X-WP-Nonce: YOUR_NONCE"

Parameters

key
string
required
The cache key to retrieve. For the default WP cache, use group:key format.

Response

key
string
The requested cache key.
type
string
Value type.
value
any
The cached value. Type depends on the stored data.

DELETE /developer/cache-key

Deletes a specific cache key.
curl -X DELETE https://example.com/wp-json/wp-manager-pro/v1/developer/cache-key \
  -H "X-WP-Nonce: YOUR_NONCE" \
  -H "Content-Type: application/json" \
  -d '{"key": "posts:1"}'

Parameters

key
string
required
The cache key to delete. For the default WP cache, use group:key format.

Response

success
boolean
true if the key was found and deleted.

GET /developer/prefix-info

Returns the current database table prefix and a list of all matching tables with their row counts.
curl -X GET https://example.com/wp-json/wp-manager-pro/v1/developer/prefix-info \
  -H "X-WP-Nonce: YOUR_NONCE"

Response

current_prefix
string
The current $table_prefix value (e.g. wp_).
tables
array
count
integer
Number of tables using the current prefix.

POST /developer/change-prefix

Renames all database tables from the current prefix to a new one, updates option names in the options table, updates meta keys in the usermeta table, and rewrites the $table_prefix line in wp-config.php.
Changing the database prefix is a destructive and non-reversible operation. Always create a full backup with POST /backup/create before proceeding. Use dry_run: true to preview the changes first.
curl -X POST https://example.com/wp-json/wp-manager-pro/v1/developer/change-prefix \
  -H "X-WP-Nonce: YOUR_NONCE" \
  -H "Content-Type: application/json" \
  -d '{"new_prefix": "mysite_", "dry_run": true}'

Parameters

new_prefix
string
required
The new table prefix. May contain letters, numbers, and underscores. A trailing underscore is appended automatically if omitted.
dry_run
boolean
If true, returns a preview of the rename operations without making any changes. Defaults to false.

Response

success
boolean
true if all tables were renamed without errors.
old_prefix
string
The previous prefix.
new_prefix
string
The new prefix.
tables_renamed
integer
Number of tables renamed.
renamed
array
Array of {old, new} rename pairs.
errors
array
Error messages for any tables that failed to rename.
config_updated
boolean
Whether wp-config.php was updated successfully.
dry_run
boolean
Present and true when a dry run was performed. The preview array contains the proposed renames.

Build docs developers (and LLMs) love