Skip to content
Documentation
pozyskajpacjentaDocs

API referenceEntities

Get a team member

GET/api/v1/doctors/{slug}

Since
1.1.0
Auth
Bearer key
operationId
getDoctor

One published team member with the full profile. Responses are private to the key: Cache-Control: private, max-age=60, so cache them on your side for up to a minute.

Request

Send the clinic's key in Authorization: Bearer (see API keys).

Path parameters

  • slugstringrequired

    Slug of the team member (lower-case letters, digits, hyphens).

curl "https://app.pozyskajpacjenta.pl/api/v1/doctors/maria-zielinska" \
  -H "Authorization: Bearer $PP_API_KEY"
import { PozyskajPacjentaClient } from "@pozyskajpacjenta/sdk";

const client = new PozyskajPacjentaClient({
  apiKey: process.env.PP_API_KEY ?? "",
  baseUrl: "https://app.pozyskajpacjenta.pl",
});

const { doctor } = await client.getDoctor("maria-zielinska");
<?php
$response = wp_remote_get(
    'https://app.pozyskajpacjenta.pl/api/v1/doctors/maria-zielinska',
    array(
        'headers' => array( 'Authorization' => 'Bearer ' . getenv( 'PP_API_KEY' ) ),
        'timeout' => 10,
    )
);
if ( is_wp_error( $response ) ) {
    error_log( $response->get_error_message() );
    return;
}
$status = wp_remote_retrieve_response_code( $response );
$data   = json_decode( wp_remote_retrieve_body( $response ), true );

Response

200The team member.

  • doctorDoctorDetailrequired

    The team member.

    Fields (10)
    • idstringrequired

      Team member id.

    • slugstringrequired

      Slug from the profile's address.

    • pathstringrequired

      Path of the profile page.

    • namestringrequired

      Full name.

    • titlestring | null

      Professional title, e.g. lek. dent.; null when none.

    • specializationsstring[]required

      Specialisations, in the clinic's order.

    • photoMediaRef | null

      Portrait; null when none.

      Fields (8)
      • urlstringrequired

        Absolute address of the file.

      • focalXinteger | null

        Horizontal focal point in percent (0 to 100) to keep when cropping, e.g. as object-position.

      • focalYinteger | null

        Vertical focal point in percent (0 to 100).

      • altstring | null

        Alternative text; null when the clinic left it empty.

      • widthintegersince 1.4.0

        Width of the original in px (library files, when known), for width/height attributes without layout shift.

      • heightintegersince 1.4.0

        Height of the original in px.

      • aiGeneratedbooleansince 1.4.0

        The image was generated by AI: label it next to the image (e.g. in a caption).

      • captionstringsince 1.4.0

        Caption to show under the image.

    • bookingResourceIdstring | nullrequiredsince 1.3.0

      Id of the active booking specialist for this profile: an entry of GET /booking/catalog and the resource parameter of /booking/slots. null when the profile is not linked to booking or the specialist is inactive.

    • biostring | null

      Biography, plain text with blank lines between paragraphs; null when empty.

    • updatedAtstring (date-time)required

      Last change, ISO 8601.

A team member's profile

{
  "doctor": {
    "id": "doc_maria",
    "slug": "maria-zielinska",
    "path": "/zespol/maria-zielinska",
    "name": "Maria Zielińska",
    "title": "lek. dent.",
    "specializations": [
      "Stomatologia estetyczna",
      "Wybielanie",
      "Higienizacja"
    ],
    "photo": null,
    "bookingResourceId": "bres_maria",
    "bio": "Łączy profilaktykę ze stomatologią estetyczną, od higienizacji, przez wybielanie, po bonding. Projekt uśmiechu pokazuje pacjentowi zawsze przed rozpoczęciem leczenia.",
    "updatedAt": "2026-09-30T14:21:55.000Z"
  }
}

Errors

StatusWhen
401No Authorization header
401Unknown or rotated key
404No published treatment with this slug
429Over 120 requests in this minute

Branch on the status and code, never on the Polish error text. All statuses in Errors.

401 · No Authorization header
{
  "error": "missing Authorization: Bearer <klucz z panelu Ustawienia>"
}
401 · Unknown or rotated key
{
  "error": "invalid key"
}
404 · No published treatment with this slug
{
  "error": "nie znaleziono"
}
429 · Over 120 requests in this minute
{
  "error": "przekroczono limit 120 zapytań/min"
}

Rate limit

  • 120 requests per minute per key, shared by every endpoint.
  • Every response to a valid key carries RateLimit-Remaining and RateLimit-Reset; see Rate limits.

SDK method

client.getDoctor(slug: string): Promise<{ doctor: DoctorDetail }>

The TypeScript tab above uses it. Install and errors: TypeScript SDK.