Transliterator API

Konverter 27+ skriftsystemer til latin øyeblikkelig - perfekt for SEO-slugs, normalisert søk og datapipelines.

Hva kan du gjøre?
Søkenormalisering

Indekser og søk i innhold med blandede skriftsystemer samlet.

SEO-slugs

Generer rene flerspråklige URLer umiddelbart.

Datapipelines

Mat kataloger eller NLP-arbeidsflyter med konsistent tekst.

Prøv live
99.9 % Oppetid
12.5ms Svar
20 req/s
0.009 Kreditter / forespørsel

Transliterator API


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

Forespørselseksempler

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

API-integrasjoner

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
}

Svarkoder

KodeBeskrivelse
200 SuccessForespørsel behandlet OK.
400 Bad RequestInngangsvalidering mislyktes.
401 UnauthorizedManglende / feil API-nøkkel.
403 ForbiddenNøkkel inaktiv eller ikke tillatt.
429 Rate LimitFor mange forespørsler.
500 Server ErrorUventet feil.

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.

Ofte stilte spørsmål

Vi støtter full translitterering for 25+ skriftsystemer inkludert arabisk, kyrillisk, gresk, hebraisk og CJK. Trenger du et annet språk? Kontakt oss.

Vi bruker ISO eller de facto webstandarder. Nøyaktigheten er vanligvis 95%+ for vanlig ordforråd.

Ja. Hver forespørsel, selv de som resulterer i feil, forbruker kreditter. Kredittene dine er knyttet til antall forespørsler, uavhengig av suksess eller feil. Hvis feilen tydelig skyldes et plattformproblem på vår side, gjenoppretter vi de berørte kredittene (ingen kontantrefusjon).

Kontakt oss på [email protected]. Vi tar tilbakemeldinger på alvor—hvis feilrapporten eller funksjonsforespørselen din er meningsfull, kan vi fikse eller forbedre API-et raskt og gi deg 50 gratis kreditter som takk.

Det avhenger av API-et og noen ganger til og med av endepunktet. Noen endepunkter bruker data fra eksterne kilder, som kan ha strengere grenser. Vi håndhever også grenser for å forhindre misbruk og holde plattformen stabil. Sjekk dokumentasjonen for den spesifikke grensen for hvert endepunkt.

Vi opererer med et kredittsystem. Kreditter er forhåndsbetalte, ikke-refunderbare enheter du bruker på API-kall og verktøy. Kreditter forbrukes etter FIFO-prinsippet (eldste først) og er gyldige i 12 måneder fra kjøpsdatoen. Dashbordet viser hver kjøpsdato og dens utløp.

Ja. Alle kjøpte kreditter (inkludert brøkdeler) er gyldige i 12 måneder fra kjøpet. Ubrukte kreditter utløper automatisk og slettes permanent ved slutten av gyldighetsperioden. Utløpte kreditter kan ikke gjenopprettes eller konverteres til kontanter eller annen verdi. Overgangsregel: kreditter kjøpt før 22. sep. 2025 behandles som kjøpt 22. sep. 2025 og utløper 22. sep. 2026 (med mindre en tidligere utløpsdato ble oppgitt ved kjøpet).

Ja—innenfor gyldighetsperioden. Ubrukte kreditter forblir tilgjengelige og overføres fra måned til måned til de utløper 12 måneder etter kjøpet.

Kreditter er ikke-refunderbare. Kjøp bare det du trenger—du kan alltid fylle på senere. Hvis en plattformfeil forårsaker en mislykket belastning, kan vi gjenopprette de berørte kredittene etter undersøkelse. Ingen kontantrefusjon.

Prisene er satt i kreditter, ikke dollar. Hvert endepunkt har sin egen pris—se merket «Kreditter / forespørsel» ovenfor. Du vet alltid nøyaktig hva du bruker.
← Tilbake til API-er