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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e964971dbe79783cff5529157bd767d275548d4342358fc8d433b4050eadde95
|
|
| MD5 |
8407494a2f72b42f058a2acac4f1f62a
|
|
| BLAKE2b-256 |
acf266a9a3f38a645c3eeb5b84a1587ffc8c4a96282e5c5751cc92ba40f56cb0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
445b25e5c83e8c6400ed9840718748862ed0c58149d864dbb2437a00c8629280
|
|
| MD5 |
4d4b2516bd9365ad4156d26d9ede1d79
|
|
| BLAKE2b-256 |
1358ccd29bf7c2cf9874fbe95d5ee5a9c267980135e26f863419f4351826b784
|