The whole African dictionary, as data.
Free, instant, no card. The same dictionary the website uses, over HTTP. Stable endpoints, honest counts, citable records.
curl "https://ozituma.com/api/v1/words?q=mmiri&limit=2" \ -H "X-API-Key: $OZITUMA_API_KEY"
A dictionary you can build on
Ozituma is a dictionary of African languages, published by Ozikoro. Igbo and Yoruba are available now; further languages are added as their corpora are prepared. The API is the same record the website reads from — search it, fetch an entry in full, list the languages with real word counts, or take the day’s word.
It is a small surface on purpose. 6 operations, JSON in and JSON out, one optional X-API-Key header, and an OpenAPI 3.1 document that describes every one of them. There is a complete reference with a page per endpoint, working curl samples and the real response shapes.
Every entry names the source it came from and the licence it arrived under, and the counts on the languages endpoint are read from the database — zero where a corpus is still being prepared. That is the honesty the dictionary is built on: a number here is a number someone can check.
Your first request
1. Get a key. Use the form further down this page, or POST /api/v1/developers directly. It is free and there is no approval queue.
2. Put it in your shell.
export OZITUMA_API_KEY="ozt_live_your_key_here"
3. Make the call. This searches for mmiri and asks for two results:
curl "https://ozituma.com/api/v1/words?q=mmiri&limit=2" \ -H "X-API-Key: $OZITUMA_API_KEY"
4. Read the answer. A paginated JSON body, with the total match count alongside the page you asked for:
{ "data": [{ "id": 5192, "headword": "mmiri", "glosses": ["liquid"] }], "total": 93, "page": 1, "perPage": 2, "hasMore": true }
Abridged for the quickstart: a real response carries every field of the WordSummary schema, listed on the search endpoint page. Values here are illustrative.
No key yet? The form is a few lines down. Sending a request without one returns HTTP 401 with the code missing_api_key; the exact body is on the Errors page.
Free
| Plan | Requests / day | Cost |
|---|---|---|
| free | 1,000 | Free |
| team | 50,000 | Contact us |
| institution | 500,000 | Contact us |
A key made on this page is on the free plan. Limits are per endpoint, with tighter caps on anything expensive, and the number published here is the number actually enforced — the table is read from the same plan rows the API meters against. The full picture, including how a limit is resolved and the headers that report it, is on the Rate limits page.
Create your key
The key is shown once and stored only as a hash, so copy it when it appears. Under the hood this form posts to POST /api/v1/developers, which needs no key of its own and is limited per IP address rather than per key — that endpoint is documented here.
Every endpoint
Search the dictionary.
Fetch one entry.
Deterministic daily entry.
List languages with real word counts.
Corpus statistics.
Create an API key.
The machine-readable contract.
No charge. A key identifies your project.
Every entry has a stable address.
Counts are published figures, never padded.
Then read the reference
The API reference has a page per endpoint with its parameters, a working curl, an example request and response, the error codes it can return, and the places where the OpenAPI document and the implementation say different things. There is an OpenAPI 3.1 document you can point code generators at, and it needs no key.
The X-API-Key header, the Bearer alternative, and what happens without a key.
Rate limitsThe per-key daily quotas, the per-IP key throttle, and the headers that report them.
ErrorsThe error body every failure shares, and the codes the API returns.
Paginationpage and limit, the response envelope, and the Content-Range header.
Licensing and attributionWhat you may do with the data, and the attribution to carry.
The reference is built from the same document the API serves: 6 documented operations, no more and no fewer. OpenAPI 3.1.0, version 1.0.0.