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