Transliterator API

Konvertera 27+ skriftsystem till latin direkt - perfekt för SEO-sluggar, normaliserad sökning och datapipelines.

Vad kan du göra?
Söknormalisering

Indexera och sök i innehåll med blandade skriftsystem enhetligt.

SEO-sluggar

Generera rena flerspråkiga URL:er direkt.

Datapipelines

Mata kataloger eller NLP-arbetsflöden med konsekvent text.

Testa live
99.9 % Drifttid
12.5ms Svar
20 req/s
0.009 Krediter / förfrågan

Transliterator API


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

Förfrågningsexempel

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

API-integrationer

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
}

Svarskoder

KodBeskrivning
200 SuccessFörfrågan behandlad OK.
400 Bad RequestIndatavalidering misslyckades.
401 UnauthorizedSaknad / felaktig API-nyckel.
403 ForbiddenNyckel inaktiv eller ej tillåten.
429 Rate LimitFör många förfrågningar.
500 Server ErrorOväntat fel.

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.

Vanliga frågor

Vi stöder fullständig translitterering för 25+ skriftsystem inklusive arabiska, kyrilliska, grekiska, hebreiska och CJK. Behöver du ett annat språk? Kontakta oss.

Vi använder ISO eller de facto webbstandarder. Noggrannheten är vanligtvis 95%+ för vanligt ordförråd.

Ja. Varje förfrågan, även de som resulterar i fel, förbrukar krediter. Dina krediter är kopplade till antalet förfrågningar, oavsett framgång eller misslyckande. Om felet tydligt beror på ett plattformsproblem på vår sida återställer vi de berörda krediterna (ingen kontant återbetalning).

Kontakta oss på [email protected]. Vi tar feedback på allvar—om din felrapport eller funktionsbegäran är meningsfull kan vi snabbt fixa eller förbättra API:et och ge dig 50 gratis krediter som tack.

Det beror på API:et och ibland till och med på endpointen. Vissa endpoints använder data från externa källor, som kan ha striktare gränser. Vi tillämpar också gränser för att förhindra missbruk och hålla vår plattform stabil. Kontrollera dokumentationen för den specifika gränsen för varje endpoint.

Vi arbetar med ett kreditsystem. Krediter är förbetalda, icke-återbetalningsbara enheter du spenderar på API-anrop och verktyg. Krediter förbrukas FIFO (äldst först) och gäller i 12 månader från inköpsdatumet. Instrumentpanelen visar varje inköpsdatum och dess utgång.

Ja. Alla köpta krediter (inklusive bråkdelssaldon) gäller i 12 månader från köpet. Oanvända krediter förfaller automatiskt och raderas permanent i slutet av giltighetsperioden. Förfallna krediter kan inte återställas eller konverteras till kontanter eller annat värde. Övergångsregel: krediter köpta före 22 sept. 2025 behandlas som köpta den 22 sept. 2025 och förfaller den 22 sept. 2026 (om inte ett tidigare utgångsdatum angavs vid köpet).

Ja—inom sin giltighetsperiod. Oanvända krediter förblir tillgängliga och överförs från månad till månad tills de förfaller 12 månader efter köpet.

Krediter är icke-återbetalningsbara. Köp bara det du behöver—du kan alltid fylla på senare. Om ett plattformsfel orsakar en misslyckad debitering kan vi återställa de berörda krediterna efter utredning. Ingen kontant återbetalning.

Priserna anges i krediter, inte i dollar. Varje endpoint har sin egen kostnad—se märket "Krediter / förfrågan" ovan. Du vet alltid exakt vad du spenderar.
← Tillbaka till API:er