{"openapi":"3.1.0","info":{"title":"Lahja (Dialect) API","version":"0.1.0","description":"A hand-curated Arabic dialect reference and phrasebook: MSA (Fusha) alongside Egyptian, Levantine, Gulf and Maghrebi dialect groups, everyday phrases transliterated and in Arabic script, dialect comparisons, numbers, a greeting guide, script notes, and a glossary.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://lahja.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/lahja/docs"},"termsOfService":"https://connectorbay.com/lahja/terms"},"servers":[{"url":"https://lahja.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/lahja/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/translate_phrase":{"post":{"operationId":"translate_phrase","summary":"An everyday phrase or word (greetings, \"how much\", \"where is\", \"thank you\", numbers 1-10, ...) rendered","description":"An everyday phrase or word (greetings, \"how much\", \"where is\", \"thank you\", numbers 1-10, ...) rendered\n    in Modern Standard Arabic plus each major dialect group (Egyptian, Levantine, Gulf, Maghrebi),\n    transliterated and in Arabic script. Also matches on a dialect word itself (searching \"shukran\" finds\n    \"thank you\"). Use for \"how do you say thank you in Arabic\", \"what's the Egyptian word for water\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"phrase":{"description":"An everyday phrase or word, in English or in a dialect's own transliteration.","examples":["thank you","how are you","where is the bathroom","shukran","seven"],"minLength":1,"title":"Phrase","type":"string"},"dialect":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Limit the result to one dialect group plus MSA. One of: egyptian, levantine, gulf, maghrebi, msa. Omit to see every group.","title":"Dialect"}},"required":["phrase"],"title":"translate_phraseArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/dialect_search":{"post":{"operationId":"dialect_search","summary":"Keyword search for phrases/words matching a query across every dialect's transliteration, Arabic","description":"Keyword search for phrases/words matching a query across every dialect's transliteration, Arabic\n    script, gloss, category and notes. Use for \"find phrases about the bathroom\", \"search for shu\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"A word, phrase, category, or dialect concept to search for.","minLength":1,"title":"Query","type":"string"}},"required":["query"],"title":"dialect_searchArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/dialect_comparison":{"post":{"operationId":"dialect_comparison","summary":"The same word or phrase's form across every dialect group side by side, explicitly grouping dialects","description":"The same word or phrase's form across every dialect group side by side, explicitly grouping dialects\n    that share an identical (or near-identical) form and flagging where they genuinely diverge. Use for\n    \"compare how are you across Arabic dialects\", \"is the word for coffee the same everywhere\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"word_or_phrase":{"description":"A word or phrase to compare across dialect groups.","examples":["how are you","what","two","coffee"],"minLength":1,"title":"Word Or Phrase","type":"string"}},"required":["word_or_phrase"],"title":"dialect_comparisonArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/dialect_info":{"post":{"operationId":"dialect_info","summary":"One dialect group's home region, the countries where it's commonly spoken, and 2-3 signature features","description":"One dialect group's home region, the countries where it's commonly spoken, and 2-3 signature features\n    (e.g. Egyptian's distinctive hard \"g\" for the letter jim). Use for \"tell me about Gulf Arabic\", \"where is\n    Levantine Arabic spoken\", \"what makes Maghrebi Arabic distinctive\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dialect":{"description":"A dialect group or an alias/country within it.","examples":["Egyptian","Levantine","Gulf","Maghrebi","MSA","Khaleeji","Darija"],"minLength":1,"title":"Dialect","type":"string"}},"required":["dialect"],"title":"dialect_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/greeting_guide":{"post":{"operationId":"greeting_guide","summary":"Common Arabic greetings and the context they're appropriate for — formal vs. informal, time of day, and","description":"Common Arabic greetings and the context they're appropriate for — formal vs. informal, time of day, and\n    the religious-origin greeting \"as-salamu alaykum\" explained respectfully and factually alongside its\n    standard reply. Use for \"how do I greet someone in Arabic\", \"explain as-salamu alaykum\", \"morning\n    greetings in Arabic\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"context":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by formality (formal/informal), time of day (morning/evening/night), or 'religious'. Omit to see every greeting.","title":"Context"}},"title":"greeting_guideArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/number_words":{"post":{"operationId":"number_words","summary":"Cardinal numbers 1-20 plus the 10s (30-90), 100 and 1000, in Modern Standard Arabic and by dialect","description":"Cardinal numbers 1-20 plus the 10s (30-90), 100 and 1000, in Modern Standard Arabic and by dialect\n    group, transliterated and in Arabic script. Use for \"how do you say seven in Gulf Arabic\", \"numbers 1 to\n    10 in Arabic\", \"what's one hundred in Moroccan Arabic\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"number":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"A cardinal number: 1-20, or a multiple of 10 up to 100, or 1000. Omit for the full table.","title":"Number"},"dialect":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Limit to one dialect group plus MSA. One of: egyptian, levantine, gulf, maghrebi, msa.","title":"Dialect"}},"title":"number_wordsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/common_phrases_by_category":{"post":{"operationId":"common_phrases_by_category","summary":"Phrases grouped by situation: dining, shopping/souq, directions, emergencies, small talk (plus","description":"Phrases grouped by situation: dining, shopping/souq, directions, emergencies, small talk (plus\n    greetings, polite expressions, questions and numbers). Use for \"give me some dining phrases in Arabic\",\n    \"what should I say in an emergency\", \"shopping phrases for the souq\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category":{"description":"dining | shopping | directions | emergencies | small_talk | greetings | polite | questions | numbers","minLength":1,"title":"Category","type":"string"}},"required":["category"],"title":"common_phrases_by_categoryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/script_note":{"post":{"operationId":"script_note","summary":"Brief, purely descriptive notes on Arabic script basics relevant to a learner — right-to-left","description":"Brief, purely descriptive notes on Arabic script basics relevant to a learner — right-to-left\n    direction, letter connection forms, the absence of capital letters, unwritten short vowels, and the\n    alphabet's size. Use for \"why is Arabic written right to left\", \"does Arabic have capital letters\",\n    \"are Arabic vowels written down\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"direction | connection | capitalization | vowels | alphabet. Omit to see all.","title":"Topic"}},"title":"script_noteArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/arabic_glossary":{"post":{"operationId":"arabic_glossary","summary":"Definitions of linguistics and culture terms relevant to Arabic: Fusha, Ammiyya, diglossia, Darija,","description":"Definitions of linguistics and culture terms relevant to Arabic: Fusha, Ammiyya, diglossia, Darija,\n    Khaleeji, Shami, hamza, ta' marbuta, root-and-pattern morphology, qaf, isogloss, mutual intelligibility,\n    insha'Allah, alhamdulillah. Use for \"what does diglossia mean\", \"what's the difference between Fusha and\n    Ammiyya\", \"what does insha'Allah mean\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up (Fusha, Ammiyya, diglossia, hamza, ...); omit to list all.","title":"Term"}},"title":"arabic_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}