P4T
Park4Travels
Airport parking · Compared
Free to list · Paid per booking · No setup fee

Park4Travels Operator API

List your UK car park on Park4Travels directly from your booking system. Push live rates, capacity and availability with a simple REST API. Your listing appears in customer searches within 5 minutes of the call.

5 min
Listing → live in search
JSON
REST, no SOAP, no XML
0
Setup fee · listing fee
Per-booking
Commission, no monthly cost

Getting started

  1. 1. Apply. Create an operator account. Approval is usually within 24 hours.
  2. 2. Generate an API key. Sign in, open API access in your dashboard, click Generate. Save the key — we only show it once.
  3. 3. POST your first listing. Use the curl example below. The listing appears in customer searches within 5 minutes.
  4. 4. Get paid. When a customer books, we email you the booking details immediately. We settle commission monthly on the 15th.

Authentication

Send your API key in the Authorization header on every request.

Authorization: Bearer p4t_op_a3f4b8e2c9d10567f4e3a2b1c0d9e8f7

Lose a key? Rotate it from your dashboard. The old key is revoked immediately.

Endpoints

MethodPathPurpose
GET/api/operators/listingsList your listings
POST/api/operators/listingsCreate a new listing
GET/api/operators/listings/{id}Fetch one of your listings
PATCH/api/operators/listings/{id}Update fields (price, availability, etc.)
DELETE/api/operators/listings/{id}Soft-delete (sets active=false)
Example

Create a listing

POST /api/operators/listings

Adds a car park to the search index. Returns the created listing with its id — store this for future updates.

curl -X POST https://www.park4travels.co.uk/api/operators/listings \
  -H "Authorization: Bearer p4t_op_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "airportCode": "STN",
    "name": "Acme Park & Ride Stansted",
    "serviceType": "park-ride",
    "pricePerDay": 6.50,
    "bookingFee": 0,
    "distanceMin": 10,
    "shuttleMin": 8,
    "parkMark": true,
    "cctv": true,
    "fenced": true,
    "ev": false,
    "undercover": false,
    "description": "Secure off-airport Park & Ride 10 min from STN by free 24/7 shuttle.",
    "imageUrl": "https://example.com/lot.jpg",
    "active": true
  }'

Response

{
  "ok": true,
  "listing": {
    "id": "clx9k2…",
    "airportCode": "STN",
    "name": "Acme Park & Ride Stansted",
    "pricePerDay": 6.50,
    "active": true,
    "createdAt": "2026-06-02T10:14:00.000Z"
    /* …all fields */
  }
}
Example

Update a listing's price

PATCH /api/operators/listings/{id}

Common case: nightly rate update. Partial body — only include the fields you're changing.

curl -X PATCH https://www.park4travels.co.uk/api/operators/listings/clx9k2… \
  -H "Authorization: Bearer p4t_op_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "pricePerDay": 7.25 }'
Example

Pause a listing temporarily

PATCH /api/operators/listings/{id}

Hide from search without deleting — useful for capacity blackouts (e.g. fully booked for half-term week).

curl -X PATCH https://www.park4travels.co.uk/api/operators/listings/clx9k2… \
  -H "Authorization: Bearer p4t_op_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "active": false }'

To restore: same PATCH with { "active": true }.

Example

List all your listings

GET /api/operators/listings
curl https://www.park4travels.co.uk/api/operators/listings \
  -H "Authorization: Bearer p4t_op_YOUR_KEY"

Listing fields

FieldTypeRequiredNotes
airportCodestringyesIATA, 3 letters. E.g. LHR, STN, MAN.
namestringyesWhat customers see (2–120 chars).
serviceTypeenumyespark-ride | meet-greet | on-airport
pricePerDaynumberyes£ per day, pre-VAT not stripped — what the customer pays.
bookingFeenumbernoOptional flat fee on top. Default 0.
distanceMinintyesMinutes from terminal (drive or walk).
shuttleMinintnoShuttle interval in min. Null = no shuttle.
parkMarkboolnoPark Mark accredited. Default false.
cctvboolnoDefault true.
fencedboolnoDefault true.
evboolnoEV charging available. Default false.
undercoverboolnoCovered parking. Default false.
descriptionstringyes10–2,000 chars, plain text.
imageUrlurlnoHTTPS only, used in listing card.
activeboolnoDefault true. Set false to hide from search.

Errors & limits

HTTP 401 · Unauthorized

Missing, malformed or invalid API key. Check the Authorization header.

HTTP 404 · Not found

The listing id doesn't exist or isn't yours.

HTTP 422 · Unprocessable

Field validation failed. Response includes which field.

HTTP 5xx · Server error

Retry with exponential backoff. Email support if persistent.

Rate limit: 60 requests/minute per key. If you need more, email hello@park4travels.co.uk.

Frequently asked

What does it cost to list?

Nothing. We charge commission only when a customer books your car park — typically 8–15% depending on volume. No setup fee, no monthly fee, no listing fee.

How fast does a new listing appear?

Within 5 minutes of the POST. Search-result caches refresh on the hour so the longest tail is 60 minutes.

How do I receive bookings?

We email the booking details (customer name, phone, car reg, drop-off and pick-up times) to your operator email immediately on payment. Booking webhooks coming soon for direct system-to-system.

Can I list multiple car parks?

Yes — one POST per listing. There's no cap on listings per operator.

How do I update availability?

PATCH active=false to remove a listing temporarily (e.g. fully booked half-term). PATCH active=true to bring it back. We're building richer availability-window endpoints next.

Do you support test mode?

Yes — set name to start with [TEST] to mark a listing as test inventory. It's hidden from public search but you can practice the API against it.