BYTETOOLS

Wiktionary REST API

Free Wiktionary REST API with no key: word definitions across hundreds of languages with parts of speech, examples and etymology. CORS enabled. Tested.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-20

What is the Wiktionary REST API?

The Wiktionary REST API is a free, key-free API returning dictionary definitions from Wiktionary, organised by language and part of speech, covering hundreds of languages far beyond English.

Wiktionary's multilingual coverage is what distinguishes it from dedicated dictionary APIs. A single lookup returns definitions grouped by every language in which that spelling exists, which is genuinely useful for language learning tools.

Definitions come back as HTML rather than plain text, because Wiktionary entries contain formatting, links and inline templates. You must sanitise and usually strip that markup before display — treating it as plain text produces visible tags.

Quick facts

Base URL
https://en.wiktionary.org/api/rest_v1
Authentication
No API key. A descriptive User-Agent is requested by Wikimedia policy.
Rate limit
Roughly 200 requests per second across the REST API, but individual clients should cache.
Pricing
Free. Content is CC BY-SA, so attribution is required.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Wiktionary REST API

Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.

1. Look up a word definition

GET https://en.wiktionary.org/api/rest_v1/page/definition/hello

curl
curl 'https://en.wiktionary.org/api/rest_v1/page/definition/hello'
JavaScript (fetch)
const res = await fetch("https://en.wiktionary.org/api/rest_v1/page/definition/hello");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://en.wiktionary.org/api/rest_v1/page/definition/hello", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "en": [
    {
      "partOfSpeech": "Interjection",
      "language": "English",
      "definitions": [
        {
          "definition": "<span class=\"use-with-mention\" about=\"#mwt70\" typeof=\"mw:Transclusion\">A <a rel=\"mw:WikiLink\" href=\"/wiki/greeting#English\" title=\"greeting\">greeting</a> (<a rel=\"mw:WikiLink\" href=\"/wiki/salutation#English\" title=\"salutation\">salutation</a>) said when <a rel=\"mw:WikiLink\" href=\"/wiki/meet#English\" title=\"meet\">meeting</a> someone or <a rel=\"mw:WikiLink\" href=\"/wiki/acknowledge#English\" title=\"acknowledge\">acknowledging</a> someone’s <a rel=\"mw:WikiLink\" href=\"/wiki/arrival#English\" title=\"arrival\">arrival</a> or <a rel=\"mw:WikiLink\" href=\"/wiki/presence#English\" title=\"presence\">presence</a>.</span>",
          "parsedExamples": [
            {
              "example": "<b>Hello</b>, everyone."
            }
          ],
          "examples": [
            "<b>Hello</b>, everyone."
          ]
        },
        {
          "definition": "<span class=\"use-with-mention\" about=\"#mwt74\" typeof=\"mw:Transclusion\">A greeting used when <a rel=\"mw:WikiLink\" href=\"/wiki/answer#English\" title=\"answer\">answering</a> the <a rel=\"mw:WikiLink\" href=\"/wiki/telephone#English\" title=\"telephone\">telephone</a>.</span>",
          "parsedExamples": [
            {
              "example": "<b>Hello</b><span typeof=\"mw:Entity\">?</span> How may I help you<span typeof=\"mw:Entity\">?</span>"
            }
          ],
          "examples": [
            "<b>Hello</b><span typeof=\"mw:Entity\">?

Parameters

ParameterTypeRequiredDescription
page/definition/<word>pathRequiredThe word to define, URL-encoded. page/definition/hello
<lang>hostOptionalChange the subdomain for other Wiktionary editions. fr

Response fields

<language-code>array
Definitions grouped by language, keyed by code such as `en`.
...partOfSpeechstring
Noun, Verb, Interjection and so on.
...languagestring
Language name in full.
...definitionsarray
The definitions themselves.
...definitions[].definitionstring
Definition text as HTML — sanitise before rendering.
...definitions[].examplesarray
Usage examples, also HTML.

What you can build with the Wiktionary REST API

  • Build a multilingual dictionary or language learning tool
  • Add definition tooltips supporting many languages
  • Look up etymology and usage examples
  • Support vocabulary features beyond English

Common errors and how to fix them

HTML tags visible in the output

Definitions contain Wiktionary markup.

Fix: Sanitise and strip tags before display; never render raw.

404

No Wiktionary entry for that spelling.

Fix: Wiktionary is case-sensitive for some entries; try lowercase first.

Unexpected languages in the response

The same spelling exists across languages.

Fix: Filter to the language code you want rather than taking the first key.

Wiktionary REST API — frequently asked questions

Is the Wiktionary API free?

Yes, free with no API key. Content is CC BY-SA licensed, so attribution is required, and Wikimedia asks for a descriptive User-Agent.

How is it different from the Free Dictionary API?

Wiktionary covers hundreds of languages in one lookup, grouped by language. The Free Dictionary API is English-focused but returns cleaner plain text with audio pronunciation.

Why are there HTML tags in the definitions?

Wiktionary entries contain formatting, links and templates, so definitions come back as HTML. Sanitise and strip the markup before displaying.

Can I query other language editions?

Yes, change the subdomain — fr.wiktionary.org returns the French edition, which defines words differently and covers a different vocabulary.

Tools that pair with this API

Wiktionary REST is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.