Skip to content

Leistungen abrufen ​

Gibt eine paginierte Liste aller Leistungen zurück.

Request ​

GET /api/oauth/v2/resource/services

HeaderWert
AuthorizationBearer {access_token}

Query-Parameter ​

ParameterTypPflichtBeschreibung
offsetintegerNeinStartposition (Standard: 0)
limitintegerNeinAnzahl Ergebnisse (Standard: 50, Max: 200)
categoryIdstring (UUID)NeinNur Leistungen einer bestimmten Kategorie zurückgeben
includeTypesstringNeinKommaseparierte Liste von Typen, die zusätzlich zu regulären Leistungen zurückgegeben werden. Mögliche Werte: service_pause, service_pause_custom, official_holiday, vacation, illness, oder all für alle Typen.
viewstringNeindefault (Vorgabe) oder slim für die schlanke Payload

Erforderlicher Scope: services

Response ​

Erfolg (200 OK) ​

json
{
  "data": [
    {
      "id": "c3d4e5f6-a7b8-9012-cdef-012345678901",
      "name": "Erstordination",
      "description": "Erstmaliger Besuch inklusive Anamnese",
      "duration": 60,
      "durationBefore": 5,
      "durationAfter": 10,
      "directBooking": false,
      "isOnlineBookable": true,
      "showDuration": true,
      "price": 120.00,
      "priceVisible": true,
      "color": "#74AFAD",
      "icon": "stethoscope",
      "sort": 0,
      "type": null,
      "category": {
        "id": "d4e5f6a7-b8c9-0123-defa-123456789012",
        "name": "Allgemein",
        "description": null,
        "color": "#00adba",
        "sort": 0,
        "tenancies": [
          {
            "id": "f0e1d2c3-b4a5-6789-fedc-ba9876543210",
            "name": "Ordination Muster",
            "abbreviation": "OM",
            "color": "#00adba"
          }
        ]
      },
      "tenancies": [
        {
          "id": "f0e1d2c3-b4a5-6789-fedc-ba9876543210",
          "name": "Ordination Muster",
          "abbreviation": "OM",
          "color": "#00adba"
        }
      ]
    }
  ],
  "meta": {
    "total": 25,
    "offset": 0,
    "limit": 50
  }
}

Response-Felder ​

FeldTypBeschreibung
dataArrayListe der Leistungen
data[].idstring (UUID)Eindeutige ID der Leistung
data[].namestringName der Leistung
data[].descriptionstring | nullBeschreibungstext
data[].durationintegerTermindauer für den Kunden in Minuten
data[].durationBeforeintegerVorbereitungszeit in Minuten
data[].durationAfterintegerNachbereitungszeit in Minuten
data[].directBookingbooleanOb die Leistung direkt buchbar ist (ohne Bestätigung)
data[].isOnlineBookablebooleanOb die Leistung online buchbar ist
data[].showDurationbooleanOb die Dauer angezeigt wird
data[].pricenumber | nullPreis (brutto)
data[].priceVisiblebooleanOb der Preis angezeigt wird
data[].colorstringFarbe als Hex-Code (z.B. #74AFAD)
data[].iconstring | nullIcon-Name
data[].sortintegerSortierreihenfolge
data[].typestring | nullnull = normale Leistung. Mögliche Werte: service_pause (Pause), service_pause_custom (Benutzerdefinierte Pause), official_holiday (Feiertag), vacation (Urlaub), illness (Krankenstand)
data[].categoryobject | nullZugeordnete Kategorie
data[].category.idstring (UUID)Eindeutige Kategorie-ID
data[].category.namestringName der Kategorie
data[].category.descriptionstring | nullBeschreibungstext der Kategorie
data[].category.colorstringFarbe der Kategorie als Hex-Code
data[].category.sortintegerSortierreihenfolge der Kategorie
data[].category.tenanciesArrayZugeordnete Mandanten der Kategorie
data[].category.tenancies[].idstring (UUID)Mandanten-ID
data[].category.tenancies[].namestringName des Mandanten
data[].category.tenancies[].abbreviationstringKürzel
data[].category.tenancies[].colorstringFarbe als Hex-Code
data[].tenanciesArrayZugeordnete Mandanten
data[].tenancies[].idstring (UUID)Mandanten-ID
data[].tenancies[].namestringName des Mandanten
data[].tenancies[].abbreviationstringKürzel
data[].tenancies[].colorstringFarbe als Hex-Code
meta.totalintegerGesamtanzahl der Leistungen
meta.offsetintegerAktuelle Startposition
meta.limitintegerAnzahl der zurückgegebenen Ergebnisse

Schlanker Abruf (?view=slim) ​

Mit ?view=slim liefert der Endpoint nur die wichtigsten Felder pro Leistung. Ohne den Parameter bleibt der Abruf unverändert – bestehende Integrationen müssen nichts anpassen.

Wird view mehrfach angegeben, gilt die letzte Angabe – ?view=default&view=slim liefert also die schlanke Antwort.

Im schlanken Abruf schrumpft category auf ein Objekt mit nur id – der Kategoriename ist darin nicht enthalten. Wer ihn braucht, ruft die Kategorien über den eigenen Kategorie-Endpoint ab oder nutzt den Standardabruf. Es fehlen zusätzlich description, die Vor- und Nachbereitungszeiten (durationBefore, durationAfter), die Online-Buchungs-Flags (directBooking, isOnlineBookable, showDuration), priceVisible, color, icon und tenancies.

json
{
  "data": [
    {
      "id": "c3d4e5f6-a7b8-9012-cdef-012345678901",
      "name": "Erstordination",
      "duration": 60,
      "price": 120.00,
      "type": null,
      "sort": 0,
      "category": {
        "id": "d4e5f6a7-b8c9-0123-defa-123456789012"
      }
    }
  ],
  "meta": {
    "total": 25,
    "offset": 0,
    "limit": 50
  }
}
Beispiele
bash
curl -X GET "https://my.offisy.at/api/oauth/v2/resource/services?offset=0&limit=50&categoryId=b2c3d4e5-f6a7-8901-bcde-f01234567890&includeTypes=beispiel&view=default" \
  -H "Authorization: Bearer {access_token}"
Parameter
Zuerst Token anfordern

Mögliche Fehler ​

StatusCodeBeschreibung
400validation_errorUngültiger Wert für view
401invalid_clientUngültiger oder fehlender Access Token
403insufficient_scopeScope services nicht vorhanden

Offisy GmbH