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-је