Complete API Feature Catalogue
Every feature area exposed by the Symfony admin, member, and partner APIs, explained by purpose.
This page is the map of the Symfony API. It explains why each group exists and what kind of work it performs. Exact methods, fields, and response schemas come from the running OpenAPI document, because those details change more often than the business purpose.
Correct route boundaries
There is no /api/v1/admin or /api/v1/mobile prefix in this repository.
- staff endpoints normally begin with
/api/v1; - member endpoints begin with
/api; - the two applications run as separate service contexts;
- Swagger UI is available at
/docsin the admin context; - machine-readable OpenAPI is available at
/docs.json.
Protected calls use a bearer token. Login, health checks, provider webhooks, and selected public/integration routes have their own access rules; always confirm the generated specification and security configuration.
Admin API: access and platform control
| Route group | Why it exists | Main capabilities |
|---|---|---|
/api/v1/auth | Let staff sign in and recover access. | Login, password reset, account token. |
/api/v1/users | Control who may use the staff portal. | List/get/create/update/deactivate users, current user, available roles. |
/api/v1/app-versions | Control client update guidance. | Read version settings and update iOS/Android thresholds. |
/healthcheck | Let operations verify that the HTTP application responds. | Lightweight health response; not proof that every provider or job works. |
/gitlab | Return configured runtime feature flags. | Read flag state used by the current environment. |
Admin API: members and organizations
| Route group | Why it exists | Main capabilities |
|---|---|---|
/api/v1/customers | Manage a member as one operational and financial account. | Full/short lists, member with bookings/requests, create/update/deactivate, ratings, newsletter filters, fuel/engine/cash-point changes, invoice cancellation. |
/api/v1/companies | Represent operating/legal companies. | List/get/create/update/deactivate. |
/api/v1/regions | Group places, access, currency, and regional settings. | List active names, get/create/update/deactivate, return price categories. |
/api/v1/locations | Represent marinas or collection places. | List active names, get/create/update/deactivate. |
Admin API: fleet and service
| Route group | Why it exists | Main capabilities |
|---|---|---|
/api/v1/boats | Manage physical boats and their operational state. | List/get/create/update/deactivate, active bookings, availability, private/short lists, issues, service data and service check-ins. |
/api/v1/boat-models | Reuse specifications and member information across similar boats. | List/get/create/update/deactivate. |
/api/v1/frogs | Standardize issue categories. | List/get/create/update/deactivate categories. |
/api/v1/checklist-items | Define reusable trip/service checks. | List/get/create/update/deactivate. |
/api/v1/facilities | Define facilities/items used around locations and handover. | List/get/create/update/deactivate. |
/api/v1/extra-services | Define optional services that bookings may use. | List/get/create/update/deactivate. |
/api/v1/phones | Maintain support contact entries. | List/get/create/update/deactivate. |
/api/v1/videos | Maintain tutorial/video records. | List/get/create/update/deactivate. |
/api/v1/files | Resolve uploaded media used by other records. | Get file information by ID. |
Admin API: bookings and requests
| Route group | Why it exists | Main capabilities |
|---|---|---|
/api/v1/bookings | Manage confirmed trips and blocked boat time. | Search/list/get/create/update/partial update/delete/deactivate, status list/current state, check-in/out fields, dashboards, service-request approval/solve, linked issues and history. |
/api/v1/booking-requests | Manage demand that is not yet a confirmed booking. | List/get/create/deactivate, allowed states, set solved/unsolved/cancelled state. |
/api/v1/booking-history | Explain how a booking changed. | Retrieve a history record; booking detail also exposes related history. |
Booking creation, request solving, status change, check-in/out, and payment are different operations. Clients should not collapse them into one generic update.
Admin API: pricing, payments, and reporting
| Route group | Why it exists | Main capabilities |
|---|---|---|
/api/v1/prices | Maintain price records used by booking/category rules. | List/get/create/update/deactivate. |
/api/v1/vats | Maintain company/region tax rules and Stripe tax links. | List/create/update/deactivate and synchronize supported tax data. |
/api/v1/payments | Turn agreed amounts into Stripe invoices/subscriptions and process later outcomes. | Send/cancel invoices, fuel invoice, create/cancel subscription, webhook, currency and interval lists. |
/api/v1/reports | Answer defined operational/financial questions. | Booking, boat, issue, receipt, fuel, member, intracompany, payment, activation, and cash-point reports plus supported exports. |
Admin API: communication and integrations
| Route group | Why it exists | Main capabilities |
|---|---|---|
/api/v1/notifications | Send targeted messages and inspect results. | Newsletter create/send, push, SMS, success/failure lists, push reports, notification list. |
/api/v1/integrations | Show enabled external connections to staff. | List configured integrations and return an approved external URL. |
/api/v1/public/{integrationId} | Let an approved partner work with a limited booking surface. | Create/update/cancel/confirm/get booking, list resources, check occupancy, exchange SSO code. |
The partner API is scoped by its integration ID and credentials. It must not be treated as an unauthenticated copy of the staff API.
Member API
The Symfony member API is intentionally smaller than the compatibility API.
| Path | Why a member client uses it |
|---|---|
/api/login, /serviceLogin, /logout | Start or end a member/service session. |
/api/request-password-reset, /set-new-password | Recover account access. |
/api/device-token | Register a device for push delivery. |
/api/profile | Read the current member profile. |
/api/profile/fuel | Read fuel balance/transaction information. |
/api/profile/engine-hours | Read engine-hour balance/transactions. |
/api/profile/cashpoints | Read cash-point balance/transactions. |
/api/profile/filter-settings | Save preferred location/region/spontaneous filters. |
/api/regions | List regions available to the member. |
/api/locations, /api/locations/{id} | List or open service places. |
/api/customer-company | Return the company context for the signed-in member. |
/api/categories | Return fleet categories for client selection. |
/api/resource-types/{id} | Return one boat/model type. |
/api/resources/{id} | Return one boat. |
/api/bookings | Return the member's bookings, optionally filtered by state. |
/api/bookings/my-trip/{id} | Return one trip belonging to the member. |
/api/bookings/my-trips/{limit}/{offset} | Page through the member's trips. |
/api/tutorials | Return tutorial content. |
/api/app-version | Return update/force-update information. |
/healthcheck | Confirm that the member HTTP context responds. |
Booking creation, cancellation, availability, check-in/out, maps, notifications, and several payment actions still exist in the compatibility API. Do not invent Symfony member endpoints for them.
How to use OpenAPI safely
- Open
/docsin the correct running admin environment. - Find the tag and route group from this catalogue.
- Check method, authentication, path/query parameters, request schema, and all documented response codes.
- Use test data in the correct account/company.
- For a change, update controller attributes, DTO validation, business code, and tests together.
Never copy example bearer tokens, passwords, provider keys, or real member data into documentation or tickets.