Contents
On this page
List Locations - Plugixa Boat Rental
GET /pbr/v1/locations
List the marinas (locations) boats are booked at, one page at a time.
An API key PRO with Read only or Read and write access, or a signed-in user with the plugixa_boatrental_view capability.
Request
GET https://your-site.example/wp-json/pbr/v1/locations?status__in=active&orderby=name&order=asc
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
status__in |
string |
active, inactive, or both. |
|
default_billing_type__in |
string |
hour, half_day, day, week, seat. |
|
city__contains |
string |
Part of the city. Also __eq and the rest of the text operators. |
|
country__eq |
string |
The two-letter country code. Also __contains and the rest of the text operators. |
|
created_at__between |
string |
Created between two days, given on the site’s clock and compared in UTC. modified_at__... works the same way. |
Plus the list parameters every paged list accepts, and the filter operators. search matches the name, the city, the first address line and the postcode. orderby accepts id, name, status, city, display_order, created_at and modified_at.
Responses
200 OK. data is one page of locations.
{
"success": true,
"data": [
{
"id": 2,
"language_code": null,
"translation_group": null,
"name": "Lisbon Marina",
"slug": "lisbon-marina",
"description": "<p>Pontoon C, next to the fuel dock.</p>",
"status": "active",
"inventory_mode": "unit",
"default_billing_type": "hour",
"currency": "EUR",
"timezone": "Europe/Lisbon",
"address_line1": "Doca de Alcântara",
"address_line2": null,
"city": "Lisbon",
"state": null,
"postcode": "1350-352",
"country": "PT",
"latitude": 38.7032,
"longitude": -9.1636,
"phone": "+351 210 000 000",
"email": "lisbon@example.com",
"meeting_point": "Pontoon C",
"dock_instructions": "Ask for the skipper at the blue kiosk.",
"image_id": 150,
"gallery": null,
"settings": null,
"display_order": 0,
"created_by": 1,
"modified_by": 1,
"created_at": "2026-09-01 08:00:00",
"updated_at": null,
"modified_at": "2026-10-15 11:20:00",
"deleted_at": null,
"boat_count": 4,
"forms": [
{ "id": 1, "name": "Main booking form", "status": "active", "all_locations": true }
],
"image_url": "https://your-site.example/wp-content/uploads/2026/09/lisbon-marina-300x200.jpg"
}
],
"meta": { "total": 2, "pages": 1 }
}
| Field | Type | Meaning |
|---|---|---|
data[].id |
integer |
The marina’s id, as location_id elsewhere |
data[].status |
string |
active or inactive. The booking widget books only at active marinas |
data[].default_billing_type |
string |
The pricing unit for a boat that has none of its own |
data[].currency |
string|null |
The marina’s currency, else the site’s |
data[].timezone |
string|null |
The marina’s clock, which booking departures and returns are on |
data[].latitude, data[].longitude |
number|null |
Map position |
data[].meeting_point, data[].dock_instructions |
string|null |
What customers are told about where to go |
data[].settings |
object|null |
The marina’s own settings |
data[].boat_count |
integer |
How many different boats have units here |
data[].forms |
array |
The live booking forms that book here: id, name, status, and all_locations when the form books at every marina |
data[].image_url |
string|null |
The image’s medium-size URL |
Errors
| Status | Code | When |
|---|---|---|
400 |
plugixa_boatrental_unknown_filter |
A filter names a field locations cannot be filtered on. |
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/pbr/v1/locations?status__in=active&orderby=name&order=asc" \
-H "Authorization: Bearer $PBR_API_KEY"
<?php
$query = http_build_query(['status__in' => 'active', 'orderby' => 'name', 'order' => 'asc']);
$ch = curl_init('https://your-site.example/wp-json/pbr/v1/locations?' . $query);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('PBR_API_KEY'),
],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const params = new URLSearchParams({ status__in: 'active', orderby: 'name', order: 'asc' });
const response = await fetch(`https://your-site.example/wp-json/pbr/v1/locations?${params}`, {
headers: { 'Authorization': `Bearer ${process.env.PBR_API_KEY}` },
});
const { data, meta } = await response.json();
Quick Links
Share