Transliterator API

Instantly convert 27+ scripts to Latin – perfect for SEO slugs, normalised search and data pipelines.

What can you do?
Search normalisation

Index & query mixed-script content as one.

SEO slugs

Generate clean multilingual URLs on the fly.

Data pipelines

Feed catalogues or NLP workflows with consistent text.

Try Live
99.9 % Uptime
Response
20 req/s
0.009 Credits / request

Transliterator API


POST https://api.yeb.to/v1/transliterator
Parameter Type Req. Description
api_key string yes Auth key
lang string opt ISO code of input script
text string yes Input text (max. 255 chars)
type string opt plain | slug | snake | camel | capital | upper | lower
delimiter string opt Custom delimiter for slug/snake

Request Examples

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

API Integrations

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
}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Frequently Asked Questions

We support full transliteration for 25+ scripts including Arabic, Cyrillic, Greek, Hebrew and CJK. Need another language? Contact us.

We use ISO or de-facto web standards. Accuracy is typically 95 %+ for common vocabulary.

Up to 5 requests / second per key. No daily or monthly caps – just pay as you go.

We operate on a credit system. Buy once – credits never expire and there are no subscriptions.

Every HTTP call is one request; each request consumes a number of credits depending on the endpoint.

Yes, they never expire until you spend them (but they are non-refundable).

Credits are non-refundable. Please buy only what you need – you can top-up any time.

Prices are set in credits, not dollars. Each endpoint lists its own cost – see the “Credits / request” badge above.
← Back to APIs