# Get member vehicle details

`GET /api/members/{memberId}/vehicle-details`

- **Success:** `200 OK`
- **Products:** Operator (`FOH`), Consumer (`CONSUMER`) (any one of these products, not all)
- **Features:** Online Bookings (`ONLINEBOOK`), Online Joining (`ONLINEJOIN`), Front of House Generic Access (`FOHGENERIC`) (any one of these features, not all)

HTML version: [Get member vehicle details](https://support.gladstonesoftware.cloud/reference/members/get-member-vehicle-details)

## Overview

Lists the vehicle registrations recorded against a member. These are what a car park barrier or number-plate reader matches on, so this is the list that decides whether a member's car gets in.

Despite being a single-member lookup, the response is an **array containing one element** — the member, with their registrations nested inside it. A member with no vehicles still returns `200`; whether you get an empty outer array or an element with an empty `vehicleDetails` list is not guaranteed, so handle both.

Call this to get the `vehicleDetailsId` values you need for [Delete vehicle record](delete-vehicle-record.md) — that endpoint takes only the vehicle id and has no member in its URL, so this is where the id comes from.

Linked members are allowed: a primary member's token can read the vehicles of a member linked to them.

## Endpoint

`GET {base_url}/api/members/{memberId}/vehicle-details`

`{base_url}` is the environment URL issued to your integration. See [Authenticating with Gladstone APIs](../../guides/authenticating-with-gladstone-apis.md).

## Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `memberId` | integer (int32) | Yes | The member whose vehicles you want. Must be a whole number greater than `0` — a decimal or a word is rejected with `400`, and `0` (non-member) and `-999` (purged) are rejected with `400` as well. A well-formed id that does not exist gives `404`. With a member-scoped token this may be the token's own member or a member linked to them. |

## Sample request

```bash title="cURL"
curl -X GET '{base_url}/api/members/{memberId}/vehicle-details' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'
```

## Response fields

| Field | Type | Description |
|-------|------|-------------|
| `[].memberId` | integer (int32) | The member the vehicles belong to. Always the member you asked for — the outer array never contains a second member. |
| `[].vehicleDetails` | array of object | The member's vehicle registrations. A member may hold several, but never the same registration twice: the platform enforces uniqueness on the pair of member and registration, so a duplicate is rejected at write time rather than appearing here. Empty when the member has no vehicles recorded. |
| `[].vehicleDetails[].vehicleDetailsId` | integer (int32) | The vehicle record's own id, and the value you pass as `vehicleId` to [Delete vehicle record](delete-vehicle-record.md). It is unique across the tenant, not per member. |
| `[].vehicleDetails[].vehicleRegistration` | string | The number plate as it was entered. Stored as free text and not normalised by the platform, so spacing and case can vary between records — compare with care if you are matching against plates read by a camera. |

## Sample response

```json title="200 OK"
[
  {
    "memberId": 12345,
    "vehicleDetails": [
      {
        "vehicleDetailsId": 12345,
        "vehicleRegistration": "string"
      }
    ]
  }
]
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `400` | Bad request | `memberId` is `0` or negative, including the non-member record and purged members. The body is `{memberId} is an invalid member ID`. |
| `400` | Bad request | `memberId` is not a whole number — a decimal such as `1.5` or a non-numeric value is rejected before any other check. |
| `403` | Forbidden | The token belongs to a member who is neither `memberId` nor linked to them. The body is `The given member ID of {memberId} does not belong to the logged in member nor any linked members`. |
| `404` | Not found | `memberId` is a valid, positive id that does not exist. The body is `MemberId does not exist`. A member with no vehicles returns `200`, not `404`. |
| `500` | Internal server error | An unexpected server-side failure while reading the vehicle records. |
