Doctor profile
Public, bez auth. Rate limit 600 req/min per IP.
GET /doctors/{slug}
Pełen profil lekarza.
curl https://api.pandoktorek.pl/doctors/dr-anna-kowalczyk-warszawa
Response
{
"slug": "dr-anna-kowalczyk-warszawa",
"first_name": "Anna",
"last_name": "Kowalczyk",
"title": "dr",
"degree": "dr n. med.",
"bio": "10 lat doświadczenia w dermatologii estetycznej...",
"photo_url": "https://...",
"specializations": ["dermatologia", "wenerologia"],
"languages": ["pl", "en"],
"is_telehealth_enabled": true,
"accepts_kids": false,
"pwz": "1234567",
"clinic": {
"slug": "medtrust-warszawa",
"name": "MedTrust Warszawa",
"address": "ul. Marszałkowska 1, 00-001 Warszawa",
"phone": "+48221234567"
},
"avg_rating": 4.8,
"review_count": 127,
"is_placeholder": false
}
is_placeholder=true — lekarz nie odebrał claim email'a, profile = default.
GET /doctors/{slug}/services
Lista usług oferowanych przez lekarza.
{
"services": [
{
"id": "uuid-...",
"name": "Konsultacja dermatologiczna",
"description": "...",
"duration_minutes": 30,
"price_cents": 25000,
"currency": "PLN",
"is_nfz": false
}
]
}
GET /doctors/{slug}/slots
Available sloty dla rezerwacji.
Query params
| Param | Typ | Opis |
|---|---|---|
from | date | Default = dziś (Warsaw TZ) |
to | date | Default = +30 dni |
service_id | uuid | Filtruje po services_allowed |
Response
{
"slots": [
{
"id": "uuid-...",
"start_at": "2026-05-10T10:00:00+02:00",
"end_at": "2026-05-10T10:30:00+02:00",
"services_available": [
{"id": "uuid-...", "name": "Konsultacja", "price_cents": 25000}
]
}
]
}
Tylko status=available (filter w SQL). Sloty booked / blocked nie są
zwracane.
GET /doctors/{slug}/reviews
Public reviews.
Query params
| Param | Default | Opis |
|---|---|---|
page | 1 | |
page_size | 20 (max 100) | |
sort | recent | recent / rating_desc / rating_asc |
Response
{
"items": [
{
"id": "uuid-...",
"rating": 5,
"comment": "Pani doktor była bardzo dokładna...",
"patient_first_name": "Anna",
"created_at": "2026-04-15T14:30:00+02:00",
"doctor_response": {
"comment": "Dziękuję za miłe słowa!",
"responded_at": "2026-04-15T18:00:00+02:00"
}
}
],
"total": 127,
"page": 1,
"page_size": 20
}
patient_first_name — tylko imię (G-PRIV-001).
SEO
Profile lekarzy są SSR'owane w Next.js + Schema.org JSON-LD. Twój system NIE musi nic robić — Pandoktorek odpowiada za SEO marketplace.
sitemap.xml: https://pandoktorek.pl/sitemap.xml