Hamad Bin Khalifa University Arabic NLP API

Arabic language processing modules.

Operations 6

POST /segmentation/ Segment Arabic text into clitics and stems #
POST /lemmatization/ Reduce Arabic tokens to their lemmas #
POST /pos/ Part-of-speech tag Arabic text #
POST /ner/ Recognize named entities in Arabic text #
POST /diacritize/ Restore diacritics on Arabic text #
POST /spellcheck/ Spell-check Arabic text #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hbku-arabic-nlp-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hbku-arabic-nlp-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Farasa Web Arabic NLP API
  summary: Arabic natural-language processing web API operated by the Arabic Language Technologies group at Qatar Computing Research Institute (QCRI), Hamad Bin Khalifa University.
  description: Farasa is the Arabic text-processing toolkit built by the Arabic Language Technologies group at the Qatar Computing Research Institute (QCRI), a research institute of Hamad Bin Khalifa University.
  version: '1.0'
  contact:
    name: Farasa Support — Arabic Language Technologies, QCRI, Hamad Bin Khalifa University
    email: support@farasa.qcri.org
    url: https://farasa.qcri.org/
  x-institution: Hamad Bin Khalifa University
servers:
- url: https://farasa.qcri.org/webapi
  description: Farasa Web API, confirmed live 2026-08-30 (POST with a bad key returns 400 "invalid api key").
tags:
- name: Arabic NLP
  description: Arabic language processing modules.
paths:
  /segmentation/:
    post:
      tags:
      - Arabic NLP
      summary: Segment Arabic text into clitics and stems
      operationId: farasaSegmentation
      requestBody:
        $ref: '#/components/requestBodies/FarasaRequest'
      responses:
        '200':
          $ref: '#/components/responses/FarasaResult'
        '400':
          $ref: '#/components/responses/BadRequest'
  /lemmatization/:
    post:
      tags:
      - Arabic NLP
      summary: Reduce Arabic tokens to their lemmas
      operationId: farasaLemmatization
      requestBody:
        $ref: '#/components/requestBodies/FarasaRequest'
      responses:
        '200':
          $ref: '#/components/responses/FarasaResult'
        '400':
          $ref: '#/components/responses/BadRequest'
  /pos/:
    post:
      tags:
      - Arabic NLP
      summary: Part-of-speech tag Arabic text
      operationId: farasaPos
      requestBody:
        $ref: '#/components/requestBodies/FarasaRequest'
      responses:
        '200':
          $ref: '#/components/responses/FarasaResult'
        '400':
          $ref: '#/components/responses/BadRequest'
  /ner/:
    post:
      tags:
      - Arabic NLP
      summary: Recognize named entities in Arabic text
      operationId: farasaNer
      requestBody:
        $ref: '#/components/requestBodies/FarasaRequest'
      responses:
        '200':
          $ref: '#/components/responses/FarasaResult'
        '400':
          $ref: '#/components/responses/BadRequest'
  /diacritize/:
    post:
      tags:
      - Arabic NLP
      summary: Restore diacritics on Arabic text
      operationId: farasaDiacritize
      requestBody:
        $ref: '#/components/requestBodies/FarasaRequest'
      responses:
        '200':
          $ref: '#/components/responses/FarasaResult'
        '400':
          $ref: '#/components/responses/BadRequest'
  /spellcheck/:
    post:
      tags:
      - Arabic NLP
      summary: Spell-check Arabic text
      operationId: farasaSpellcheck
      requestBody:
        $ref: '#/components/requestBodies/FarasaRequest'
      responses:
        '200':
          $ref: '#/components/responses/FarasaResult'
        '400':
          $ref: '#/components/responses/BadRequest'
components:
  schemas:
    FarasaRequest:
      type: object
      required:
      - text
      - api_key
      properties:
        text:
          type: string
          description: The Arabic text to process, UTF-8 encoded.
          examples:
          - يُشار إلى أن اللغة العربية
        api_key:
          type: string
          description: API key issued on registration at https://farasa.qcri.org.
  requestBodies:
    FarasaRequest:
      required: true
      description: The api_key travels in the request body, not in a header. Both application/json and application/x-www-form-urlencoded are accepted; any other content type is rejected with 400 "Unsupported content_type".
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FarasaRequest'
        application/x-www-form-urlencoded:
          schema:
            $ref: '#/components/schemas/FarasaRequest'
  responses:
    BadRequest:
      description: 'Rejected request. Observed forms, both returned as HTTP 400 with a text/plain body: "invalid api key. please register at: https://farasa.qcri.org" and "Unsupported content_type, use application/json or application/x-www-form-urlencoded".'
      content:
        text/plain:
          schema:
            type: string
          examples:
            invalidKey:
              value: 'invalid api key. please register at: https://farasa.qcri.org'
            badContentType:
              value: Unsupported content_type, use application/json or application/x-www-form-urlencoded
    FarasaResult:
      description: Processed Arabic text. The exact payload shape is NOT documented by the provider and was not observed here — a registered api_key is required to reach a 200 — so no schema is asserted.
      content:
        application/json:
          schema:
            type: object
            description: Provider-defined JSON result. Shape unverified; see x-provenance.
x-operator: institution
x-provenance:
  generated: '2026-08-30'
  method: derived
  source:
  - https://farasa.qcri.org/lemmatization/
  - https://farasa.qcri.org/segmentation/
  - https://alt.qcri.org/farasa/
  evidence: 'Endpoint list confirmed by unauthenticated POST probes on 2026-08-30 — segmentation, lemmatization, pos, ner, diacritize and spellcheck each returned HTTP 400 "invalid api key. please register at: https://farasa.qcri.org", while sibling paths (constituency, dependency, tts) returned 404. Request parameters taken verbatim from the provider''s own published code samples.'