API documentation
Traduttur Mediku exposes its English ⇄ Maltese medical dictionary as a free, read-only JSON API and as an MCP server for AI assistants. No API key, no sign-up.
Overview
All endpoints are GET, return application/json, and expose only published dictionary entries. CORS is open (Access-Control-Allow-Origin: *), so you can call them straight from a browser. Base path:
https://mediku.online/api/public
Dictionary responses are cached for 60 seconds; lexicon responses for one hour. Maltese diacritics (ħ, ġ, ż, ċ, għ) are accepted but never required — matching is diacritic-insensitive, so gilda finds ġilda.
Try it
Send a real request to the live API from your browser. Nothing is stored and no key is needed.
GET /api/public/terms?q=blood&limit=3Press “Send request” to see a live response.
GET /api/public/terms
Search or browse the dictionary. With no parameters it returns the first page of entries in English alphabetical order.
| Parameter | Type | Notes |
|---|---|---|
| q | string, ≤120 chars | Word or phrase to search for, in English or Maltese. |
| direction | "en-mt" | "mt-en" | Restrict matching to the English or the Maltese side. Omit to search both. |
| letter | single letter A–Z | Return only entries filed under that letter. |
| limit | integer 1–200 | Page size. Defaults to the server page size. |
| offset | integer ≥ 0 | Entries to skip, for paging through total. |
Examples
curl "https://mediku.online/api/public/terms?q=blood" curl "https://mediku.online/api/public/terms?direction=mt-en&q=demm" curl "https://mediku.online/api/public/terms?letter=A&limit=100&offset=0"
Response
{
"total": 12,
"count": 1,
"items": [
{
"english": "Blood",
"maltese": "Demm",
"notes": null,
"sense_label": "n.",
"letter": "B",
"slug": "blood",
"snomed_code": "87612001",
"snomed_term": "Blood",
"atc_code": null,
"atc_name": null,
"icd10_code": null,
"icd10_term": null,
"icd11_code": null,
"icd11_term": null,
"children": [
{ "english": "Blood", "maltese": "Demm tal-vini", "notes": null, "slug": "blood-2" }
]
}
]
}total is the full number of matches, count the number returned in this page, and children holds alternative translations recorded for the same headword.
GET /api/public/terms/{slug}
Fetch one entry by its stable slug, as returned in the slug field above. Responds 404 if the entry does not exist or is unpublished.
curl "https://mediku.online/api/public/terms/blood"
The body is a single entry object with the same shape as one item of the search response.
GET /api/public/lexicon
Linguistic enrichment from Ġabra, the open Maltese lexicon of the University of Malta: lemma, phonetic transcription, part of speech, Semitic root radicals, spelling variants, glosses and example sentences.
| Parameter | Type | Notes |
|---|---|---|
| word | string, required | The word to look up. |
| from | "maltese" | "english" | Whether word is Maltese (default) or an English gloss. |
curl "https://mediku.online/api/public/lexicon?word=deni" curl "https://mediku.online/api/public/lexicon?word=fever&from=english"
Every response carries the required University of Malta attribution string. A 502 means the upstream Ġabra service was unreachable — retry with backoff.
GET /api/public/anatomy
The anatomy atlas behind the interactive body map: every body region with its English and Maltese name, front or back view, and the dictionary entries mapped to it.
| Parameter | Type | Notes |
|---|---|---|
| region | string | Region slug or name in English or Maltese (e.g. chest, sider). Omit to list every region. |
| surface | "true" | "false" | true excludes organs and deeper structures. |
curl "https://mediku.online/api/public/anatomy" curl "https://mediku.online/api/public/anatomy?region=abdomen&surface=true"
Responses are cached for five minutes. Each term carries is_internal so you can separate surface anatomy from organs.
GET /api/public/clinical
The bilingual clinical knowledge base: published diseases and medicines with English and Maltese names, aliases, summaries, structured sections and clinical codes. Pass a slug to read one entry in full.
| Parameter | Type | Notes |
|---|---|---|
| kind | "disease" | "medicine" | disease | medicine |
| slug | string | asthma, paracetamol … |
| q | string | name search (EN or MT) |
| category | string | respiratory, diabetes … |
| limit | number | 1–200 |
| offset | number | pagination offset |
curl "https://mediku.online/api/public/clinical?kind=disease" curl "https://mediku.online/api/public/clinical?kind=medicine&q=paracetamol" curl "https://mediku.online/api/public/clinical?slug=asthma"
Errors & rate limits
400— invalid query parameters. The body contains anerrormessage and adetailsobject naming the offending fields.404— no published entry with that slug.429— too many requests. Wait the number of seconds given in theRetry-Afterheader before retrying.500— the dictionary was temporarily unavailable.502— the upstream Ġabra lexicon did not answer.
Read endpoints allow 30 requests per minute per IP address; the full CSV export allows 5 per minute. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset so you can pace your calls. Cache responses on your side, respect the Cache-Controlheaders, and prefer paging with limit and offset over repeated full sweeps.
MCP server
The dictionary is also an MCP server, so ChatGPT, Claude, Cursor and Codex can look up Maltese medical vocabulary directly. The endpoint is public and needs no login:
https://mediku.online/mcp
translate_medical_term— exact translation of one term. Params:term,from(english|maltese).search_medical_terms— fuzzy, two-way search. Params:query,direction,limit(≤50).browse_medical_terms_by_letter— list a letter of the alphabet. Params:letter,limit(≤200),offset.lookup_maltese_lexeme— Ġabra grammar, phonetics and spelling variants. Params:word,from.
Client configuration
{
"mcpServers": {
"traduttur-mediku": {
"url": "https://mediku.online/mcp"
}
}
}Attribution & terms of use
The API is free to use, including in commercial products, provided you credit Traduttur Mediku as the source of the translations and do not present the data as medical advice — it is a language reference to aid communication, not a clinical decision tool.
Data returned by /api/public/lexicon originates from Ġabra, and must be credited to the Language Technology Group, Institute of Linguistics and Language Technology, University of Malta. The attribution string is included in every lexicon response.
Spotted a wrong or missing translation? Use the suggest a term form. See also the privacy policy.