List team members
GET/api/v1/doctors
- Since
- 1.1.0
- Auth
- Bearer key
- operationId
- listDoctors
The clinic's published team members, in the clinic's order. 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).
No parameters and no body.
curl "https://app.pozyskajpacjenta.pl/api/v1/doctors" \
-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 { doctors } = await client.listDoctors();<?php
$response = wp_remote_get(
'https://app.pozyskajpacjenta.pl/api/v1/doctors',
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
200Published team members.
- doctorsDoctorSummary[]required
The team.
Fields of each item (8)
- 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
resourceparameter of /booking/slots. null when the profile is not linked to booking or the specialist is inactive.
Published team members (trimmed to two)
{
"doctors": [
{
"id": "doc_anna",
"slug": "anna-wzorcowa",
"name": "Anna Wzorcowa",
"title": "dr n. med.",
"bookingResourceId": "bres_anna",
"path": "/zespol/anna-wzorcowa",
"specializations": [
"Implantologia",
"Chirurgia stomatologiczna",
"Protetyka"
],
"photo": null
},
{
"id": "doc_piotr",
"slug": "piotr-nowicki",
"name": "Piotr Nowicki",
"title": "lek. dent.",
"bookingResourceId": "bres_piotr",
"path": "/zespol/piotr-nowicki",
"specializations": [
"Endodoncja mikroskopowa",
"Stomatologia zachowawcza"
],
"photo": null
}
]
}Errors
| Status | When |
|---|---|
| 401 | No Authorization header |
| 401 | Unknown or rotated key |
| 429 | Over 120 requests in this minute |
Branch on the status and code, never on the Polish error text. All statuses in Errors.
{
"error": "missing Authorization: Bearer <klucz z panelu Ustawienia>"
}{
"error": "invalid key"
}{
"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-RemainingandRateLimit-Reset; see Rate limits.
SDK method
client.listDoctors(): Promise<{ doctors: DoctorSummary[] }>
The TypeScript tab above uses it. Install and errors: TypeScript SDK.