Transliterator API

Конвертуйте 27+ систем письма в латиницю миттєво - ідеально для SEO-слагів, нормалізованого пошуку та конвеєрів даних.

Що ви можете зробити?
Нормалізація пошуку

Індексуйте та шукайте вміст з різними системами письма уніфіковано.

SEO-слаги

Генеруйте чисті багатомовні URL миттєво.

Конвеєри даних

Подавайте каталоги або NLP-робочі процеси узгодженим текстом.

Спробувати наживо
99.9 % Час роботи
12.5ms Відповідь
20 req/s
0.009 Кредити / запит

Transliterator API


POST https://api.yeb.to/v1/transliterator
Параметр Тип Обов'язковий Опис
api_key string так Auth key
lang string необов'язковий ISO code of input script
text string так Input text (max. 255 chars)
type string необов'язковий plain | slug | snake | camel | capital | upper | lower
delimiter string необов'язковий Custom delimiter for slug/snake

Приклади запитів

{
  "api_key":"YOUR_KEY",
  "lang":"bg",
  "text":"пример"
}
{
  "api_key":"YOUR_KEY",
  "lang":"ru",
  "text":"тест транслитерация",
  "type":"slug",
  "delimiter":"_"
}

Інтеграції API

curl -X POST https://api.yeb.to/v1/transliterator \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","lang":"bg","text":"пример","type":"slug","delimiter":"-"}'
Route::post('/transliterate', function () {
    $data = Http::post('https://api.yeb.to/v1/transliterator', [
        'api_key'   => config('services.transliterator.key'),
        'lang'      => 'bg',
        'text'      => 'пример',
        'type'      => 'slug',
        'delimiter' => '-',
    ]);
    return $data->json();
});
$r = Http::post('https://api.yeb.to/v1/transliterator', [
    'api_key'=>'YOUR_KEY','lang'=>'bg','text'=>'пример',
    'type'=>'slug','delimiter'=>'-'
]);
echo $r->json();
fetch('https://api.yeb.to/v1/transliterator', {
  method:'POST',
  headers:{'Content-Type':'application/json'},
  body:JSON.stringify({api_key:'YOUR_KEY',lang:'bg',text:'пример',type:'slug',delimiter:'-'})
}).then(r=>r.json()).then(console.log);
import requests, json
payload = {"api_key":"YOUR_KEY","lang":"bg","text":"пример","type":"slug","delimiter":"-"}
r = requests.post('https://api.yeb.to/v1/transliterator', headers={'Content-Type':'application/json'},
                  data=json.dumps(payload))
print(r.json())

Response Example

{
  "result":"primer","original":"пример","lang":"bg",
  "type":"slug","delimiter":"-","response_code":200,"response_time_ms":37
}
{
  "error":"Invalid API key","code":401,
  "response_code":401,"response_time_ms":12
}

Коди відповідей

КодОпис
200 SuccessЗапит оброблено успішно.
400 Bad RequestВалідація введення не пройдена.
401 UnauthorizedAPI-ключ відсутній або неправильний.
403 ForbiddenКлюч неактивний або не дозволений.
429 Rate LimitЗабагато запитів.
500 Server ErrorНепередбачена помилка.

transliterate

transliterator 0.0090 credits

Parameters

API Key
query · string · required
Language
query · string
Text
query · string · required
Output type
query · string
Delimiter
query · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Transliterator API — Practical Guide

A hands-on guide to Transliterator API: what it does, when to use each mode, the parameters that actually matter, and how to read responses for SEO slugs, filenames, app identifiers, and more.

#What Transliterator solves

Send a text in any supported script (e.g., Cyrillic, Greek) and get a clean Latin version and/or a specific formatting: slug, snake_case, camelCase, Capital Case, UPPER, or lower. Perfect for SEO URLs, file/ID normalization, search indexing, and consistent UI labels.

#Endpoint & when to use it

#POST https://api.yeb.to/v1/transliterator

  • Best for: Turning any input into a safe, predictable string for URLs, filenames, database keys, and user-facing titles.
  • How it works: We transliterate to Latin and then apply the chosen type transform (slug/snake/camel/etc.).
  • Idempotent: Same input parameters → same output; safe to cache.

#Quick start

# Plain transliteration (auto-detect language)
curl -X POST "https://api.yeb.to/v1/transliterator" \
  -H "Content-Type: application/json" \
  -d '{ "api_key": "YOUR_KEY", "text": "пример" }'
# SEO slug with custom delimiter
curl -X POST "https://api.yeb.to/v1/transliterator" \
  -H "Content-Type: application/json" \
  -d '{ "api_key": "YOUR_KEY", "lang": "ru", "text": "тест транслитерация", "type": "slug", "delimiter": "_" }'

#Parameters that actually matter

ParamRequiredWhat to pass in practiceWhy it matters
api_key Yes Send from server/edge. Don’t expose raw keys in client JS. Auth & rate limiting.
text Yes Up to 255 chars; emojis and unsupported symbols are stripped. Primary content to process.
lang No ISO code of input script (e.g., bg, ru, el). If omitted, we auto-detect. Improves accuracy for ambiguous inputs.
type No plain | slug | snake | camel | capital | upper | lower Choose the output format you need.
delimiter No Use with slug/snake to set the separator (default - for slug, _ for snake). Brand-consistent URLs and identifiers.

#Choosing the right type

TypeUse it forNotes
plainReadable Latin outputNo case/spacing changes; punctuation trimmed.
slugSEO URLsLowercase, spaces → delimiter, trims duplicates: пример тестprimer-test.
snakeDatabase keys, filenamesLowercase + _ (or custom delimiter).
camelCode identifiersprimerTest style.
capitalUI labelsPrimer Test title case.
upperSorting / normalizationAll caps.
lowerCase-insensitive searchAll lowercase.

#Reading & acting on responses

{
  "result": "primer",
  "original": "пример",
  "lang": "bg",
  "type": "slug",
  "delimiter": "-",
  "response_code": 200,
  "response_time_ms": 37
}
  • result — the processed string; use this directly in URLs/keys/UI.
  • original — what you sent (after trimming); handy for logs and idempotency checks.
  • lang — detected or provided language; helps debug unexpected mappings.
  • type, delimiter — echo of your chosen transform; store alongside to rebuild exactly.

#Typical errors & how to fix

{ "error": "Missing \"text\" parameter", "code": 422 }
{ "error": "Unsupported type: foo", "code": 422 }
  • 422 missing/invalid: Provide text; ensure type ∈ allowed list.
  • 401 invalid key: Rotate your key; send from server/edge only.
  • 413 too long: Keep text ≤ 255 chars; pre-trim user input.

#Troubleshooting & field notes

  1. Unexpected characters: Emojis/symbols are removed; if you need them, store the original separately.
  2. Spaces & dashes: For slug/snake we collapse repeated separators (---).
  3. Custom brand separators: Use delimiter to enforce _, ., or even no delimiter.
  4. Language ambiguity: Specify lang when inputs can be mixed (e.g., Serbian Cyrillic vs. Russian).
  5. Batching: For bulk imports, keep requests ≤ 100 rps and reuse connections; cache deterministic results.

#API Changelog

2025-10-20
Added capital output type and improved auto-detection for mixed scripts. Normalized duplicate separators in slug/snake.
2025-10-12
Custom delimiter now supported for both slug and snake. Minor Cyrillic → Latin mapping refinements (BG/RU).
2025-10-01
Public v1 release with plain, slug, snake, camel, upper, lower. Max input length set to 255 chars.

Часті запитання

Ми підтримуємо повну транслітерацію для 25+ систем письма, включаючи арабську, кирилицю, грецьку, іврит та CJK. Потрібна інша мова? Зв'яжіться з нами.

Ми використовуємо стандарти ISO або де-факто веб-стандарти. Точність зазвичай 95%+ для звичайної лексики.

Так. Кожен запит, навіть з помилкою, витрачає кредити. Ваші кредити прив'язані до кількості запитів, незалежно від успіху чи невдачі. Якщо помилка явно спричинена проблемою платформи з нашого боку, ми відновимо постраждалі кредити (без грошового повернення).

Зв'яжіться з нами за адресою [email protected]. Ми серйозно ставимося до зворотного зв'язку—якщо ваш звіт про помилку або запит на функцію є обґрунтованим, ми можемо швидко виправити або покращити API та надати вам 50 безкоштовних кредитів на подяку.

Залежить від API і іноді навіть від ендпоінту. Деякі ендпоінти використовують дані із зовнішніх джерел, які можуть мати суворіші обмеження. Ми також застосовуємо ліміти для запобігання зловживанням та підтримання стабільності платформи. Перевірте документацію щодо конкретного ліміту для кожного ендпоінту.

Ми працюємо на кредитній системі. Кредити — це передоплачені, неповоротні одиниці, які ви витрачаєте на API-виклики та інструменти. Кредити витрачаються за принципом FIFO (найстаріші першими) і дійсні протягом 12 місяців з дати покупки. Панель управління показує дату кожної покупки та її закінчення.

Так. Усі придбані кредити (включаючи дробові залишки) дійсні 12 місяців з моменту покупки. Невикористані кредити автоматично закінчуються і назавжди видаляються наприкінці терміну дії. Прострочені кредити не можна відновити або конвертувати в готівку чи іншу цінність. Перехідне правило: кредити, придбані до 22 вер. 2025, вважаються придбаними 22 вер. 2025 і закінчуються 22 вер. 2026 (якщо при покупці не було вказано ранішого терміну).

Так—у межах терміну дії. Невикористані кредити залишаються доступними і переносяться з місяця в місяць, поки не закінчаться через 12 місяців після покупки.

Кредити є неповоротними. Купуйте лише те, що потрібно—ви завжди можете поповнити пізніше. Якщо помилка платформи спричинить невдале списання, ми можемо відновити постраждалі кредити після розслідування. Без грошового повернення.

Ціни встановлені в кредитах, а не в доларах. Кожен ендпоінт має свою вартість—дивіться значок «Кредити / запит» вище. Ви завжди точно знатимете, скільки витрачаєте.
← Назад до API