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=3

Press “Send request” to see a live response.

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.

ParameterTypeNotes
wordstring, requiredThe 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.

ParameterTypeNotes
regionstringRegion 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.

ParameterTypeNotes
kind"disease" | "medicine"disease | medicine
slugstringasthma, paracetamol …
qstringname search (EN or MT)
categorystringrespiratory, diabetes …
limitnumber1–200
offsetnumberpagination 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 an error message and a details object naming the offending fields.
  • 404 — no published entry with that slug.
  • 429 — too many requests. Wait the number of seconds given in the Retry-After header 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.