openapi: 3.0.3
info:
  title: 'Primos LP-API v1'
  description: 'REST-Schnittstelle für Landingpages zur Angebots- und Buchungsanfrage von Fahrten bei Primos.'
  version: 1.0.0
servers:
  - url: 'https://primos-fahrservice.de'
tags:
  - name: Angebote
    description: ''
  - name: Authentifizierung
    description: ''
  - name: Buchungen
    description: ''
  - name: Fahrzeuge
    description: ''
  - name: Flughäfen
    description: ''
  - name: Status
    description: ''
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: 'Jeder Zugang gehört zu einer <b>Auftragsquelle</b>. Das Bearer-Token wird von Primos im Admin-Bereich erstellt und verwaltet. Token besitzen Berechtigungen: <code>quote</code> (Angebote) und <code>book</code> (Buchungen).<br><br><b>Origin-Beschränkung (optional):</b> Für eine Auftragsquelle kann eine Liste erlaubter Origins hinterlegt sein. Ist sie gesetzt, werden <b>Browser-Anfragen</b> nur von einer dieser Origins akzeptiert (sonst <code>403</code>); Anfragen ohne <code>Origin</code>-Header (Server-zu-Server) sind nicht betroffen. Ist keine Liste hinterlegt, gilt keine Einschränkung. Bei Bedarf teilt Primos die freigeschalteten Origins mit.'
security:
  -
    default: []
paths:
  /api/v1/quotes:
    post:
      summary: 'Angebot anfragen'
      operationId: angebotAnfragen
      description: "Berechnet für die angegebene Strecke die verfügbaren Fahrzeuge samt Distanz und Preisen\nund legt ein zeitlich begrenztes Angebot an.\n\n**Locator-Regeln (identisch zum Website-Rechner):** Jede Seite (`pickup`/`destination`) ist\nentweder eine **Adresse** oder ein **Flughafen**.\n\n- **Adress-Seite:** `place_id` **(Pflicht, aus Google Places Autocomplete)** plus\n  `formatted_address`, `street` und `house_number`. Es wird ausschließlich über die `place_id`\n  geroutet – reine Koordinaten oder Freitext-Adressen werden nicht akzeptiert, damit Distanz und\n  Preis exakt mit der Website übereinstimmen und keine Abweichungen entstehen.\n- **Flughafen-Seite:** ausschließlich `airport_iata` aus `GET /api/v1/airports`. place_id,\n  Koordinaten und Anzeigename löst Primos serverseitig auf.\n\nBei `type=airport` muss **genau eine** Seite ein `airport_iata` enthalten (die andere ist eine\nAdress-Seite); bei `type=transfer` sind beide Seiten Adress-Seiten und `airport_iata` ist nicht erlaubt."
      parameters: []
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    quote_id: 9b1f2c34-1a2b-4c3d-8e9f-000000000000
                    type: transfer
                    distance_km: 42
                    roundtrip: true
                    currency: EUR
                    expires_at: '2026-07-15T14:30:00+02:00'
                    vehicles:
                      -
                        vehicle_id: 3
                        name: 'Business Van'
                        passengers: 7
                        luggage: 7
                        child_seats: 3
                        image: vehicles/van.jpg
                        price:
                          amount: 189.0
                          currency: EUR
                          roundtrip_included: true
                  meta:
                    quote_token: einmalig-sichtbarer-token
                properties:
                  data:
                    type: object
                    properties:
                      quote_id:
                        type: string
                        example: 9b1f2c34-1a2b-4c3d-8e9f-000000000000
                      type:
                        type: string
                        example: transfer
                      distance_km:
                        type: integer
                        example: 42
                      roundtrip:
                        type: boolean
                        example: true
                      currency:
                        type: string
                        example: EUR
                      expires_at:
                        type: string
                        example: '2026-07-15T14:30:00+02:00'
                      vehicles:
                        type: array
                        example:
                          -
                            vehicle_id: 3
                            name: 'Business Van'
                            passengers: 7
                            luggage: 7
                            child_seats: 3
                            image: vehicles/van.jpg
                            price:
                              amount: 189
                              currency: EUR
                              roundtrip_included: true
                        items:
                          type: object
                          properties:
                            vehicle_id:
                              type: integer
                              example: 3
                            name:
                              type: string
                              example: 'Business Van'
                            passengers:
                              type: integer
                              example: 7
                            luggage:
                              type: integer
                              example: 7
                            child_seats:
                              type: integer
                              example: 3
                            image:
                              type: string
                              example: vehicles/van.jpg
                            price:
                              type: object
                              properties:
                                amount:
                                  type: number
                                  example: 189.0
                                currency:
                                  type: string
                                  example: EUR
                                roundtrip_included:
                                  type: boolean
                                  example: true
                  meta:
                    type: object
                    properties:
                      quote_token:
                        type: string
                        example: einmalig-sichtbarer-token
      tags:
        - Angebote
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  description: 'Fahrttyp. Erlaubt: `transfer` (Adresse → Adresse) oder `airport` (Adresse ↔ Flughafen).'
                  example: airport
                  enum:
                    - transfer
                    - airport
                pickup:
                  type: object
                  description: 'Abholort. Entweder eine Adresse (place_id + formatted_address + street + house_number) oder – nur bei `airport` – ein Flughafen (airport_iata).'
                  example: []
                  properties:
                    airport_iata:
                      type: string
                      description: 'IATA-Code aus `GET /api/v1/airports`, wenn der Abholort ein Flughafen ist. Nur bei `type=airport` und genau auf einer der beiden Seiten. Wert unverändert übernehmen (case-sensitive). Must match an existing stored value.'
                      example: fra
                      nullable: true
                    place_id:
                      type: string
                      description: 'Google-Place-ID des Abholorts, unverändert aus Google Places Autocomplete. Pflicht für Adress-Seiten. Nicht angeben, wenn die Seite ein Flughafen ist. This field is required when <code>pickup.airport_iata</code> is not present.'
                      example: ChIJ7cv00DwsDogRAMDACa2m4K8
                    formatted_address:
                      type: string
                      description: 'Von Google gelieferte, vollständige Adresse (Anzeige & CRM). Pflicht für Adress-Seiten. This field is required when <code>pickup.airport_iata</code> is not present. Must not be greater than 500 characters.'
                      example: 'Bahnhofstraße 1, 65552 Limburg an der Lahn, Deutschland'
                    street:
                      type: string
                      description: 'Straße (aus den Place-Details). Pflicht für Adress-Seiten. This field is required when <code>pickup.airport_iata</code> is not present. Must not be greater than 255 characters.'
                      example: Bahnhofstraße
                    house_number:
                      type: string
                      description: 'Hausnummer (aus den Place-Details). Pflicht für Adress-Seiten. This field is required when <code>pickup.airport_iata</code> is not present. Must not be greater than 50 characters.'
                      example: '1'
                    postal_code:
                      type: string
                      description: 'Optionale Postleitzahl. Must not be greater than 20 characters.'
                      example: '65552'
                      nullable: true
                    city:
                      type: string
                      description: 'Optionaler Ort. Must not be greater than 255 characters.'
                      example: 'Limburg an der Lahn'
                      nullable: true
                destination:
                  type: object
                  description: 'Zielort. Gleiche Regeln wie pickup: Adresse (place_id + formatted_address + street + house_number) oder – nur bei `airport` – ein Flughafen (airport_iata).'
                  example: []
                  properties:
                    airport_iata:
                      type: string
                      description: 'IATA-Code aus `GET /api/v1/airports`, wenn das Ziel ein Flughafen ist. Nur bei `type=airport` und genau auf einer der beiden Seiten. Must match an existing stored value.'
                      example: fra
                      nullable: true
                    place_id:
                      type: string
                      description: 'Google-Place-ID des Ziels aus Google Places Autocomplete. Pflicht für Adress-Seiten. Nicht angeben, wenn die Seite ein Flughafen ist. This field is required when <code>destination.airport_iata</code> is not present.'
                      example: ChIJeflCVHQLvUcRMfP4IU3YdIo
                    formatted_address:
                      type: string
                      description: 'Von Google gelieferte, vollständige Adresse. Pflicht für Adress-Seiten. This field is required when <code>destination.airport_iata</code> is not present. Must not be greater than 500 characters.'
                      example: 'Zeil 1, 60313 Frankfurt am Main, Deutschland'
                    street:
                      type: string
                      description: 'Straße (aus den Place-Details). Pflicht für Adress-Seiten. This field is required when <code>destination.airport_iata</code> is not present. Must not be greater than 255 characters.'
                      example: Zeil
                    house_number:
                      type: string
                      description: 'Hausnummer (aus den Place-Details). Pflicht für Adress-Seiten. This field is required when <code>destination.airport_iata</code> is not present. Must not be greater than 50 characters.'
                      example: '1'
                    postal_code:
                      type: string
                      description: 'Optionale Postleitzahl. Must not be greater than 20 characters.'
                      example: '60313'
                      nullable: true
                    city:
                      type: string
                      description: 'Optionaler Ort. Must not be greater than 255 characters.'
                      example: 'Frankfurt am Main'
                      nullable: true
                pickup_time:
                  type: string
                  description: 'Abholzeitpunkt (ISO 8601), muss in der Zukunft liegen. Must be a valid date. Must be a date after <code>now</code>.'
                  example: '2026-07-10T14:30:00+02:00'
                roundtrip:
                  type: boolean
                  description: 'true für Hin- und Rückfahrt.'
                  example: false
                return_time:
                  type: string
                  description: 'Rückfahrt-Zeitpunkt (ISO 8601), Pflicht bei roundtrip=true, muss nach pickup_time liegen. This field is required when <code>roundtrip</code> is <code>true</code>. Must be a valid date. Must be a date after <code>pickup_time</code>.'
                  example: null
                  nullable: true
                passengers:
                  type: integer
                  description: 'Anzahl Passagiere (1–99). Must be at least 1. Must not be greater than 99.'
                  example: 1
                child_seats:
                  type: integer
                  description: 'Anzahl Kindersitze (0–99). Must be at least 0. Must not be greater than 99.'
                  example: 0
                  nullable: true
                flight_number:
                  type: string
                  description: 'Optionale Flugnummer. Must not be greater than 20 characters.'
                  example: LH123
                  nullable: true
                options:
                  type: object
                  description: ''
                  example: null
                  properties:
                    sign_service:
                      type: boolean
                      description: 'true bucht den Schilderservice (Abholung mit Namensschild).'
                      example: false
              required:
                - type
                - pickup
                - destination
                - pickup_time
                - passengers
  '/api/v1/quotes/{id}':
    get:
      summary: 'Angebot abrufen'
      operationId: angebotAbrufen
      description: 'Liefert ein zuvor erstelltes Angebot erneut (ohne das einmalige Token).'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    quote_id: 9b1f2c34-1a2b-4c3d-8e9f-000000000000
                    type: transfer
                    distance_km: 42
                    roundtrip: true
                    currency: EUR
                    expires_at: '2026-07-15T14:30:00+02:00'
                    vehicles:
                      -
                        vehicle_id: 3
                        name: 'Business Van'
                        passengers: 7
                        luggage: 7
                        child_seats: 3
                        image: vehicles/van.jpg
                        price:
                          amount: 189.0
                          currency: EUR
                          roundtrip_included: true
                properties:
                  data:
                    type: object
                    properties:
                      quote_id:
                        type: string
                        example: 9b1f2c34-1a2b-4c3d-8e9f-000000000000
                      type:
                        type: string
                        example: transfer
                      distance_km:
                        type: integer
                        example: 42
                      roundtrip:
                        type: boolean
                        example: true
                      currency:
                        type: string
                        example: EUR
                      expires_at:
                        type: string
                        example: '2026-07-15T14:30:00+02:00'
                      vehicles:
                        type: array
                        example:
                          -
                            vehicle_id: 3
                            name: 'Business Van'
                            passengers: 7
                            luggage: 7
                            child_seats: 3
                            image: vehicles/van.jpg
                            price:
                              amount: 189
                              currency: EUR
                              roundtrip_included: true
                        items:
                          type: object
                          properties:
                            vehicle_id:
                              type: integer
                              example: 3
                            name:
                              type: string
                              example: 'Business Van'
                            passengers:
                              type: integer
                              example: 7
                            luggage:
                              type: integer
                              example: 7
                            child_seats:
                              type: integer
                              example: 3
                            image:
                              type: string
                              example: vehicles/van.jpg
                            price:
                              type: object
                              properties:
                                amount:
                                  type: number
                                  example: 189.0
                                currency:
                                  type: string
                                  example: EUR
                                roundtrip_included:
                                  type: boolean
                                  example: true
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Models\Quote].'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Models\Quote].'
      tags:
        - Angebote
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the quote.'
        example: 019f435c-eb4e-732a-8a53-03b2e1a7f6f6
        required: true
        schema:
          type: string
      -
        in: path
        name: quote
        description: 'Die quote_id des Angebots.'
        example: 9b1f2c34-1a2b-4c3d-8e9f-000000000000
        required: true
        schema:
          type: string
  /api/v1/me:
    get:
      summary: 'Eigene Auftragsquelle'
      operationId: eigeneAuftragsquelle
      description: 'Gibt die zum Token gehörende Auftragsquelle samt Berechtigungen zurück – nützlich als Token-Check.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    name: 'LP Flughafentransfer FFM'
                    slug: lp-ffm
                    contact_email: dev@lp.example.com
                    is_active: true
                    abilities:
                      - quote
                      - book
                properties:
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                        example: 'LP Flughafentransfer FFM'
                      slug:
                        type: string
                        example: lp-ffm
                      contact_email:
                        type: string
                        example: dev@lp.example.com
                      is_active:
                        type: boolean
                        example: true
                      abilities:
                        type: array
                        example:
                          - quote
                          - book
                        items:
                          type: string
      tags:
        - Authentifizierung
  /api/v1/bookings:
    post:
      summary: 'Fahrt buchen'
      operationId: fahrtBuchen
      description: "Bucht ein zuvor erstelltes Angebot und legt im CRM eine Fahrt an (Status „Anfrage\"),\nwodurch die Automatismen (Benachrichtigungen, Kalender) ausgelöst werden. Der Preis\nwird immer aus dem Angebot übernommen – ein im Request gesendeter Preis wird ignoriert.\n\nOptionaler Header `Idempotency-Key`: Wird derselbe Schlüssel erneut gesendet, wird die\nbereits erstellte Buchung zurückgegeben (Status 200 statt 201), ohne eine zweite Fahrt anzulegen."
      parameters:
        -
          in: header
          name: Idempotency-Key
          description: ''
          example: abc-123
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    booking_id: 12345
                    status: inquiry
                    type: transfer
                    vehicle:
                      vehicle_id: 3
                      name: 'Business Van'
                    pickup_time: '2026-07-15T14:30:00+02:00'
                    roundtrip: true
                    external_reference: LP-ORDER-5567
                    price:
                      amount: 189.0
                      currency: EUR
                    created_at: '2026-07-08T12:00:00+02:00'
                properties:
                  data:
                    type: object
                    properties:
                      booking_id:
                        type: integer
                        example: 12345
                      status:
                        type: string
                        example: inquiry
                      type:
                        type: string
                        example: transfer
                      vehicle:
                        type: object
                        properties:
                          vehicle_id:
                            type: integer
                            example: 3
                          name:
                            type: string
                            example: 'Business Van'
                      pickup_time:
                        type: string
                        example: '2026-07-15T14:30:00+02:00'
                      roundtrip:
                        type: boolean
                        example: true
                      external_reference:
                        type: string
                        example: LP-ORDER-5567
                      price:
                        type: object
                        properties:
                          amount:
                            type: number
                            example: 189.0
                          currency:
                            type: string
                            example: EUR
                      created_at:
                        type: string
                        example: '2026-07-08T12:00:00+02:00'
        409:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Angebot ist abgelaufen oder wurde bereits gebucht.'
                properties:
                  message:
                    type: string
                    example: 'Angebot ist abgelaufen oder wurde bereits gebucht.'
      tags:
        - Buchungen
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quote_id:
                  type: string
                  description: 'Must be a valid UUID. Must match an existing stored value.'
                  example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed
                quote_token:
                  type: string
                  description: ''
                  example: architecto
                vehicle_id:
                  type: integer
                  description: ''
                  example: 16
                customer:
                  type: object
                  description: ''
                  example: []
                  properties:
                    firstname:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: b
                    lastname:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: 'n'
                    email:
                      type: string
                      description: 'Must be a valid email address. Must not be greater than 255 characters.'
                      example: ashly64@example.com
                    phone:
                      type: string
                      description: 'Must not be greater than 50 characters.'
                      example: v
                  required:
                    - firstname
                    - lastname
                    - email
                    - phone
                payment_method:
                  type: string
                  description: ''
                  example: paypal
                  enum:
                    - bar
                    - paypal
                    - ec
                    - invoice
                  nullable: true
                billing:
                  type: object
                  description: ''
                  example: null
                  properties:
                    different:
                      type: boolean
                      description: ''
                      example: true
                      nullable: true
                    name:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: d
                      nullable: true
                    street:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: l
                      nullable: true
                    house_number:
                      type: string
                      description: 'Must not be greater than 50 characters.'
                      example: j
                      nullable: true
                    postal_code:
                      type: string
                      description: 'Must not be greater than 20 characters.'
                      example: nikhwaykcmyuwpwl
                      nullable: true
                    city:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: v
                      nullable: true
                  nullable: true
                notes:
                  type: string
                  description: 'Must not be greater than 2000 characters.'
                  example: q
                  nullable: true
                reference:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: w
                  nullable: true
              required:
                - quote_id
                - quote_token
                - vehicle_id
                - customer
  '/api/v1/bookings/{drive_id}':
    get:
      summary: 'Buchungsstatus abrufen'
      operationId: buchungsstatusAbrufen
      description: 'Liefert den aktuellen Status einer Buchung (z. B. inquiry, confirmed, booked, done).'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    booking_id: 12345
                    status: confirmed
                    type: transfer
                    vehicle:
                      vehicle_id: 3
                      name: 'Business Van'
                    pickup_time: '2026-07-15T14:30:00+02:00'
                    roundtrip: true
                    external_reference: LP-ORDER-5567
                    price:
                      amount: 189.0
                      currency: EUR
                    created_at: '2026-07-08T12:00:00+02:00'
                properties:
                  data:
                    type: object
                    properties:
                      booking_id:
                        type: integer
                        example: 12345
                      status:
                        type: string
                        example: confirmed
                      type:
                        type: string
                        example: transfer
                      vehicle:
                        type: object
                        properties:
                          vehicle_id:
                            type: integer
                            example: 3
                          name:
                            type: string
                            example: 'Business Van'
                      pickup_time:
                        type: string
                        example: '2026-07-15T14:30:00+02:00'
                      roundtrip:
                        type: boolean
                        example: true
                      external_reference:
                        type: string
                        example: LP-ORDER-5567
                      price:
                        type: object
                        properties:
                          amount:
                            type: number
                            example: 189.0
                          currency:
                            type: string
                            example: EUR
                      created_at:
                        type: string
                        example: '2026-07-08T12:00:00+02:00'
      tags:
        - Buchungen
    parameters:
      -
        in: path
        name: drive_id
        description: 'The ID of the drive.'
        example: 40
        required: true
        schema:
          type: integer
      -
        in: path
        name: drive
        description: 'Die booking_id (Fahrt-ID).'
        example: 12345
        required: true
        schema:
          type: integer
  /api/v1/vehicles:
    get:
      summary: Fahrzeugkatalog
      operationId: fahrzeugkatalog
      description: 'Liefert die aktuell angebotenen Fahrzeuge (ohne Preise – Preise entstehen erst im Angebot).'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      vehicle_id: 3
                      name: 'Business Van'
                      description: 'Bis zu 7 Personen'
                      passengers: 7
                      luggage: 7
                      child_seats: 3
                      image: vehicles/van.jpg
                    -
                      vehicle_id: 1
                      name: 'Business Limousine'
                      description: 'Mercedes E-Klasse o. ä.'
                      passengers: 3
                      luggage: 3
                      child_seats: 1
                      image: vehicles/limo.jpg
                properties:
                  data:
                    type: array
                    example:
                      - vehicle_id: 3
                        name: 'Business Van'
                        description: 'Bis zu 7 Personen'
                        passengers: 7
                        luggage: 7
                        child_seats: 3
                        image: vehicles/van.jpg
                      - vehicle_id: 1
                        name: 'Business Limousine'
                        description: 'Mercedes E-Klasse o. ä.'
                        passengers: 3
                        luggage: 3
                        child_seats: 1
                        image: vehicles/limo.jpg
                    items:
                      type: object
                      properties:
                        vehicle_id:
                          type: integer
                          example: 3
                        name:
                          type: string
                          example: 'Business Van'
                        description:
                          type: string
                          example: 'Bis zu 7 Personen'
                        passengers:
                          type: integer
                          example: 7
                        luggage:
                          type: integer
                          example: 7
                        child_seats:
                          type: integer
                          example: 3
                        image:
                          type: string
                          example: vehicles/van.jpg
      tags:
        - Fahrzeuge
  /api/v1/airports:
    get:
      summary: Flughäfen
      operationId: flughfen
      description: "Liefert die aktuell bedienten Flughäfen. Der zurückgegebene `iata`-Wert ist exakt der Wert,\nder bei `type=airport`-Angeboten als `pickup.airport_iata` bzw. `destination.airport_iata`\ngesendet werden muss. Bitte diese Liste als einzige Quelle für gültige IATA-Codes nutzen und\ndie Werte unverändert übernehmen (der Vergleich erfolgt case-sensitive) – so entstehen keine\nAbweichungen zwischen Landingpage und Angebotsanfrage.\n\nDie mitgelieferten Koordinaten (`lat`/`lng`) und die Google-`place_id` entsprechen dem, was\nPrimos serverseitig für die Distanzberechnung verwendet, und können für ein eigenes\nGoogle-Maps-Autocomplete genutzt werden."
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      iata: fra
                      name: 'Frankfurt International Airport'
                      lat: 50.0353788
                      lng: 8.5518391
                      place_id: ChIJeflCVHQLvUcRMfP4IU3YdIo
                properties:
                  data:
                    type: array
                    example:
                      - iata: fra
                        name: 'Frankfurt International Airport'
                        lat: 50.0353788
                        lng: 8.5518391
                        place_id: ChIJeflCVHQLvUcRMfP4IU3YdIo
                    items:
                      type: object
                      properties:
                        iata:
                          type: string
                          example: fra
                        name:
                          type: string
                          example: 'Frankfurt International Airport'
                        lat:
                          type: number
                          example: 50.0353788
                        lng:
                          type: number
                          example: 8.5518391
                        place_id:
                          type: string
                          example: ChIJeflCVHQLvUcRMfP4IU3YdIo
      tags:
        - Flughäfen
  /api/v1/health:
    get:
      summary: 'Public liveness endpoint.'
      operationId: publicLivenessEndpoint
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: ok
                  api: primos-lp
                  version: v1
                properties:
                  status:
                    type: string
                    example: ok
                  api:
                    type: string
                    example: primos-lp
                  version:
                    type: string
                    example: v1
      tags:
        - Status
      security: []
