LINDAT MorphoDiTa API

Public keyless REST API for morphological analysis, morphological generation, part-of-speech tagging and tokenization, principally for Czech, operated by UFAL at Charles University. The OpenAPI here is derived by API Evangelist from the service's published REST API reference and verified against live responses.

Operations 5

GET /models List available MorphoDiTa models #
GET /tag Part-of-speech tag and lemmatize the supplied text #
GET /analyze Perform morphological analysis of the supplied text #
GET /generate Perform morphological generation from supplied lemmas #
GET /tokenize Tokenize the supplied text #

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/lindat-morphodita"
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

charles-morphodita-api-openapi.yml Raw ↑
# Provenance: DERIVED by API Evangelist from the operator's own published REST API
# reference, then verified against live responses from the production host.
# UFAL publishes human documentation, not a machine-readable contract, for this service.
# method: derived
# x-source-url: https://lindat.mff.cuni.cz/services/morphodita/api-reference.php
# generated: 2026-09-01
# x-operator: institution (Institute of Formal and Applied Linguistics, Faculty of
#   Mathematics and Physics, Charles University — host lindat.mff.cuni.cz is the
#   institution's own registrable domain)
openapi: 3.2.0
info:
  title: LINDAT MorphoDiTa API
  version: '1'
  summary: Morphological analysis, generation, tagging and tokenization operated by ÚFAL at Charles University.
  description: >-
    Public REST API for MorphoDiTa (Morphological Dictionary and Tagger) operated by the Institute
    of Formal and Applied Linguistics (ÚFAL), Faculty of Mathematics and Physics, Charles University,
    and delivered through the LINDAT/CLARIAH-CZ research infrastructure. Provides morphological
    analysis, morphological generation, part-of-speech tagging and tokenization, principally for
    Czech. No API key is required.
    Derived by API Evangelist from the published REST API reference at
    https://lindat.mff.cuni.cz/services/morphodita/api-reference.php and verified against live
    responses from https://lindat.mff.cuni.cz/services/morphodita/api on 2026-09-01.
  contact:
    name: LINDAT/CLARIAH-CZ Helpdesk
    email: lindat-help@ufal.mff.cuni.cz
    url: https://lindat.mff.cuni.cz/user_feedback
  license:
    name: CC BY-NC-SA
    url: https://creativecommons.org/licenses/by-nc-sa/4.0/
  termsOfService: https://lindat.mff.cuni.cz/en/terms-of-use
servers:
  - url: https://lindat.mff.cuni.cz/services/morphodita/api
    description: Production service operated by ÚFAL, Charles University
tags:
  - name: morphodita
    description: Morphological analysis, generation, tagging and tokenization operations
paths:
  /models:
    get:
      operationId: listMorphoDiTaModels
      summary: List available MorphoDiTa models
      tags: [morphodita]
      responses:
        '200':
          description: Model inventory
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelList'
  /tag:
    get:
      operationId: tagText
      summary: Part-of-speech tag and lemmatize the supplied text
      tags: [morphodita]
      parameters:
        - $ref: '#/components/parameters/Data'
        - $ref: '#/components/parameters/Model'
        - $ref: '#/components/parameters/Guesser'
        - $ref: '#/components/parameters/Input'
        - $ref: '#/components/parameters/ConvertTagset'
        - $ref: '#/components/parameters/Derivation'
        - name: output
          in: query
          required: false
          description: Output format. `json` returns an array of sentences of token objects carrying `token`, `lemma`, `tag` and optionally `space`.
          schema:
            type: string
            enum: [json, xml, vertical]
            default: xml
      responses:
        '200':
          description: Tagging result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceResponse'
  /analyze:
    get:
      operationId: analyzeText
      summary: Perform morphological analysis of the supplied text
      tags: [morphodita]
      parameters:
        - $ref: '#/components/parameters/Data'
        - $ref: '#/components/parameters/Model'
        - $ref: '#/components/parameters/Guesser'
        - $ref: '#/components/parameters/Input'
        - $ref: '#/components/parameters/ConvertTagset'
        - $ref: '#/components/parameters/Derivation'
        - name: output
          in: query
          required: false
          description: Output format. `json` returns token objects each carrying an `analyses` array of `lemma`/`tag` pairs.
          schema:
            type: string
            enum: [json, xml, vertical]
            default: xml
      responses:
        '200':
          description: Analysis result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceResponse'
  /generate:
    get:
      operationId: generateForms
      summary: Perform morphological generation from supplied lemmas
      tags: [morphodita]
      parameters:
        - $ref: '#/components/parameters/Data'
        - $ref: '#/components/parameters/Model'
        - $ref: '#/components/parameters/Guesser'
        - $ref: '#/components/parameters/ConvertTagset'
        - name: output
          in: query
          required: false
          description: Output format. `json` returns an array of lemma results, each an array of objects carrying `form`, `lemma` and `tag`.
          schema:
            type: string
            enum: [json, vertical]
            default: vertical
      responses:
        '200':
          description: Generation result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceResponse'
  /tokenize:
    get:
      operationId: tokenizeTextMorphoDiTa
      summary: Tokenize the supplied text
      tags: [morphodita]
      parameters:
        - $ref: '#/components/parameters/Data'
        - $ref: '#/components/parameters/Model'
        - name: output
          in: query
          required: false
          description: Output format.
          schema:
            type: string
            enum: [json, xml, vertical]
            default: xml
      responses:
        '200':
          description: Tokenization result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceResponse'
components:
  parameters:
    Data:
      name: data
      in: query
      required: true
      description: Input text in UTF-8.
      schema:
        type: string
    Model:
      name: model
      in: query
      required: false
      description: Model to use; accepts a full name, a name without the version suffix, or a prefix.
      schema:
        type: string
    Guesser:
      name: guesser
      in: query
      required: false
      description: Use the morphological guesser for unknown words.
      schema:
        type: string
        enum: ['yes', 'no']
        default: 'yes'
    Input:
      name: input
      in: query
      required: false
      description: Input format to use.
      schema:
        type: string
        enum: [untokenized, vertical]
        default: untokenized
    ConvertTagset:
      name: convert_tagset
      in: query
      required: false
      description: Apply the specified tag-set converter.
      schema:
        type: string
        enum: [pdt_to_conll2009, strip_lemma_comment, strip_lemma_id]
    Derivation:
      name: derivation
      in: query
      required: false
      description: Apply the specified morphological derivation to lemmas.
      schema:
        type: string
        enum: [none, root, path, tree]
        default: none
  schemas:
    ModelList:
      type: object
      properties:
        models:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              enum: [tag, analyze, generate, tokenize]
        default_model:
          type: string
      required: [models, default_model]
    ServiceResponse:
      type: object
      description: Common LINDAT web-service response envelope.
      properties:
        model:
          type: string
        acknowledgements:
          type: array
          items:
            type: string
            format: uri
        result:
          description: Output in the requested output format — a string for xml/vertical, a structured array for json.
      required: [model, result]