Online-Transliterator & API

Konvertieren Sie über 27 Schriftsysteme sofort ins Lateinische – perfekt für SEO-Slugs, normalisierte Suche und Datenpipelines.

Was kannst du tun?
Suchnormalisierung

Indexieren und durchsuchen Sie gemischtsprachige Inhalte wie einheitlichen Text.

SEO-Slugs

Erzeugen Sie im Handumdrehen saubere mehrsprachige URLs.

Datenpipelines

Versorgen Sie Kataloge oder NLP-Workflows mit konsistentem Text.

Live ausprobieren
99.9 % Verfügbarkeit
12.5ms Antwort
20 req/s
0.009 Guthaben / Anfrage

Transliterator API


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

Beispielanfragen

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

API-Integrationen

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
}

Antwortcodes

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.

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

                

Online-Transliterator & API — Practical Guide

A hands-on guide to Online-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.

Häufig gestellte Fragen

Wir unterstützen die vollständige Transliteration für die folgenden Schriftsysteme:
ar (Arabisch), be (Belarussisch), bg (Bulgarisch), bn (Bengalisch), el (Griechisch), gu (Gujarati), he (Hebräisch), hi (Hindi), hy (Armenisch), ja (Japanisch),
ka (Georgisch), kk (Kasachisch), km (Khmer), ko (Koreanisch), ky (Kirgisisch), mk (Mazedonisch), mn (Mongolisch), my (Birmanisch), ne (Nepalesisch),
ru (Russisch), si (Singhalesisch), sr (Serbisch), ta (Tamil), tg (Tadschikisch), th (Thailändisch), uk (Ukrainisch), zh-Hans (Chinesisch vereinfacht), zh-Hant (Chinesisch traditionell).

Wir verwenden erprobte Open-Source-Mappings und Konventionen (ISO oder faktische Webstandards). Die Genauigkeit liegt bei gängigen Wörtern typischerweise über 95 %.

Bis zu 20 Anfragen / Sekunde pro Schlüssel. Keine täglichen oder monatlichen Obergrenzen – zahlen Sie nach Verbrauch.

Wir verwenden ein Guthabensystem. Einmal kaufen – Guthaben verfällt nie und es gibt keine Abonnements.

Jeder HTTP-Aufruf ist eine Anfrage; jede Anfrage verbraucht eine Anzahl von Guthaben abhängig vom Endpunkt.

Ja, sie verfallen niemals, bis Sie sie ausgeben (eine Rückerstattung ist jedoch ausgeschlossen).

Guthaben sind nicht erstattungsfähig. Kaufen Sie bitte nur, was Sie brauchen – Sie können jederzeit aufladen.

Die Preise werden in Guthaben angegeben, nicht in Dollar. Jeder Endpunkt listet seine eigenen Kosten – siehe das Abzeichen „Guthaben / Anfrage“ oben.
← Zurück zu APIs