API reference
All calls of the Fleetiva API, grouped by area, with parameters, fields, responses and a test console. Below them the data formats.
Every call needs the Authorization: Bearer header with the key, every response carries X-Request-Id. The rules for all calls – authentication, idempotency, limits and errors – are in the guide.
Stays in this tab only, is not stored and is sent only to /api/v1 on this address.
Contents
Inquiries
POST/inquiries
Create an inquiry · create_inquiry · Scope: inquiries.create
Create a transport inquiry for one or more passengers (people with special needs) on behalf of the requesting person. The operator reviews it in the Fleetiva inbox; nothing is booked automatically. Requires an Idempotency-Key: the same key with the same content returns the existing inquiry, with different content it is rejected.
Parameters
| Name | In | Required | Values | Description |
|---|---|---|---|---|
Idempotency-Key | header | yes | 1–120 characters | Your own ID for this inquiry, e.g. a UUID or your booking number. Send the same key when you retry the same request: with the same content you get the existing inquiry back (200), with different content the call is rejected (422). Not only spaces. |
Fleetiva-Dry-Run | header | no | one of: true, false | true: check the call without any effect — same authentication, scope, limits and validation, but nothing is created, no one is notified and nothing is stored; a passed check answers 204 without a body. Not checked: whether the Idempotency-Key was already used. false or no header: the call takes effect. Any other value is rejected (400). |
Body (JSON)
JSON object, at most 64 KB.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
requester | Requester | yes | The person or institution asking for transport — the operator replies to them. Email or phone is required. | |
passengers | list of Passenger | yes | 1–20 entries | The people to be transported, one entry each. |
message | string | no | at most 4000 characters may be null | Free text for the operator. |
consent | Consent | yes | Consent your system obtained from the person before sending (required). |
Responses
| Status | Description |
|---|---|
| 200 | Same Idempotency-Key and same content again: the existing inquiry, nothing new is created. |
| 201 | Inquiry created. |
| 204 | Dry run passed (Fleetiva-Dry-Run: true): everything was checked, nothing was created. No body. |
| 400 | invalid_input: Invalid request |
| 401 | unauthorized: Missing or invalid API key |
| 403 | forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account |
| 413 | payload_too_large: Request body too large |
| 415 | unsupported_media_type: Content-Type must be application/json |
| 422 | idempotency_key_reused: Idempotency-Key was already used with different content |
| 429 | rate_limited: Too many requests |
| 503 | unavailable: Service unavailable |
What the error codes mean and how to handle them: Error handling.
Response fields
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
id | string | yes | format uuid | ID of the inquiry — keep it to query the status. |
duplicate | boolean | yes | true if this Idempotency-Key was already used with the same content; the existing inquiry is returned. |
Example
{
"id": "0b7c6d1e-2f3a-4b5c-8d9e-0f1a2b3c4d5e",
"duplicate": true
}
Try it
GET/inquiries/{id}
Query the status of an inquiry · get_inquiry_status · Scope: inquiries.create
Read the processing status of an inquiry this API client created (new, in_progress, accepted, rejected). Inquiries of other clients, unknown and deleted ones are all reported as not found.
Parameters
| Name | In | Required | Values | Description |
|---|---|---|---|---|
id | path | yes | format uuid | ID returned when the inquiry was created. |
Responses
| Status | Description |
|---|---|
| 200 | Status of the inquiry. |
| 400 | invalid_input: Invalid request |
| 401 | unauthorized: Missing or invalid API key |
| 403 | forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account |
| 404 | not_found: Not found |
| 429 | rate_limited: Too many requests |
| 503 | unavailable: Service unavailable |
What the error codes mean and how to handle them: Error handling.
Response fields
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
id | string | yes | format uuid | ID of the inquiry. |
status | string | yes | one of: new, in_progress, accepted, rejected | new (not yet processed), in_progress (the operator is working on it), accepted (taken over for planning) or rejected. |
received_at | string | yes | When the inquiry was received (ISO 8601 with offset). |
Example
{
"id": "0b7c6d1e-2f3a-4b5c-8d9e-0f1a2b3c4d5e",
"status": "in_progress",
"received_at": "2026-11-02T09:15:00+00:00"
}
Try it
Customers
GET/customers
List customers · list_customers · Scope: master_data.read
List the customers of the transport service (institutions, authorities, cost bearers, private persons), ordered by last change, oldest first. Page with cursor; sync with updated_since and list_deleted_customers.
Parameters
| Name | In | Required | Values | Description |
|---|---|---|---|---|
limit | query | no | 1–200 may be null | Records per page, 1–200. Default 50. |
cursor | query | no | at most 500 characters may be null | next_cursor of the previous page, unchanged. Use it with the same filters. Omit it for the first page. |
updated_since | query | no | format date-timemay be null | Only records changed at or after this time (ISO 8601 with offset). For syncing: use the start of your previous sync minus a few minutes — a record may come twice, store by id. |
status | query | no | one of: active, inactive, archivedmay be null | Only customers with this status. |
type | query | no | one of: agency, carrier, institution, private, caretakermay be null | Only customers of this type. |
include | query | no | may be null | Field groups to add: billing (needs the scope accounting.read). Comma-separated. |
Responses
| Status | Description |
|---|---|
| 200 | One page of customers changed since the given time; more follow with next_cursor. |
| 400 | invalid_input: Invalid request |
| 401 | unauthorized: Missing or invalid API key |
| 403 | forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account |
| 429 | rate_limited: Too many requests |
| 503 | unavailable: Service unavailable |
What the error codes mean and how to handle them: Error handling.
Response fields
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
data | list of object | yes | Customers, ordered by updated_at, then id. | |
data[]. | string | yes | ID of the customer. | |
data[]. | string | yes | may be null | Customer number assigned by the operator. |
data[]. | string | yes | Name of the customer, e.g. the institution or the person. | |
data[]. | string | yes | one of: agency, carrier, institution, private, caretakermay be null | agency (public authority, e.g. youth welfare office), carrier (cost bearer, e.g. health insurance), institution (e.g. workshop, school, day care centre), private (private person), caretaker (legal guardian). null when not set. |
data[]. | string | yes | one of: active, inactive, archivedmay be null | active, inactive or archived. null when not set. |
data[]. | string | yes | may be null | Email address. |
data[]. | string | yes | may be null | Phone number. |
data[]. | string | yes | may be null | Fax number. |
data[]. | string | yes | may be null | Website. |
data[]. | object | yes | may be null | Postal address, e.g. for invoices. |
data[]. | string | yes | may be null | Street. |
data[]. | string | yes | may be null | House number. |
data[]. | string | yes | may be null | Postal code. |
data[]. | string | yes | may be null | City. |
data[]. | string | yes | may be null | Country as stored, e.g. DE or Deutschland. |
data[]. | string | yes | may be null | Address supplement, e.g. building or floor. |
data[]. | string | yes | may be null | PO box, instead of a street. |
data[]. | string | yes | may be null | Department. |
data[]. | string | yes | may be null | For the attention of a person. |
data[]. | string | yes | may be null | Reference of the addressee, e.g. a file number. |
data[]. | object | yes | may be null | Physical address, if it differs from the postal address — e.g. where passengers are dropped off. |
data[]. | string | yes | may be null | Street. |
data[]. | string | yes | may be null | House number. |
data[]. | string | yes | may be null | Postal code. |
data[]. | string | yes | may be null | City. |
data[]. | string | yes | may be null | Country as stored, e.g. DE or Deutschland. |
data[]. | string | yes | may be null | Address supplement, e.g. building or floor. |
data[]. | string | yes | may be null | PO box, instead of a street. |
data[]. | string | yes | may be null | Department. |
data[]. | string | yes | may be null | For the attention of a person. |
data[]. | string | yes | may be null | Reference of the addressee, e.g. a file number. |
data[]. | string | yes | may be null | Notes of the operator. |
data[]. | string | yes | may be null | When the customer was created (ISO 8601 with offset). |
data[]. | string | yes | When the customer was last changed (ISO 8601 with offset). | |
data[]. | object | no | Billing data. Only with include=billing and the scope accounting.read. | |
data[]. | string | yes | may be null | Tax number. |
data[]. | string | yes | may be null | VAT ID. |
data[]. | string | yes | may be null | Buyer reference for e-invoices (Leitweg-ID in Germany). |
data[]. | string | yes | may be null | Payment method as entered by the operator, free text. |
data[]. | object | yes | may be null | Bank account; null when none is stored. |
data[]. | string | yes | may be null | Account holder. |
data[]. | string | yes | may be null | Name of the bank. |
data[]. | string | yes | may be null | IBAN. |
data[]. | string | yes | may be null | BIC. |
next_cursor | string | yes | may be null | Pass it as cursor to get the next page. null: there are no more records. |
Example
{
"data": [
{
"id": "7a1f3c2e-5b4d-4e6f-9a8b-1c2d3e4f5a6b",
"number": "K-1042",
"name": "Tagesförderstätte Sonnenhof",
"type": "institution",
"status": "active",
"email": "verwaltung@example.org",
"phone": "+49 30 1234567",
"fax": null,
"website": null,
"postal_address": {
"street": "Lindenallee",
"house_number": "12",
"zip": "10115",
"city": "Berlin",
"country": "DE",
"address_line_2": null,
"po_box": null,
"department": null,
"attention": null,
"reference": null
},
"physical_address": null,
"notes": "Drop-off at the side entrance.",
"created_at": "2026-09-14T08:30:00.000000+00:00",
"updated_at": "2026-11-02T07:45:12.345678+00:00"
}
],
"next_cursor": "WyIyMDI2LTExLTAyVDA3OjQ1OjEyLjM0NTY3OCswMDowMCIsIjdhMWYzYzJlLTViNGQtNGU2Zi05YThiLTFjMmQzZTRmNWE2YiJd"
}
Try it
GET/customers/{id}
Read a customer · get_customer · Scope: master_data.read
Read one customer by ID. Unknown and deleted customers are reported as not found.
Parameters
| Name | In | Required | Values | Description |
|---|---|---|---|---|
id | path | yes | format uuid | ID of the customer. |
include | query | no | may be null | Field groups to add: billing (needs the scope accounting.read). Comma-separated. |
Responses
| Status | Description |
|---|---|
| 200 | The customer with the field group billing. |
| 400 | invalid_input: Invalid request |
| 401 | unauthorized: Missing or invalid API key |
| 403 | forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account |
| 404 | not_found: Not found |
| 429 | rate_limited: Too many requests |
| 503 | unavailable: Service unavailable |
What the error codes mean and how to handle them: Error handling.
Response fields
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
id | string | yes | ID of the customer. | |
number | string | yes | may be null | Customer number assigned by the operator. |
name | string | yes | Name of the customer, e.g. the institution or the person. | |
type | string | yes | one of: agency, carrier, institution, private, caretakermay be null | agency (public authority, e.g. youth welfare office), carrier (cost bearer, e.g. health insurance), institution (e.g. workshop, school, day care centre), private (private person), caretaker (legal guardian). null when not set. |
status | string | yes | one of: active, inactive, archivedmay be null | active, inactive or archived. null when not set. |
email | string | yes | may be null | Email address. |
phone | string | yes | may be null | Phone number. |
fax | string | yes | may be null | Fax number. |
website | string | yes | may be null | Website. |
postal_address | object | yes | may be null | Postal address, e.g. for invoices. |
postal_address. | string | yes | may be null | Street. |
postal_address. | string | yes | may be null | House number. |
postal_address. | string | yes | may be null | Postal code. |
postal_address. | string | yes | may be null | City. |
postal_address. | string | yes | may be null | Country as stored, e.g. DE or Deutschland. |
postal_address. | string | yes | may be null | Address supplement, e.g. building or floor. |
postal_address. | string | yes | may be null | PO box, instead of a street. |
postal_address. | string | yes | may be null | Department. |
postal_address. | string | yes | may be null | For the attention of a person. |
postal_address. | string | yes | may be null | Reference of the addressee, e.g. a file number. |
physical_address | object | yes | may be null | Physical address, if it differs from the postal address — e.g. where passengers are dropped off. |
physical_address. | string | yes | may be null | Street. |
physical_address. | string | yes | may be null | House number. |
physical_address. | string | yes | may be null | Postal code. |
physical_address. | string | yes | may be null | City. |
physical_address. | string | yes | may be null | Country as stored, e.g. DE or Deutschland. |
physical_address. | string | yes | may be null | Address supplement, e.g. building or floor. |
physical_address. | string | yes | may be null | PO box, instead of a street. |
physical_address. | string | yes | may be null | Department. |
physical_address. | string | yes | may be null | For the attention of a person. |
physical_address. | string | yes | may be null | Reference of the addressee, e.g. a file number. |
notes | string | yes | may be null | Notes of the operator. |
created_at | string | yes | may be null | When the customer was created (ISO 8601 with offset). |
updated_at | string | yes | When the customer was last changed (ISO 8601 with offset). | |
billing | object | no | Billing data. Only with include=billing and the scope accounting.read. | |
billing. | string | yes | may be null | Tax number. |
billing. | string | yes | may be null | VAT ID. |
billing. | string | yes | may be null | Buyer reference for e-invoices (Leitweg-ID in Germany). |
billing. | string | yes | may be null | Payment method as entered by the operator, free text. |
billing. | object | yes | may be null | Bank account; null when none is stored. |
billing. | string | yes | may be null | Account holder. |
billing. | string | yes | may be null | Name of the bank. |
billing. | string | yes | may be null | IBAN. |
billing. | string | yes | may be null | BIC. |
Example
{
"id": "7a1f3c2e-5b4d-4e6f-9a8b-1c2d3e4f5a6b",
"number": "K-1042",
"name": "Tagesförderstätte Sonnenhof",
"type": "institution",
"status": "active",
"email": "verwaltung@example.org",
"phone": "+49 30 1234567",
"fax": null,
"website": null,
"postal_address": {
"street": "Lindenallee",
"house_number": "12",
"zip": "10115",
"city": "Berlin",
"country": "DE",
"address_line_2": null,
"po_box": null,
"department": null,
"attention": null,
"reference": null
},
"physical_address": null,
"notes": "Drop-off at the side entrance.",
"created_at": "2026-09-14T08:30:00.000000+00:00",
"updated_at": "2026-11-02T07:45:12.345678+00:00",
"billing": {
"tax_id": null,
"vat_id": "DE123456789",
"buyer_reference": "11001-12345-67",
"payment_method": "Bank transfer",
"bank_account": {
"account_holder": "Sonnenhof gGmbH",
"bank_name": "Musterbank",
"iban": "DE89370400440532013000",
"bic": "MUSTDEFFXXX"
}
}
}
Try it
GET/customers/deleted
List deleted customers · list_deleted_customers · Scope: master_data.read
List customers deleted since a point in time, so a synced copy can remove them. Kept for a limited time; further back the call is rejected and you need a full sync.
Parameters
| Name | In | Required | Values | Description |
|---|---|---|---|---|
since | query | yes | format date-time | Deletions at or after this time (ISO 8601 with offset), at most 90 days back. Use the same time as updated_since of your sync. |
limit | query | no | 1–200 may be null | Records per page, 1–200. Default 50. |
cursor | query | no | at most 500 characters may be null | next_cursor of the previous page, unchanged. Use it with the same filters. Omit it for the first page. |
Responses
| Status | Description |
|---|---|
| 200 | Customers deleted since the given time. |
| 400 | invalid_input: Invalid request |
| 401 | unauthorized: Missing or invalid API key |
| 403 | forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account |
| 429 | rate_limited: Too many requests |
| 503 | unavailable: Service unavailable |
What the error codes mean and how to handle them: Error handling.
Response fields
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
data | list of object | yes | Deleted records, oldest first. | |
data[]. | string | yes | ID of the deleted record. | |
data[]. | string | yes | When it was deleted (ISO 8601 with offset). | |
next_cursor | string | yes | may be null | Pass it as cursor to get the next page. null: there are no more records. |
Example
{
"data": [
{
"id": "3c9e8d7f-1a2b-4c5d-8e9f-0a1b2c3d4e5f",
"deleted_at": "2026-11-01T16:20:05.000000+00:00"
}
],
"next_cursor": null
}
Try it
Passengers
GET/passengers
List passengers · list_passengers · Scope: master_data.read
List the passengers of the transport service, ordered by last change, oldest first. Page with cursor; sync with updated_since and list_deleted_passengers.
Parameters
| Name | In | Required | Values | Description |
|---|---|---|---|---|
limit | query | no | 1–200 may be null | Records per page, 1–200. Default 50. |
cursor | query | no | at most 500 characters may be null | next_cursor of the previous page, unchanged. Use it with the same filters. Omit it for the first page. |
updated_since | query | no | format date-timemay be null | Only records changed at or after this time (ISO 8601 with offset). For syncing: use the start of your previous sync minus a few minutes — a record may come twice, store by id. |
status | query | no | one of: active, inactive, archivedmay be null | Only passengers with this status. |
customer_id | query | no | format uuidmay be null | Only passengers of this customer. |
self_payer | query | no | may be null | true: only self-payers; false: only the others (passengers of a cost bearer or without a customer). |
include | query | no | may be null | Field groups to add: health (needs the scope health_data; every delivered passenger is logged) and billing (needs the scope accounting.read). Comma-separated. |
Responses
| Status | Description |
|---|---|
| 200 | One page of active passengers changed since the given time; more follow with next_cursor. |
| 400 | invalid_input: Invalid request |
| 401 | unauthorized: Missing or invalid API key |
| 403 | forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account |
| 429 | rate_limited: Too many requests |
| 503 | unavailable: Service unavailable |
What the error codes mean and how to handle them: Error handling.
Response fields
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
data | list of object | yes | Passengers, ordered by updated_at, then id. | |
data[]. | string | yes | ID of the passenger. | |
data[]. | string | yes | may be null | Passenger number assigned by the operator. |
data[]. | string | yes | one of: active, inactive, archivedmay be null | active, inactive or archived. null when not set. |
data[]. | boolean | yes | The passenger pays for their trips themselves: they belong to the system customer for self-payers (customer.number SELBSTZAHLER), however often they ride. | |
data[]. | string | yes | one of: mr, ms, diversemay be null | mr, ms or diverse. null when not set. |
data[]. | string | yes | may be null | First name. |
data[]. | string | yes | Last name. | |
data[]. | string | yes | may be null | Date of birth (YYYY-MM-DD). |
data[]. | string | yes | may be null | Email address. |
data[]. | list of object | yes | Phone numbers with a label, e.g. mobile or mother. Empty list when none. | |
data[]. | string | yes | may be null | Whose number, e.g. mother. |
data[]. | string | yes | Phone number. | |
data[]. | object | yes | may be null | Home address — where the passenger is usually picked up. |
data[]. | string | yes | may be null | Street. |
data[]. | string | yes | may be null | House number. |
data[]. | string | yes | may be null | Postal code. |
data[]. | string | yes | may be null | City. |
data[]. | string | yes | may be null | Country as stored, e.g. DE or Deutschland. |
data[]. | object | yes | may be null | The customer (cost bearer) the passenger belongs to. Read the customer itself to sync it. |
data[]. | string | yes | ID of the customer. | |
data[]. | string | yes | Name of the customer at the time of reading. | |
data[]. | string | yes | may be null | Customer number. |
data[]. | list of object | yes | Reference codes of cost bearers, as printed on documents. Empty list when none. | |
data[]. | string | yes | Kind of reference, e.g. approval number. | |
data[]. | string | yes | Value. | |
data[]. | object | yes | What the passenger needs on the trip — vehicle, seat and help. Same keys as needs of an inquiry. | |
data[]. | boolean | yes | Travels seated in the wheelchair (needs a wheelchair space and a ramp or lift). false when not recorded. | |
data[]. | boolean | yes | Uses a wheelchair but can move to a regular seat for the trip. false when not recorded. | |
data[]. | boolean | yes | Brings a rollator. false when not recorded. | |
data[]. | boolean | yes | Uses a walking frame. false when not recorded. | |
data[]. | boolean | yes | Uses a walking stick. false when not recorded. | |
data[]. | boolean | yes | Can walk without help. false when not recorded. | |
data[]. | boolean | yes | Travels lying on a stretcher. false when not recorded. | |
data[]. | boolean | yes | Needs oxygen during the trip (needs an oxygen-equipped vehicle). false when not recorded. | |
data[]. | boolean | yes | Needs an escort provided by the transport service. false when not recorded. | |
data[]. | boolean | yes | Needs help getting in and out of the vehicle. false when not recorded. | |
data[]. | boolean | yes | Needs support during the trip. false when not recorded. | |
data[]. | boolean | yes | Travels with an assistance animal. false when not recorded. | |
data[]. | boolean | yes | Brings a bicycle. false when not recorded. | |
data[]. | string | yes | one of: no_preference, front, rearmay be null | front, rear or no_preference. null when not recorded. |
data[]. | number | yes | may be null | Minutes the passenger usually needs to board. |
data[]. | string | yes | may be null | Usual earliest pickup time (HH:MM, local time of the operator). |
data[]. | string | yes | may be null | Usual latest pickup time (HH:MM, local time of the operator). |
data[]. | string | yes | may be null | Notes of the operator. |
data[]. | string | yes | may be null | When the passenger was created (ISO 8601 with offset). |
data[]. | string | yes | When the passenger was last changed (ISO 8601 with offset). | |
data[]. | object | no | Health data (Art. 9 GDPR). Only for API keys with the scope health_data and include=health. Every passenger delivered with this group is logged for the operator. | |
data[]. | string | yes | may be null | Medical notes for the trip. |
data[]. | string | yes | may be null | Allergies. |
data[]. | object | yes | may be null | Emergency contact; null when none is stored. |
data[]. | string | yes | may be null | Name of the contact person. |
data[]. | string | yes | may be null | Relationship to the passenger, e.g. mother. |
data[]. | string | yes | may be null | Phone number. |
data[]. | string | yes | may be null | Free text about the needs, e.g. how to help with boarding. |
data[]. | boolean | yes | The passenger is autistic. false when not recorded. | |
data[]. | boolean | yes | The passenger has a visual impairment. false when not recorded. | |
data[]. | boolean | yes | The passenger has a cognitive impairment. false when not recorded. | |
data[]. | object | no | Billing data. Only with include=billing and the scope accounting.read. | |
data[]. | string | yes | may be null | Name on invoices, if it differs from the passenger. |
data[]. | object | yes | may be null | Billing address; null when none is stored. If neither name nor address is set, documents are addressed to the passenger at home_address. |
data[]. | string | yes | may be null | Street. |
data[]. | string | yes | may be null | House number. |
data[]. | string | yes | may be null | Postal code. |
data[]. | string | yes | may be null | City. |
data[]. | string | yes | may be null | Country as stored, e.g. DE or Deutschland. |
data[]. | number | yes | may be null | Default VAT rate in percent for documents of this passenger. |
next_cursor | string | yes | may be null | Pass it as cursor to get the next page. null: there are no more records. |
Example
{
"data": [
{
"id": "5d2e8f1a-3b4c-4d6e-9f0a-1b2c3d4e5f6a",
"number": "F-2087",
"status": "active",
"self_payer": false,
"salutation": "mr",
"first_name": "Jonas",
"last_name": "Beispiel",
"date_of_birth": "2012-04-17",
"email": null,
"phone_numbers": [
{
"label": "Home",
"number": "+49 30 7654321"
},
{
"label": "Mother",
"number": "+49 170 1234567"
}
],
"home_address": {
"street": "Birkenweg",
"house_number": "7",
"zip": "10437",
"city": "Berlin",
"country": "DE"
},
"customer": {
"id": "7a1f3c2e-5b4d-4e6f-9a8b-1c2d3e4f5a6b",
"name": "Tagesförderstätte Sonnenhof",
"number": "K-1042"
},
"reference_codes": [
{
"type": "Approval number",
"value": "EGH-2026-0815"
}
],
"needs": {
"wheelchair": true,
"wheelchair_transferable": false,
"rollator": false,
"walker": false,
"cane": false,
"ambulatory": false,
"stretcher": false,
"oxygen": false,
"companion": false,
"boarding_assistance": true,
"assistance": false,
"service_animal": false,
"bicycle": false
},
"seat_preference": "front",
"boarding_minutes": 5,
"pickup_earliest": "07:00",
"pickup_latest": "07:20",
"notes": "Ring twice.",
"created_at": "2026-09-20T10:05:00.000000+00:00",
"updated_at": "2026-11-02T06:58:41.123456+00:00"
}
],
"next_cursor": "WyIyMDI2LTExLTAyVDA2OjU4OjQxLjEyMzQ1NiswMDowMCIsIjVkMmU4ZjFhLTNiNGMtNGQ2ZS05ZjBhLTFiMmMzZDRlNWY2YSJd"
}
Try it
GET/passengers/{id}
Read a passenger · get_passenger · Scope: master_data.read
Read one passenger by ID. Unknown and deleted passengers are reported as not found.
Parameters
| Name | In | Required | Values | Description |
|---|---|---|---|---|
id | path | yes | format uuid | ID of the passenger. |
include | query | no | may be null | Field groups to add: health (needs the scope health_data; every delivered passenger is logged) and billing (needs the scope accounting.read). Comma-separated. |
Responses
| Status | Description |
|---|---|
| 200 | The passenger with the field group health — this call is logged for the operator. |
| 400 | invalid_input: Invalid request |
| 401 | unauthorized: Missing or invalid API key |
| 403 | forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account |
| 404 | not_found: Not found |
| 429 | rate_limited: Too many requests |
| 503 | unavailable: Service unavailable |
What the error codes mean and how to handle them: Error handling.
Response fields
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
id | string | yes | ID of the passenger. | |
number | string | yes | may be null | Passenger number assigned by the operator. |
status | string | yes | one of: active, inactive, archivedmay be null | active, inactive or archived. null when not set. |
self_payer | boolean | yes | The passenger pays for their trips themselves: they belong to the system customer for self-payers (customer.number SELBSTZAHLER), however often they ride. | |
salutation | string | yes | one of: mr, ms, diversemay be null | mr, ms or diverse. null when not set. |
first_name | string | yes | may be null | First name. |
last_name | string | yes | Last name. | |
date_of_birth | string | yes | may be null | Date of birth (YYYY-MM-DD). |
email | string | yes | may be null | Email address. |
phone_numbers | list of object | yes | Phone numbers with a label, e.g. mobile or mother. Empty list when none. | |
phone_numbers[]. | string | yes | may be null | Whose number, e.g. mother. |
phone_numbers[]. | string | yes | Phone number. | |
home_address | object | yes | may be null | Home address — where the passenger is usually picked up. |
home_address. | string | yes | may be null | Street. |
home_address. | string | yes | may be null | House number. |
home_address. | string | yes | may be null | Postal code. |
home_address. | string | yes | may be null | City. |
home_address. | string | yes | may be null | Country as stored, e.g. DE or Deutschland. |
customer | object | yes | may be null | The customer (cost bearer) the passenger belongs to. Read the customer itself to sync it. |
customer. | string | yes | ID of the customer. | |
customer. | string | yes | Name of the customer at the time of reading. | |
customer. | string | yes | may be null | Customer number. |
reference_codes | list of object | yes | Reference codes of cost bearers, as printed on documents. Empty list when none. | |
reference_codes[]. | string | yes | Kind of reference, e.g. approval number. | |
reference_codes[]. | string | yes | Value. | |
needs | object | yes | What the passenger needs on the trip — vehicle, seat and help. Same keys as needs of an inquiry. | |
needs. | boolean | yes | Travels seated in the wheelchair (needs a wheelchair space and a ramp or lift). false when not recorded. | |
needs. | boolean | yes | Uses a wheelchair but can move to a regular seat for the trip. false when not recorded. | |
needs. | boolean | yes | Brings a rollator. false when not recorded. | |
needs. | boolean | yes | Uses a walking frame. false when not recorded. | |
needs. | boolean | yes | Uses a walking stick. false when not recorded. | |
needs. | boolean | yes | Can walk without help. false when not recorded. | |
needs. | boolean | yes | Travels lying on a stretcher. false when not recorded. | |
needs. | boolean | yes | Needs oxygen during the trip (needs an oxygen-equipped vehicle). false when not recorded. | |
needs. | boolean | yes | Needs an escort provided by the transport service. false when not recorded. | |
needs. | boolean | yes | Needs help getting in and out of the vehicle. false when not recorded. | |
needs. | boolean | yes | Needs support during the trip. false when not recorded. | |
needs. | boolean | yes | Travels with an assistance animal. false when not recorded. | |
needs. | boolean | yes | Brings a bicycle. false when not recorded. | |
seat_preference | string | yes | one of: no_preference, front, rearmay be null | front, rear or no_preference. null when not recorded. |
boarding_minutes | number | yes | may be null | Minutes the passenger usually needs to board. |
pickup_earliest | string | yes | may be null | Usual earliest pickup time (HH:MM, local time of the operator). |
pickup_latest | string | yes | may be null | Usual latest pickup time (HH:MM, local time of the operator). |
notes | string | yes | may be null | Notes of the operator. |
created_at | string | yes | may be null | When the passenger was created (ISO 8601 with offset). |
updated_at | string | yes | When the passenger was last changed (ISO 8601 with offset). | |
health | object | no | Health data (Art. 9 GDPR). Only for API keys with the scope health_data and include=health. Every passenger delivered with this group is logged for the operator. | |
health. | string | yes | may be null | Medical notes for the trip. |
health. | string | yes | may be null | Allergies. |
health. | object | yes | may be null | Emergency contact; null when none is stored. |
health. | string | yes | may be null | Name of the contact person. |
health. | string | yes | may be null | Relationship to the passenger, e.g. mother. |
health. | string | yes | may be null | Phone number. |
health. | string | yes | may be null | Free text about the needs, e.g. how to help with boarding. |
health. | boolean | yes | The passenger is autistic. false when not recorded. | |
health. | boolean | yes | The passenger has a visual impairment. false when not recorded. | |
health. | boolean | yes | The passenger has a cognitive impairment. false when not recorded. | |
billing | object | no | Billing data. Only with include=billing and the scope accounting.read. | |
billing. | string | yes | may be null | Name on invoices, if it differs from the passenger. |
billing. | object | yes | may be null | Billing address; null when none is stored. If neither name nor address is set, documents are addressed to the passenger at home_address. |
billing. | string | yes | may be null | Street. |
billing. | string | yes | may be null | House number. |
billing. | string | yes | may be null | Postal code. |
billing. | string | yes | may be null | City. |
billing. | string | yes | may be null | Country as stored, e.g. DE or Deutschland. |
billing. | number | yes | may be null | Default VAT rate in percent for documents of this passenger. |
Example
{
"id": "5d2e8f1a-3b4c-4d6e-9f0a-1b2c3d4e5f6a",
"number": "F-2087",
"status": "active",
"self_payer": false,
"salutation": "mr",
"first_name": "Jonas",
"last_name": "Beispiel",
"date_of_birth": "2012-04-17",
"email": null,
"phone_numbers": [
{
"label": "Home",
"number": "+49 30 7654321"
},
{
"label": "Mother",
"number": "+49 170 1234567"
}
],
"home_address": {
"street": "Birkenweg",
"house_number": "7",
"zip": "10437",
"city": "Berlin",
"country": "DE"
},
"customer": {
"id": "7a1f3c2e-5b4d-4e6f-9a8b-1c2d3e4f5a6b",
"name": "Tagesförderstätte Sonnenhof",
"number": "K-1042"
},
"reference_codes": [
{
"type": "Approval number",
"value": "EGH-2026-0815"
}
],
"needs": {
"wheelchair": true,
"wheelchair_transferable": false,
"rollator": false,
"walker": false,
"cane": false,
"ambulatory": false,
"stretcher": false,
"oxygen": false,
"companion": false,
"boarding_assistance": true,
"assistance": false,
"service_animal": false,
"bicycle": false
},
"seat_preference": "front",
"boarding_minutes": 5,
"pickup_earliest": "07:00",
"pickup_latest": "07:20",
"notes": "Ring twice.",
"created_at": "2026-09-20T10:05:00.000000+00:00",
"updated_at": "2026-11-02T06:58:41.123456+00:00",
"health": {
"medical_notes": "Epilepsy: emergency medication in the backpack.",
"allergies": "Peanuts",
"emergency_contact": {
"name": "Sabine Beispiel",
"relationship": "Mother",
"phone": "+49 170 1234567"
},
"needs_notes": "Fasten the wheelchair with four-point restraints.",
"autism": false,
"visual_impairment": false,
"cognitive_impairment": true
}
}
Try it
GET/passengers/deleted
List deleted passengers · list_deleted_passengers · Scope: master_data.read
List passengers deleted since a point in time, so a synced copy can remove them. Kept for a limited time; further back the call is rejected and you need a full sync.
Parameters
| Name | In | Required | Values | Description |
|---|---|---|---|---|
since | query | yes | format date-time | Deletions at or after this time (ISO 8601 with offset), at most 90 days back. Use the same time as updated_since of your sync. |
limit | query | no | 1–200 may be null | Records per page, 1–200. Default 50. |
cursor | query | no | at most 500 characters may be null | next_cursor of the previous page, unchanged. Use it with the same filters. Omit it for the first page. |
Responses
| Status | Description |
|---|---|
| 200 | Passengers deleted since the given time. |
| 400 | invalid_input: Invalid request |
| 401 | unauthorized: Missing or invalid API key |
| 403 | forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account |
| 429 | rate_limited: Too many requests |
| 503 | unavailable: Service unavailable |
What the error codes mean and how to handle them: Error handling.
Response fields
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
data | list of object | yes | Deleted records, oldest first. | |
data[]. | string | yes | ID of the deleted record. | |
data[]. | string | yes | When it was deleted (ISO 8601 with offset). | |
next_cursor | string | yes | may be null | Pass it as cursor to get the next page. null: there are no more records. |
Example
{
"data": [
{
"id": "8e1f2a3b-4c5d-4e6f-8a9b-0c1d2e3f4a5b",
"deleted_at": "2026-11-01T17:02:44.000000+00:00"
}
],
"next_cursor": null
}
Try it
Data formats
The objects inquiries, records and responses are made of. The OpenAPI file lists them under components.schemas with the same names.
Requesting person Requester
The person or institution asking for transport — the operator replies to them. Email or phone is required.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
role | string | no | one of: self, relative, institution, payermay be null | Who is asking: self (the passenger), relative, institution (e.g. a care home or workshop) or payer (the cost bearer). |
first_name | string | no | at most 100 characters may be null | First name of the requesting person. |
last_name | string | yes | 1–100 characters | Last name of the requesting person, or a contact name at the institution. |
email | string | no | at most 254 characters format emailmay be null | Email address for replies. Email or phone is required. |
phone | string | no | at most 50 characters may be null | Phone number for call-backs. Email or phone is required. |
organization | string | no | at most 255 characters may be null | Name of the institution, if the request comes from one. |
postal_address | Address | no | may be null | Postal address of the requesting person or institution for the invoice; the operator uses it when creating a new customer. If any part is given, street and city are required. |
Passenger (inquiry) Passenger
A person to be transported; becomes one item of the inquiry.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
first_name | string | no | at most 100 characters may be null | First name of the passenger. |
last_name | string | no | at most 100 characters may be null | Last name of the passenger. |
birth_year | integer | no | 1900–2100 may be null | Year of birth — helps the operator to tell passengers with the same name apart. |
pickup | Address | no | may be null | Where the passenger is picked up. If any part is given, street and city are required. |
dropoff | Address | no | may be null | Where the passenger is taken, e.g. a school, workshop or day care centre. If any part is given, street and city are required. |
trip_kind | string | no | one of: single, recurringmay be null | single for a one-off trip, recurring for a regular transport (e.g. every school day). |
requested_date | string | no | may be null | Desired date as YYYY-MM-DD (a real calendar day); for a recurring transport the first day. |
requested_time_window | string | no | at most 80 characters may be null | Desired time as free text, e.g. 07:30 or arrival by 8:00. |
return_trip | boolean | no | may be null | true if a return trip is wanted as well. |
return_time_window | string | no | at most 80 characters may be null | Desired time of the return trip as free text. Rejected together with return_trip: false. |
vehicle_preference | string | no | one of: car, van, minibus, bus, special_vehiclemay be null | Preferred vehicle class. A wheelchair ramp is not a preference: set needs.wheelchair instead. |
needs | Needs | no | may be null | What the passenger needs during the trip. Health data (Art. 9 GDPR): send only with consent. Missing or null means none. |
payer_hint | string | no | at most 200 characters may be null | Who is expected to pay, as free text (e.g. youth welfare office, health insurance). The operator checks it. |
Address Address
An address. Street and city are required as soon as any part is given; house number and postal code are optional.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
street | string | no | at most 255 characters may be null | Street name. |
house_number | string | no | at most 20 characters may be null | House number, with suffix if any (12a). |
zip | string | no | at most 20 characters may be null | Postal code. |
city | string | no | at most 100 characters may be null | Town or city. |
Needs Needs
Needs during the trip. Every flag is optional; true marks a need, missing or false means no.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
wheelchair | boolean | no | may be null | Travels seated in the wheelchair (needs a wheelchair space and a ramp or lift). |
wheelchair_transferable | boolean | no | may be null | Uses a wheelchair but can move to a regular seat for the trip. |
rollator | boolean | no | may be null | Brings a rollator. |
stretcher | boolean | no | may be null | Travels lying on a stretcher. |
companion | boolean | no | may be null | Needs an escort provided by the transport service. |
boarding_assistance | boolean | no | may be null | Needs help getting in and out of the vehicle. |
private_companion | boolean | no | may be null | A relative or private companion rides along and takes a seat. |
other | string | no | at most 500 characters may be null | Other needs as free text. |
Consent Consent
Consent your system obtained from the person before sending (required).
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
given | boolean | yes | exactly true | Must be true: the person agreed that the operator processes the data, including the needs (health data). |
text_version | string | yes | 1–36 characters | Version of the consent text the person saw, e.g. 2026-11. Stored with the inquiry as proof. |
given_at | string | no | format date-timemay be null | When consent was given (ISO 8601 with offset). Defaults to the time of receipt; must not be in the future. |
Customer Customer
A customer of the operator: institution, authority, cost bearer or private person.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
id | string | yes | ID of the customer. | |
number | string | yes | may be null | Customer number assigned by the operator. |
name | string | yes | Name of the customer, e.g. the institution or the person. | |
type | string | yes | one of: agency, carrier, institution, private, caretakermay be null | agency (public authority, e.g. youth welfare office), carrier (cost bearer, e.g. health insurance), institution (e.g. workshop, school, day care centre), private (private person), caretaker (legal guardian). null when not set. |
status | string | yes | one of: active, inactive, archivedmay be null | active, inactive or archived. null when not set. |
email | string | yes | may be null | Email address. |
phone | string | yes | may be null | Phone number. |
fax | string | yes | may be null | Fax number. |
website | string | yes | may be null | Website. |
postal_address | StoredAddress | yes | may be null | Postal address, e.g. for invoices. |
physical_address | StoredAddress | yes | may be null | Physical address, if it differs from the postal address — e.g. where passengers are dropped off. |
notes | string | yes | may be null | Notes of the operator. |
created_at | string | yes | may be null | When the customer was created (ISO 8601 with offset). |
updated_at | string | yes | When the customer was last changed (ISO 8601 with offset). | |
billing | CustomerBilling | no | Billing data. Only with include=billing and the scope accounting.read. |
Billing data (customer) CustomerBilling
Billing data. Only with include=billing and the scope accounting.read.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
tax_id | string | yes | may be null | Tax number. |
vat_id | string | yes | may be null | VAT ID. |
buyer_reference | string | yes | may be null | Buyer reference for e-invoices (Leitweg-ID in Germany). |
payment_method | string | yes | may be null | Payment method as entered by the operator, free text. |
bank_account | BankAccount | yes | may be null | Bank account; null when none is stored. |
Bank account BankAccount
Bank account as stored. Empty parts are null.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
account_holder | string | yes | may be null | Account holder. |
bank_name | string | yes | may be null | Name of the bank. |
iban | string | yes | may be null | IBAN. |
bic | string | yes | may be null | BIC. |
Stored address StoredAddress
Address as stored in Fleetiva. Empty parts are null.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
street | string | yes | may be null | Street. |
house_number | string | yes | may be null | House number. |
zip | string | yes | may be null | Postal code. |
city | string | yes | may be null | City. |
country | string | yes | may be null | Country as stored, e.g. DE or Deutschland. |
address_line_2 | string | yes | may be null | Address supplement, e.g. building or floor. |
po_box | string | yes | may be null | PO box, instead of a street. |
department | string | yes | may be null | Department. |
attention | string | yes | may be null | For the attention of a person. |
reference | string | yes | may be null | Reference of the addressee, e.g. a file number. |
Passenger (master data) PassengerRecord
A passenger of the transport service.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
id | string | yes | ID of the passenger. | |
number | string | yes | may be null | Passenger number assigned by the operator. |
status | string | yes | one of: active, inactive, archivedmay be null | active, inactive or archived. null when not set. |
self_payer | boolean | yes | The passenger pays for their trips themselves: they belong to the system customer for self-payers (customer.number SELBSTZAHLER), however often they ride. | |
salutation | string | yes | one of: mr, ms, diversemay be null | mr, ms or diverse. null when not set. |
first_name | string | yes | may be null | First name. |
last_name | string | yes | Last name. | |
date_of_birth | string | yes | may be null | Date of birth (YYYY-MM-DD). |
email | string | yes | may be null | Email address. |
phone_numbers | list of object | yes | Phone numbers with a label, e.g. mobile or mother. Empty list when none. | |
phone_numbers[]. | string | yes | may be null | Whose number, e.g. mother. |
phone_numbers[]. | string | yes | Phone number. | |
home_address | StreetAddress | yes | may be null | Home address — where the passenger is usually picked up. |
customer | object | yes | may be null | The customer (cost bearer) the passenger belongs to. Read the customer itself to sync it. |
customer. | string | yes | ID of the customer. | |
customer. | string | yes | Name of the customer at the time of reading. | |
customer. | string | yes | may be null | Customer number. |
reference_codes | list of object | yes | Reference codes of cost bearers, as printed on documents. Empty list when none. | |
reference_codes[]. | string | yes | Kind of reference, e.g. approval number. | |
reference_codes[]. | string | yes | Value. | |
needs | PassengerNeeds | yes | What the passenger needs on the trip — vehicle, seat and help. Same keys as needs of an inquiry. | |
seat_preference | string | yes | one of: no_preference, front, rearmay be null | front, rear or no_preference. null when not recorded. |
boarding_minutes | number | yes | may be null | Minutes the passenger usually needs to board. |
pickup_earliest | string | yes | may be null | Usual earliest pickup time (HH:MM, local time of the operator). |
pickup_latest | string | yes | may be null | Usual latest pickup time (HH:MM, local time of the operator). |
notes | string | yes | may be null | Notes of the operator. |
created_at | string | yes | may be null | When the passenger was created (ISO 8601 with offset). |
updated_at | string | yes | When the passenger was last changed (ISO 8601 with offset). | |
health | PassengerHealth | no | Health data (Art. 9 GDPR). Only for API keys with the scope health_data and include=health. Every passenger delivered with this group is logged for the operator. | |
billing | PassengerBilling | no | Billing data. Only with include=billing and the scope accounting.read. |
Needs (passenger) PassengerNeeds
What the passenger needs on the trip — vehicle, seat and help. Same keys as needs of an inquiry.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
wheelchair | boolean | yes | Travels seated in the wheelchair (needs a wheelchair space and a ramp or lift). false when not recorded. | |
wheelchair_transferable | boolean | yes | Uses a wheelchair but can move to a regular seat for the trip. false when not recorded. | |
rollator | boolean | yes | Brings a rollator. false when not recorded. | |
walker | boolean | yes | Uses a walking frame. false when not recorded. | |
cane | boolean | yes | Uses a walking stick. false when not recorded. | |
ambulatory | boolean | yes | Can walk without help. false when not recorded. | |
stretcher | boolean | yes | Travels lying on a stretcher. false when not recorded. | |
oxygen | boolean | yes | Needs oxygen during the trip (needs an oxygen-equipped vehicle). false when not recorded. | |
companion | boolean | yes | Needs an escort provided by the transport service. false when not recorded. | |
boarding_assistance | boolean | yes | Needs help getting in and out of the vehicle. false when not recorded. | |
assistance | boolean | yes | Needs support during the trip. false when not recorded. | |
service_animal | boolean | yes | Travels with an assistance animal. false when not recorded. | |
bicycle | boolean | yes | Brings a bicycle. false when not recorded. |
Health data (passenger) PassengerHealth
Health data (Art. 9 GDPR). Only for API keys with the scope health_data and include=health. Every passenger delivered with this group is logged for the operator.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
medical_notes | string | yes | may be null | Medical notes for the trip. |
allergies | string | yes | may be null | Allergies. |
emergency_contact | EmergencyContact | yes | may be null | Emergency contact; null when none is stored. |
needs_notes | string | yes | may be null | Free text about the needs, e.g. how to help with boarding. |
autism | boolean | yes | The passenger is autistic. false when not recorded. | |
visual_impairment | boolean | yes | The passenger has a visual impairment. false when not recorded. | |
cognitive_impairment | boolean | yes | The passenger has a cognitive impairment. false when not recorded. |
Emergency contact EmergencyContact
Emergency contact as stored. Empty parts are null.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
name | string | yes | may be null | Name of the contact person. |
relationship | string | yes | may be null | Relationship to the passenger, e.g. mother. |
phone | string | yes | may be null | Phone number. |
Billing data (passenger) PassengerBilling
Billing data. Only with include=billing and the scope accounting.read.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
name | string | yes | may be null | Name on invoices, if it differs from the passenger. |
address | StreetAddress | yes | may be null | Billing address; null when none is stored. If neither name nor address is set, documents are addressed to the passenger at home_address. |
default_tax_rate | number | yes | may be null | Default VAT rate in percent for documents of this passenger. |
Address StreetAddress
Address with street, house number, postal code, city and country. Empty parts are null.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
street | string | yes | may be null | Street. |
house_number | string | yes | may be null | House number. |
zip | string | yes | may be null | Postal code. |
city | string | yes | may be null | City. |
country | string | yes | may be null | Country as stored, e.g. DE or Deutschland. |
Deleted record DeletedRecord
A record that no longer exists. Remove it from your copy.
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
id | string | yes | ID of the deleted record. | |
deleted_at | string | yes | When it was deleted (ISO 8601 with offset). |
Error response Problem
Error response (RFC 9457, application/problem+json).
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
type | string | yes | Stable identifier of the problem: tag:fleetiva.de,2026:api/problems/<code>. | |
title | string | yes | Short English summary. | |
status | integer | yes | -9007199254740991–9007199254740991 | HTTP status code, same as the response status. |
code | string | yes | one of: unauthorized, forbidden, access_inactive, not_found, invalid_input, idempotency_key_reused, payload_too_large, unsupported_media_type, rate_limited, unavailable | Machine-readable error code — branch on this. |
request_id | string | yes | ID of this request, also in the X-Request-Id header. Quote it when you contact support. | |
issues | list of object | no | Only with invalid_input: what is wrong where. Never repeats the submitted values. | |
issues[]. | string | yes | Field path such as passengers.0.pickup.city or idempotency_key; empty for the whole body. | |
issues[]. | string | yes | one of: required, too_short, too_long, too_few, too_many, too_small, too_large, invalid_type, invalid_value, invalid_format, unknown_field, invalid_json, invalid_characters, contact_required, address_incomplete, invalid_date, in_future, return_time_requires_return_trip, invalid_cursor, sync_window_exceeded | Fixed reason code — branch on this. The list only grows; treat an unknown code like invalid_value. |
issues[]. | number | no | With too_short, too_long, too_few, too_many, too_small, too_large: the limit that was broken. | |
retry_after_seconds | integer | no | 1–9007199254740991 | Only with rate_limited: seconds to wait, same as the Retry-After header. |