Register · Developers
Embedding the register
Add a search of Türkiye's official health-tourism register to your site with a widget, an HTML form, a badge or the JSON API.
On this page
Getting started
Widgets
Without JavaScript
API
Help
Overview
healthturkey.co mirrors the Republic of Türkiye Ministry of Health's register of facilities authorised to treat international patients, and checks it daily. You can add a search of that register to your own site in one of three ways:
| Method | Use it for | JavaScript |
|---|---|---|
| Widget | A search box or licence check on any page | Yes |
| HTML form / Badge | Sites that cannot run scripts; a clinic showing its own listing | No |
| API | Your own interface and design | Your code |
All three are free and need no API key or sign-up. Every result links to the facility's record on healthturkey.co.
Quick start
Paste this where the search box should appear:
<div data-healthturkey="search" data-theme="light">
<a href="https://healthturkey.co/">Register search by healthturkey.co</a>
</div>
<script src="https://healthturkey.co/embed/search.js" async></script>
That is all. The script finds every data-healthturkey element on the page and
turns it into a search box. Include the <script> tag once, even with several
widgets on the page.
Attribution requirement
Each snippet contains a link to healthturkey.co. The widget only works while that link is in place:
- The link must be in the page's HTML, inside the widget element, as in the snippet.
- It must not carry
rel="nofollow",ugcorsponsored, and the page must not have anofollowrobots meta tag. - It must be visible: no
display:none, zero opacity or tiny text. You may change the link text, as long as it still names healthturkey.co.
The widget checks this on every load and shows a short notice instead of the search box if the link fails. We also check each embedding page once a day; if the link is missing, lookups from that site return no results until it is restored. No action is needed on your side beyond putting the link back.
Search
Search box with results listed below it. Matches on clinic name, legal name or authorisation number. Each result shows type, city, number and register status, and opens the record on healthturkey.co in a new tab.
<div data-healthturkey="search" data-theme="light">
<a href="https://healthturkey.co/">Register search by healthturkey.co</a>
</div>
<script src="https://healthturkey.co/embed/search.js" async></script>
Compact search
Single-line version for sidebars and headers. Results open in a dropdown and close on Esc or an outside click.
<div data-healthturkey="compact" data-theme="light">
<a href="https://healthturkey.co/">Register search by healthturkey.co</a>
</div>
<script src="https://healthturkey.co/embed/search.js" async></script>
Licence-number check
Takes an authorisation number and returns one of three answers: in the register, no longer in the register, or no facility with that number. Matching is exact.
<div data-healthturkey="licence" data-theme="light">
<a href="https://healthturkey.co/">Authorisation numbers checked against healthturkey.co</a>
</div>
<script src="https://healthturkey.co/embed/search.js" async></script>
Configuration
Attributes
| Attribute | Values | Default |
|---|---|---|
data-healthturkey | search, compact, licence | search |
data-theme | light, dark, auto (follows the visitor's system setting) | auto |
CSS variables
The widget uses your page's font and the full width of its container. Colours can be overridden on the element or any parent:
| Variable | Controls | Default (light) |
|---|---|---|
--ht-accent | Button and focus ring | #0B5FD9 |
--ht-accent-text | Links | #0A4EB4 |
--ht-bg | Background | #FFFFFF |
--ht-fg | Text | #0A1020 |
--ht-muted | Secondary text | #596579 |
--ht-line | Borders | #DCE3EE |
--ht-radius | Corner radius | 12px |
[data-healthturkey] {
--ht-accent: #0B5FD9;
--ht-radius: 8px;
}
HTML form
No script. Submitting opens the search results on healthturkey.co in a new tab. It takes your site's own form styles.
<form action="https://healthturkey.co/" method="get" target="_blank">
<label for="ht-q">Check a clinic in Türkiye's health-tourism register</label>
<input id="ht-q" type="search" name="q" placeholder="Clinic name or ST number" required>
<button type="submit">Check</button>
<p><a href="https://healthturkey.co/">Register search by healthturkey.co</a></p>
</form>
Clinic badge
An image for a facility's own website. It carries the healthturkey.co mark, the register status, the licence number and the date of the last check, and updates when the register changes — a facility that leaves the register gets a badge that says so. It is a plain image link to the facility's record, where a visitor can check the claim; no script runs on your page.
<a href="https://healthturkey.co/clinic/taki-dent-antalya" target="_blank" rel="noopener" title="Check this licence on healthturkey.co">
<img src="https://healthturkey.co/badge/taki-dent-antalya.svg" width="300" height="74" loading="lazy"
alt="Taki Dent — verified in the official Turkish health-tourism register" />
</a>
For dark backgrounds add ?theme=dark to the image URL.
Lookup endpoint
GET https://healthturkey.co/api/public/lookup?q={query}
| Parameter | Required | Description |
|---|---|---|
q | Yes | Clinic name, legal name or authorisation number (e.g. ST-6335). Minimum 2 characters. |
No authentication. CORS is open to all origins. Responses are cached for 24 hours; the
register is updated once a day. The attribution requirement applies:
link each result to its url and show a followed link to healthturkey.co where the
results appear.
Example response
{
"query": "ST-6335",
"results": [
{
"name": "Taki Dent",
"legal_name": "Özel Taki Dent Ağız ve Diş Sağlığı Polikliniği",
"type": "Private Oral and Dental Health Clinic",
"city": "Antalya",
"authorisation_number": "ST-6335",
"status": "listed",
"url": "https://healthturkey.co/clinic/taki-dent-antalya"
}
],
"more_url": "https://healthturkey.co/?q=ST-6335",
"source": "https://healthturkey.co/methodology"
}
Response fields
| Field | Type | Description |
|---|---|---|
results | array | Up to 8 facilities, best match first |
results[].name | string | Public name |
results[].legal_name | string | Name as registered with the Ministry |
results[].type | string | Facility type |
results[].city | string | Province |
results[].authorisation_number | string | null | Health-tourism authorisation number |
results[].status | string | listed or not-listed (left the register) |
results[].url | string | Record on healthturkey.co |
more_url | string | Full search results on healthturkey.co |
disabled | boolean | Present and true when the calling site failed the attribution check |
Other endpoints
| Endpoint | Returns |
|---|---|
/api/public/stats | Register-wide counts |
/api/public/changes/YYYY-MM | Facilities added to and removed from the register in a month |
/badge/{slug}.svg | Clinic badge image |
See also the dataset page and the methodology.
Troubleshooting
| Notice in the widget | Fix |
|---|---|
| Link is missing | Put the <a href="https://healthturkey.co/"> back inside the widget element. |
| Link is marked nofollow, ugc or sponsored | Remove the rel value. Some CMS plugins add it to all outbound links; exclude healthturkey.co. |
| Page tells search engines not to follow its links | The page has a nofollow robots meta tag. Use the widget on an indexable page. |
| Link is hidden | Remove the CSS hiding it. |
| Link check on this site failed | Our daily check did not find the link. Restore it; lookups resume after the next check. |
The browser console shows the same reason, prefixed [healthturkey].
FAQ
Is it free?
Yes. No key, no quota to request.
Where does the data come from?
From the public records of the Republic of Türkiye Ministry of Health, checked daily. healthturkey.co is independent of the Ministry. See methodology.
Can I show results on my own page?
Yes, with the API. Link each result to its record.