← v1 API reference
Doctors
Endpoint
Search doctors
Free-text search across doctor names and CPSO numbers. Returns the same { doctors, total, count } envelope as /doctors, and every list filter composes with the q query.
GET/api/v1/doctors/search
curl https://finddoc-ten.vercel.app/api/v1/doctors/search \
-G \
-H "Authorization: Bearer fd_test_xxxx…" \
-d q=Tremblay \
-d accepting=trueResponse200 OK
{
"doctors": [
{
"id": "doctor_5h7m2k",
"cpsoNumber": "90123",
"name": "Dr. Amelie Tremblay",
"gender": "female",
"yearsOfPractice": 12,
"specialties": ["Family Medicine"],
"languages": ["English", "French"],
"clinic": {
"id": 92a39274-7f56-4d18-a93d-ba498508249e,
"name": "Riverdale Family Health",
"address": "123 Queen St E, Toronto, ON",
"lat": 43.659,
"lng": -79.358,
"phone": "+1 416-555-0142",
"acceptingNewPatients": true
},
"dataFreshness": "fresh",
"syncedAt": "2026-05-01T09:30:00Z"
}
],
"total": 3,
"count": 1
}Parameters
| Parameter | Type | Description |
|---|---|---|
| qrequired | string | Search query, at least 2 characters. Matched against the doctor's name (case-insensitive) or an exact CPSO number. Returns 400 missing_param if omitted or shorter than 2 characters. All /doctors filters below compose with q (AND). |
| specialty | string | Single specialty to match, e.g. Family Medicine. Singular and exact — unlike /clinics, this is not comma-separated. |
| accepting | boolean | When true, only return rows currently accepting new patients. |
| gender | string | One of "male", "female", or "non-binary". |
| languages | string | Comma-separated list of languages spoken, e.g. English,French. |
| minYears | integer | Minimum years of practice for the doctor. |
| maxYears | integer | Maximum years of practice for the doctor. |
| limit | integer | Page size. Defaults to 25, maximum 100. |
| offset | integer | Zero-based offset for pagination. Defaults to 0. |
Try it
Live requestSign in with Google — first sign-in creates your free FindDoc account to run live requests against your account's rate limit.