Introduction
KalimaLab is the most comprehensive Arabic words API for developers. It provides access to 477,000+ words, roots, patterns, and linguistic data through a simple REST API or TypeScript SDK.
What is KalimaLab?
KalimaLab is a REST API and TypeScript SDK that gives developers programmatic access to the Arabic language. Whether you are building a word game, an NLP pipeline, an educational app, or a content moderation system, KalimaLab provides the linguistic data you need.
Unlike general-purpose dictionary APIs, KalimaLab is designed Arabic-first. Every endpoint is built around Arabic morphology — roots (جذور), patterns (أوزان), part-of-speech tagging, and classical grammar — giving you the building blocks that Arabic language processing actually requires.
Key Features
477k+ Arabic Words
The largest publicly available Arabic dictionary — fully searchable, filterable, and morphologically annotated.
Root & Pattern Analysis
Query words by their trilateral or quadrilateral root, or by morphological pattern (أوزان).
Text Processing
Tokenize, normalize, transliterate, and compute readability scores for Arabic text.
Grammar Endpoints
Look up prepositions, conjunctions, and pronouns, and perform part-of-speech tagging.
Proverbs & Expressions
More than 10,000 classical Arabic proverbs with English and Modern Standard Arabic meanings.
TypeScript SDK
First-class TypeScript support with full type safety, automatic retries, and async pagination.
Built for
Word Games
Arabic Wordle, Scrabble helpers, crossword generators — filter by letter count, root, or pattern.
Education
Build Arabic language learning apps with vocabulary quizzes, root exploration, and grammar exercises.
NLP Pipelines
Enrich Arabic NLP datasets with morphological annotations, roots, and POS tags.
Content Moderation
Verify that user input is valid Arabic, detect script, and normalize text before processing.
Language Support
The KalimaLab dataset covers Modern Standard Arabic with extended classical coverage. All words include transliteration, English meanings, and morphological metadata. Response text preserves full Arabic diacritics (tashkeel) where available.
30-second example
Install the SDK, add your API key, and make your first request:
npm install @kalimalab/sdkimport { KalimaLab } from '@kalimalab/sdk'const client = new KalimaLab({ apiKey: process.env.KALIMALAB_API_KEY! })// Get a random Arabic wordconst word = await client.words.random()console.log(word.arabic) // كَتَبَconsole.log(word.meaning_en) // to writeconsole.log(word.root) // كتب✓Free Tier
Consistent Response Format
Every KalimaLab response follows the same envelope structure:
{ "data": { ... }, "error": null, "meta": { "requestId": "req_01j9abc...", "responseTimeMs": 12, "page": 1, "total": 477432, "totalPages": 23872 }}data — The requested resource(s). Always present on success.error — null null on success, or an error object with code and message.meta — Request metadata including pagination info and timing.Get started in 5 minutes
Follow the quickstart guide to make your first API request in under 5 minutes.