Contents
On this page

Run Health Check - Plugixa Permalink Manager

POST /plugixa-permalink-manager/v1/tools/consistency

Start a job that finds stored data pointing at nothing, and with dry_run: false deletes it.

Needs the plugixa_permalink_manager_tools capability.

Every tool is a preview unless you send "dry_run": false. Leaving dry_run out previews.

Starting it returns a job and changes nothing yet: call Tick Job until its status is no longer queued or running. See jobs.

Request

POST https://your-site.example/wp-json/plugixa-permalink-manager/v1/tools/consistency

Request body

Content type: application/json

Field Type Required Description
dry_run boolean No Defaults to true: list the problems, delete nothing.

The check always covers the whole site and takes no other parameter. It looks for, at most 5,000 of each:

Problem What is deleted
orphan_uri The address of a post or term that no longer exists
orphan_redirect An old address of an item that no longer exists
shadowed_redirect A redirect from an address that is now a live page, which can never fire

The problems are listed when the job is created and kept in its params. A fix deletes the row and writes no history, so it cannot be undone. See Health check.

{
  "dry_run": true
}

Responses

201 Created. data is the new job.

{
  "success": true,
  "data": {
    "id": 59,
    "type": "consistency",
    "status": "queued",
    "dry_run": true,
    "params": {
      "problems": [
        {
          "problem": "orphan_uri",
          "kind": "post",
          "id": 512,
          "detail": "journal/old-launch"
        }
      ]
    },
    "total": 1,
    "processed": 0,
    "changed": 0,
    "skipped": 0,
    "failed": 0,
    "samples": [],
    "undoable": false,
    "last_error": null,
    "created_at": "2026-11-12 09:30:00",
    "finished_at": null
  }
}
Field Type Meaning
data.id integer The job id: tick it with Tick Job
data.type string What the job does
data.status string queued, running, done, failed or cancelled
data.dry_run boolean true for a preview that changes nothing
data.params object The parameters as the job will use them, after cleaning
data.total integer Items the job expects to go through, counted when it was created
data.processed integer Items gone through so far
data.changed integer Items changed, or that a preview would change
data.skipped integer Items left alone
data.failed integer Items that could not be changed
data.samples array Up to 500 changed or failed items: status, kind, id, title, before, after and message
data.undoable boolean Whether Undo Job will accept it
data.last_error string|null Why a failed job stopped
data.created_at string UTC datetime
data.finished_at string|null UTC datetime, once it has stopped

Once ticked, each problem is a sample with status changed, title describing the problem, before the address and message the problem code.

Errors

Status Code When
500 plugixa_permalink_manager_db_error The job could not be created.

Plus the errors every endpoint can return.

Examples

curl -s -X POST "https://your-site.example/wp-json/plugixa-permalink-manager/v1/tools/consistency" \
  -u "admin:$WP_APP_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"dry_run":true}'
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-permalink-manager/v1/tools/consistency');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'admin:' . getenv('WP_APP_PASSWORD'),
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'dry_run' => true,
    ]),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const auth = 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`);
const response = await fetch('https://your-site.example/wp-json/plugixa-permalink-manager/v1/tools/consistency', {
  method: 'POST',
  headers: {
    'Authorization': auth,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ dry_run: true }),
});
const { data } = await response.json();

Quick Links

Share