Skip to main content

Free API for conjugating Russian verbs in all tenses (present, past, future)

Project description

ru-api-free

Free REST API for conjugating Russian verbs in all tenses (present, past, future).
Translate words from any language to Russian — if it's a verb, you get full conjugation.

Quick Start

Run the server

pip install ru-api-free
ru-api-free

Open http://localhost:8000 for API docs, or http://localhost:8000/site for the web UI.


API Endpoints

1. Translate + Conjugate (most useful)

Auto-detect any language, translate to Russian, then conjugate if it's a verb.

GET /translate?text={word}&source=auto&target=ru
Param Default Description
text Word to translate (required)
source auto Source language code (en, de, fr, es, pl, uk…)
target ru Target language code

Examples:

/translate?text=speak          # English → Russian + conjugate
/translate?text=sprechen&source=de  # German → Russian + conjugate
/translate?text=house          # English → Russian (noun, no conjugation)
/translate?text=читать&source=ru&target=en  # Russian → English translation only

JavaScript (use on your website):

async function conjugate(word) {
  const res = await fetch(`/translate?text=${encodeURIComponent(word)}&source=auto&target=ru`);
  return await res.json();
}

// Usage
conjugate('speak').then(data => {
  console.log(data.verb);        // "говорить"
  console.log(data.tenses);      // { present: {...}, past: {...}, future: {...} }
});

Python:

import requests

r = requests.get("http://localhost:8000/translate", params={"text": "speak"})
data = r.json()
print(data["verb"])             # "говорить"
print(data["tenses"]["present"])  # {"я": "говорю", "ты": "говоришь", ...}

cURL:

curl "http://localhost:8000/translate?text=speak"

2. Direct Conjugation (Russian verb only)

GET /conjugate?verb={verb}
curl "http://localhost:8000/conjugate?verb=читать"
fetch("/conjugate?verb=говорить").then(r => r.json()).then(console.log);

3. List all verbs

GET /verbs

Returns all 190+ Russian verbs in the database with aspect and reflexive info.

4. Search verbs

GET /search?q={query}
curl "http://localhost:8000/search?q=чит"

5. Conjugation exceptions

GET /exceptions              # All exceptions
GET /exceptions/{verb}       # Exceptions for one verb

Response Format

A conjugation response looks like:

{
  "verb": "говорить",
  "aspect": "imperfective",
  "conjugation_type": 2,
  "reflexive": false,
  "tenses": {
    "present": {
      "я": "говорю",
      "ты": "говоришь",
      "он/она/оно": "говорит",
      "мы": "говорим",
      "вы": "говорите",
      "они": "говорят"
    },
    "past": {
      "мужской": "говорил",
      "женский": "говорила",
      "средний": "говорило",
      "множественное": "говорили"
    },
    "future": {
      "я": "буду говорить",
      "ты": "будешь говорить",
      "он/она/оно": "будет говорить",
      "мы": "будем говорить",
      "вы": "будете говорить",
      "они": "будут говорить"
    }
  }
}

Language codes

auto, en, ru, de, fr, es, it, pt, nl, pl, uk, be, bg, cs, sk, sr, hr, tr, ar, zh, ja, ko


Python Library

You can also use the library directly without running a server:

from ru_api_free import conjugate, translate

# Conjugate directly
result, status = conjugate("читать")
print(result["tenses"]["present"]["я"])  # "читаю"

# Translate (no server needed)
russian = translate("speak", source="auto", target="ru")
print(russian)  # "говорить"

Self-Hosting

pip install ru-api-free
ru-api-free
# or: uvicorn ru_api_free.main:app --host 0.0.0.0 --port 8000

The API has CORS enabled for all origins — use it directly from any website.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ru_api_free-1.1.0.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ru_api_free-1.1.0-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file ru_api_free-1.1.0.tar.gz.

File metadata

  • Download URL: ru_api_free-1.1.0.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for ru_api_free-1.1.0.tar.gz
Algorithm Hash digest
SHA256 e964971dbe79783cff5529157bd767d275548d4342358fc8d433b4050eadde95
MD5 8407494a2f72b42f058a2acac4f1f62a
BLAKE2b-256 acf266a9a3f38a645c3eeb5b84a1587ffc8c4a96282e5c5751cc92ba40f56cb0

See more details on using hashes here.

File details

Details for the file ru_api_free-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: ru_api_free-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for ru_api_free-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 445b25e5c83e8c6400ed9840718748862ed0c58149d864dbb2437a00c8629280
MD5 4d4b2516bd9365ad4156d26d9ede1d79
BLAKE2b-256 1358ccd29bf7c2cf9874fbe95d5ee5a9c267980135e26f863419f4351826b784

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page