Contents
List Addresses - Plugixa Permalink Manager
GET /plugixa-permalink-manager/v1/uris
List the items of one content type, one page at a time, each with its custom address, its WordPress address and its update mode.
Needs the plugixa_permalink_manager_view capability.
Note. This lists content, not stored addresses: items with no custom address are included, with
uriset tonull.typedefaults toposteven whenkindisterm, so always sendtypewithkind=term. A content type the plugin does not manage returns an empty list rather than an error.
Request
GET https://your-site.example/wp-json/plugixa-permalink-manager/v1/uris?kind=post&type=product&filter=custom
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
kind |
string |
post |
post or term |
type |
string |
post |
The post type or taxonomy |
filter |
string |
all |
all, custom (a custom address is in force) or native (the item uses its WordPress address) |
status |
string |
Posts only: one of publish, private, draft, pending or future. Without it, all five are listed |
|
search |
string |
Matches the title, the slug or the custom address. A number also matches the id | |
orderby |
string |
date for posts, title for terms |
title, date, uri or id. Terms have no date and sort by name instead |
order |
string |
desc for posts, asc for terms |
asc or desc |
page |
integer |
1 |
Page to return, from 1 |
per_page |
integer |
50 |
Rows per page, 1 to 100 |
See lists and pagination. Posts are listed only when the caller may read them in WordPress.
Responses
200 OK. data is one page of items.
{
"success": true,
"data": [
{
"kind": "post",
"id": 36,
"key": "post:36",
"type": "product",
"title": "Skyline 2 Tent",
"slug": "skyline-2",
"status": "publish",
"uri": "shop/tents/skyline-2",
"native_uri": "product/skyline-2",
"is_custom": true,
"mode": -1,
"source": "manual",
"lock": null,
"permalink": "https://your-site.example/shop/tents/skyline-2/",
"edit_url": "https://your-site.example/wp-admin/post.php?post=36&action=edit",
"redirects_count": 1,
"modified_at": "2026-11-12 09:30:00"
}
],
"meta": {
"total": 18,
"page": 1,
"per_page": 50,
"pages": 1
}
}
| Field | Type | Meaning |
|---|---|---|
data[] |
object |
One item, in the shape of Get Address |
meta.total |
integer |
Items matching the filters, before paging |
meta.page |
integer |
The page returned |
meta.per_page |
integer |
Rows per page |
meta.pages |
integer |
Number of pages |
Errors
| Status | Code | When |
|---|---|---|
400 |
rest_invalid_param |
kind, filter, orderby or order is not one of its values, or per_page is above 100. |
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-permalink-manager/v1/uris?kind=post&type=product&filter=custom" \
-u "admin:$WP_APP_PASSWORD"
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-permalink-manager/v1/uris?kind=post&type=product&filter=custom');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => 'admin:' . getenv('WP_APP_PASSWORD'),
]);
$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/uris?kind=post&type=product&filter=custom', {
headers: { 'Authorization': auth },
});
const { data, meta } = await response.json();
Quick Links
Share