Contents
On this page
List Booking Forms - Plugixa Car Parking
GET /plugixa-car-parking/v1/booking-forms
List the booking forms, one page at a time. A booking form decides which locations and space types a booking page offers, which steps the customer walks through, and which extra questions are asked.
The signed-in user needs the plugixa_carparking_view capability (read records).
Request
GET https://your-site.example/wp-json/plugixa-car-parking/v1/booking-forms?status__in=active
Query parameters
Takes the list parameters every paged list accepts. search matches the name and the slug. orderby accepts id, name, status, is_default, created_at and modified_at.
Filters on this list:
| Filter field | Type | Example |
|---|---|---|
status |
Choice: active, inactive |
status__in=active |
created_at |
Date (UTC) | created_at__gte=2026-11-01 |
modified_at |
Date (UTC) | modified_at__gte=2026-11-01 |
Responses
200 OK. data is one page of booking forms.
{
"success": true,
"data": [
{
"id": 3,
"name": "Airport parking",
"slug": "airport-parking",
"status": "active",
"steps": [
{ "key": "dates", "enabled": true, "options": [] },
{ "key": "space", "enabled": true, "options": { "coupon": true } },
{ "key": "details", "enabled": true, "options": [] },
{ "key": "payment", "enabled": true, "options": [] },
{ "key": "confirm", "enabled": true, "options": [] }
],
"style": { "primary_color": "#1976d2", "design": "classic" },
"location_ids": [4],
"space_type_ids": [],
"is_default": false,
"settings": {
"fields": [
{ "key": "flight_number", "label": "Flight number", "type": "text", "required": true, "options": [] }
]
},
"created_by": 1,
"modified_by": 1,
"created_at": "2026-11-12 09:30:00",
"modified_at": "2026-11-12 09:30:00",
"deleted_at": null,
"fields": [
{ "key": "flight_number", "label": "Flight number", "type": "text", "required": true, "options": [] }
],
"all_locations": false,
"location_names": ["Terminal 2"],
"space_type_names": []
}
],
"meta": { "total": 2, "pages": 1 }
}
| Field | Type | Meaning |
|---|---|---|
data[].id |
integer |
The form’s id, which a booking page and the public booking routes take as form_id |
data[].slug |
string |
Unique across the site, trashed forms included |
data[].status |
string |
active or inactive. An inactive form takes no bookings |
data[].steps |
array |
The steps in order, each with key, enabled and options. A form that never saved its steps shows the default five |
data[].style |
object|null |
primary_color and design (classic, split or minimal) |
data[].location_ids |
array|null |
Locations offered. Empty or null means every location |
data[].space_type_ids |
array|null |
Space types offered. Empty or null means every space type |
data[].is_default |
boolean |
The form used by a booking page that names no form. Exactly one form is the default |
data[].settings |
object|null |
Stored settings, including fields |
data[].fields |
array |
The extra questions asked of the customer, copied out of settings |
data[].all_locations |
boolean |
true when the form offers every location |
data[].location_names |
array |
Names of location_ids, in the same order. An id whose location is gone shows as #<id> |
data[].space_type_names |
array |
Names of space_type_ids, likewise |
meta.total |
integer |
Forms matching, before paging |
meta.pages |
integer |
Number of pages at this per_page |
Errors
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-car-parking/v1/booking-forms?status__in=active" \
-u "admin:$WP_APP_PASSWORD"
<?php
$query = http_build_query(['status__in' => 'active']);
$ch = curl_init('https://your-site.example/wp-json/plugixa-car-parking/v1/booking-forms?' . $query);
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 query = new URLSearchParams({ status__in: 'active' });
const response = await fetch(`https://your-site.example/wp-json/plugixa-car-parking/v1/booking-forms?${query}`, {
headers: {
'Authorization': 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`),
},
});
const { data, meta } = await response.json();
Quick Links
Share