zodly

API ir MCP

Lietuvių kalbos taisymas jūsų programoje

zodly API ištaiso rašybos, gramatikos ir skyrybos klaidas, perfrazuoja tekstą ir keičia jo toną. Atsakyme gaunate ištaisytą tekstą ir kiekvieno pakeitimo vietą.

Tekstą taiso tie patys pažangūs algoritmai, kurie veikia redaktoriuje ir naršyklės plėtinyje. Atskiras adresas įvertina, ar tekstą sukūrė DI.

API ir MCP veikia su „Max“ planu – 9,99 € per mėnesį. Palyginti planus

Ką galima daryti

Pavyzdžiui, el. parduotuvė patikrina prekių aprašymus prieš juos skelbdama, klientų aptarnavimo sistema – atsakymus klientams, o redakcija – straipsnius.

  • Taisymas

    POST /fix

    Ištaiso rašybos, gramatikos ir skyrybos klaidas ir atkuria lietuviškas raides. Grąžina ištaisytą tekstą ir pakeitimų sąrašą.

  • Perfrazavimas

    POST /rephrase

    Perrašo tekstą formaliau, neformaliau, trumpiau, ilgiau arba paprasčiau, nekeisdamas prasmės.

  • Tono keitimas

    POST /tone

    Pakeičia teksto toną į oficialų, laisvą, draugišką, dalykišką arba neutralų.

  • DI detektorius

    POST /ai-detection

    Įvertina, ar tekstą parašė žmogus, ar jį sukūrė DI. Rezultatas – tikimybė, ne įrodymas.

  • Naudojimas

    GET /usage

    Parodo, kiek šio mėnesio simbolių ir šios dienos DI analizių liko.

  • MCP serveris

    MCP /mcp/check

    Tekstą taisykite tiesiai „ChatGPT“, „Claude.ai“ ir kitose programose, palaikančiose MCP.

Greita pradžia

API gali naudoti „Max“ plano naudotojai. Planus palyginsite kainų puslapyje.

  1. Sukurkite raktą

    Paskyroje atidarykite skiltį „API raktai“, įrašykite rakto pavadinimą ir paspauskite „Sukurti raktą“. Raktas parodomas vieną kartą: išsaugokite jį aplinkos kintamajame ZODLY_API_KEY.

    Raktą laikykite serveryje. Įdėtą į svetainės ar programėlės kodą jį pamatytų bet kas.

  2. Išsiųskite tekstą

    Raktą siųskite antraštėje Authorization: Bearer, o tekstą – JSON lauke text.

    Terminalas

    curl https://zodly.lt/api/v1/fix \
      -H "Authorization: Bearer $ZODLY_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"text":"Labas, siandien."}'
  3. Pritaikykite pakeitimus

    Atsakymas:

    JSON

    {
      "corrected_text": "Labas, šiandien.",
      "changed": true,
      "changes": [
        {
          "offset": 7,
          "length": 9,
          "original": "siandien.",
          "suggestion": "šiandien."
        }
      ],
      "usage": {
        "chars_used": 16,
        "chars_limit": 1000000,
        "chars_left": 999984,
        "resets_at": "2026-12-01T00:00:00Z"
      }
    }
    corrected_text –
    Visas ištaisytas tekstas. Tarpai ir eilučių lūžiai pradžioje ir pabaigoje lieka tokie, kokius siuntėte.
    changed –
    true, jei tekstas pakeistas.
    changes –
    Pakeitimai pagal vietą tekste. offset – kur fragmentas prasideda siųstame tekste (skaičiuojama nuo 0), length – jo ilgis, original – pats fragmentas, suggestion – kuo jį pakeisti. Kai length lygus 0, tekstas įterpiamas, o kai suggestion tuščias, fragmentas išbraukiamas.
    usage –
    Kiek šio mėnesio simbolių sunaudota, kiek liko ir kada limitas atsinaujins.

    Pozicijos ir ilgiai skaičiuojami kodo taškais (angl. Unicode code points), kaip Python len() ir PHP mb_strlen(). JavaScript text.length jaustuką gali laikyti dviem simboliais, todėl ten naudokite Array.from(text). Kelis pakeitimus taikykite nuo sąrašo galo – tada ankstesnių pakeitimų pozicijos nepasislenka.

Kodo pavyzdžiai

Visi pavyzdžiai siunčia tą patį tekstą į /fix ir raktą ima iš aplinkos kintamojo ZODLY_API_KEY. JavaScript pavyzdžiui reikia „Node.js“ 18 ar naujesnės versijos, Python – paketo requests.

Terminalas

curl https://zodly.lt/api/v1/fix \
  -H "Authorization: Bearer $ZODLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Labas, siandien."}'

fix.mjs Paleiskite: node fix.mjs

const response = await fetch("https://zodly.lt/api/v1/fix", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.ZODLY_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ text: "Labas, siandien." }),
});
const result = await response.json();

if (!response.ok) {
  throw new Error(`${result.error}: ${result.message}`);
}

console.log(result.corrected_text);
console.log(result.changes);

fix.php Paleiskite: php fix.php

<?php

$curl = curl_init('https://zodly.lt/api/v1/fix');
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('ZODLY_API_KEY'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['text' => 'Labas, siandien.']),
]);
$result = json_decode(curl_exec($curl), true);

if (curl_getinfo($curl, CURLINFO_RESPONSE_CODE) !== 200) {
    throw new RuntimeException($result['error'] . ': ' . $result['message']);
}

echo $result['corrected_text'], PHP_EOL;
print_r($result['changes']);

fix.py Paleiskite: python3 fix.py

import os

import requests

response = requests.post(
    "https://zodly.lt/api/v1/fix",
    headers={"Authorization": f"Bearer {os.environ['ZODLY_API_KEY']}"},
    json={"text": "Labas, siandien."},
    timeout=300,
)
result = response.json()

if not response.ok:
    raise RuntimeError(f"{result['error']}: {result['message']}")

print(result["corrected_text"])
print(result["changes"])

Adresai

Visi adresai prasideda https://zodly.lt/api/v1. Užklausos turinį siųskite JSON formatu su antrašte Content-Type: application/json. Atsakymas visada yra JSON.

Adresas Ką daro Laukai
POST /fix Ištaiso klaidas ir grąžina pakeitimų sąrašą. text – tekstas
POST /rephrase Perfrazuoja tekstą. text; style – formal (formaliai, numatytasis), informal (neformaliai), shorter (trumpiau), longer (ilgiau), simpler (paprasčiau)
POST /tone Pakeičia teksto toną. text; tone – formal (oficialus, kreipiamasi „Jūs“, numatytasis), informal (laisvas, kreipiamasi „tu“), friendly (draugiškas), professional (dalykiškas), neutral (neutralus)
POST /ai-detection Įvertina, ar tekstą sukūrė DI. text – nuo 50 iki 50 000 simbolių
GET /usage Parodo, kiek simbolių ir DI analizių liko. –
POST /rephrase – užklausos ir atsakymo pavyzdys

Terminalas

curl https://zodly.lt/api/v1/rephrase \
  -H "Authorization: Bearer $ZODLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Nu, gal susitiksim rytoj","style":"formal"}'

JSON

{
  "text": "Galbūt susitiksime rytoj.",
  "usage": {
    "chars_used": 24,
    "chars_limit": 1000000,
    "chars_left": 999976,
    "resets_at": "2026-12-01T00:00:00Z"
  }
}
POST /tone – užklausos ir atsakymo pavyzdys

Terminalas

curl https://zodly.lt/api/v1/tone \
  -H "Authorization: Bearer $ZODLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Nu, gal susitiksim rytoj","tone":"formal"}'

JSON

{
  "text": "Galbūt susitiksime rytoj.",
  "usage": {
    "chars_used": 24,
    "chars_limit": 1000000,
    "chars_left": 999976,
    "resets_at": "2026-12-01T00:00:00Z"
  }
}
POST /ai-detection – užklausos ir atsakymo pavyzdys

Terminalas

curl https://zodly.lt/api/v1/ai-detection \
  -H "Authorization: Bearer $ZODLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Šiandien yra puiki diena mokytis lietuvių kalbos taisyklių ir rašybos. Kiekviena nauja taisyklė padeda rašyti aiškiau."}'

JSON

{
  "score": 9.5,
  "confidence": "high",
  "classification": "human",
  "probabilities": {
    "human": 0.88,
    "ai": 0.07,
    "mixed": 0.05
  },
  "summary": "Tekstas greičiausiai parašytas žmogaus. Nerasta ryškių AI požymių.",
  "warnings": [],
  "detected_language": "lt",
  "usage": {
    "detections_used_today": 1,
    "detections_limit_today": 20,
    "detections_left_today": 19
  }
}
GET /usage – užklausos ir atsakymo pavyzdys

Terminalas

curl https://zodly.lt/api/v1/usage \
  -H "Authorization: Bearer $ZODLY_API_KEY"

JSON

{
  "chars_used": 300,
  "chars_limit": 1000000,
  "chars_left": 999700,
  "resets_at": "2026-12-01T00:00:00Z",
  "detections_used_today": 2,
  "detections_limit_today": 20,
  "detections_left_today": 18
}

Kiekvieno adreso laukus, atsakymus ir klaidas rasite interaktyviame žinyne ir OpenAPI apraše.

Limitai

Limitai taikomi paskyrai, ne programai: visi raktai ir MCP naudoja tą patį likutį.

Limitas Dydis
Mėnesio simbolių limitas 1 000 000 simbolių
Taisymas, perfrazavimas ir tono keitimas. Bendras visiems raktams ir MCP. Atsinaujina kiekvieno mėnesio 1 d. 00:00 UTC.
Užklausų per minutę 60 užklausų
Kiekvienam raktui ir tiek pat visiems jūsų raktams kartu.
Teksto ilgis iki 50 000 simbolių
Vienoje užklausoje. DI detektoriui – nuo 50 iki 50 000 simbolių.
DI analizių per dieną 20 analizių
Bendras su svetaine. Atsinaujina kasdien 00:00 UTC.
API raktų iki 5 raktų
Vienai paskyrai.

Į mėnesio limitą įskaičiuojami visi siųsto teksto simboliai, net jei toks pat tekstas jau buvo taisytas. Nepavykusios užklausos neįskaičiuojamos. Redaktorius, naršyklės plėtinys ir programėlė šio limito nenaudoja.

Likutį rodo GET /usage ir kiekvieno atsakymo laukas usage. Antraštės X-RateLimit-Limit ir X-RateLimit-Remaining rodo, kiek užklausų liko šią minutę.

Klaidos

Klaidos atsakyme yra laukai error (nekintamas kodas) ir message (paaiškinimas lietuvių kalba). Programoje tikrinkite error, o message galite rodyti žmonėms.

Būsena Kodas Paaiškinimas
400 BAD_REQUEST Užklausa netinkama.
401 UNAUTHENTICATED Trūksta rakto, jis neteisingas arba atšauktas. Patikrinkite antraštę Authorization.
403 API_KEY_REQUIRED Siųstas ne API raktas, pvz., plėtinio ar programėlės prisijungimas. Naudokite paskyroje sukurtą raktą.
403 PLAN_REQUIRED Paskyra neturi galiojančio „Max“ plano. Raktas vėl veiks, kai planą pratęsite.
403 FORBIDDEN Prieiga uždrausta dėl kitos priežasties.
404 NOT_FOUND Tokio adreso nėra.
405 METHOD_NOT_ALLOWED Adresas šio metodo nepriima. Antraštė Allow nurodo tinkamus.
409 ANALYSIS_IN_PROGRESS Ankstesnė DI analizė dar vyksta. Kartokite, kai ji baigsis.
413 PAYLOAD_TOO_LARGE Užklausa per didelė. Siųskite tekstą dalimis.
422 VALIDATION_FAILED Laukas neužpildytas arba netinkamas. Laukas errors nurodo, kuris. Tokį patį atsakymą gaunate, kai JSON sugadintas arba trūksta antraštės Content-Type: application/json.
422 TEXT_TOO_LONG Tekstas per ilgas apdoroti, nes eilučių lūžiai užima vietos. Sutrumpinkite jį arba siųskite dalimis.
429 RATE_LIMITED Per daug užklausų per minutę. Kartokite po tiek sekundžių, kiek nurodo antraštė Retry-After.
429 API_MONTHLY_LIMIT Tekstui neužtenka šio mėnesio simbolių. Kai chars_left lygus 0, limitas išnaudotas, o Retry-After rodo, po kiek sekundžių jis atsinaujins. Kai chars_left didesnis už 0, tekstas netelpa į likutį: sutrumpinkite jį. Antraštės Retry-After tada nėra.
429 AI_DETECTION_LIMIT Šios dienos DI analizės išnaudotos. Retry-After rodo, po kiek sekundžių limitas atsinaujins.
500 PROCESSING_ERROR Nepavyko apdoroti teksto. Užklausa į limitus neįskaičiuota, bandykite dar kartą.
503 SERVICE_UNAVAILABLE Paslauga laikinai nepasiekiama, pvz., atnaujinimo metu. Bandykite po kelių minučių.

MCP: taisymas pokalbių ir kodo programose

MCP serveris https://zodly.lt/mcp/check leidžia taisyti tekstą tiesiai programose, palaikančiose MCP. Įrankis fix-text grąžina ištaisytą tekstą, pakeitimus ir mėnesio limito likutį. Tekstas įskaičiuojamas į tą patį limitą kaip API.

„ChatGPT“ ir „Claude.ai“

Nustatymuose pridėkite naują jungtį (angl. connector) ir nurodykite adresą https://zodly.lt/mcp/check. Atsidarys zodly prisijungimo langas: prisijunkite ir paspauskite „Leisti“. Rakto nereikia.

Kitos programos

„Cursor“, „VS Code“ ir kitose programose nurodykite adresą https://zodly.lt/mcp/check (Streamable HTTP). Prisijunkite per zodly arba siųskite API raktą antraštėje Authorization: Bearer.

„Claude Code“

Paleiskite terminale:

Terminalas

claude mcp add --transport http zodly https://zodly.lt/mcp/check --header "Authorization: Bearer $ZODLY_API_KEY"

Be --header dalies „Claude Code“ paprašys prisijungti per zodly: paleiskite /mcp ir pasirinkite zodly.

Prisijungti per zodly gali „Max“ plano naudotojai. Prijungtas programas matote ir atjungiate paskyros skiltyje „API raktai“.

Viešas MCP serveris https://zodly.lt/mcp veikia be prisijungimo: atsako apie planus, puslapius ir DUK, bet teksto netaiso.

Raktai, nustatymai ir privatumas

Rakto galiojimas –
Raktas galioja, kol jį atšauksite skiltyje „API raktai“. Pakeitus slaptažodį ar ištrynus paskyrą, atšaukiami visi raktai ir atjungiamos visos prijungtos programos.
Nustatymai –
Jei redaktoriaus nustatymuose įjungėte „Taisyti anglicizmus“, API ir MCP taiso ir anglicizmus.
Siunčiamas tekstas –
Tik užklausoje pateiktas tekstas, šifruotu ryšiu (HTTPS). Viso taisomo teksto duomenų bazėje nesaugome. DI detektoriui pateikto teksto pradžią saugome kaip ir svetainėje.
Saugomi duomenys –
Rakto pavadinimas, maišos reikšmė (pats raktas nesaugomas), sukūrimo ir paskutinio naudojimo laikas, o apie kiekvieną užklausą – jos laikas, adresas ir simbolių skaičius, bet ne tekstas. Prijungtai programai – jos pavadinimas ir nukreipimo adresas, kuriuos ji nurodė registruodamasi, suteikta prieiga ir prisijungimo žymų galiojimo laikas. Plačiau – privatumo politikoje.

Pradėkite nuo vieno rakto

Sukurkite raktą paskyroje ir išsiųskite pirmą užklausą. API ir MCP veikia su „Max“ planu.

OpenAPI aprašas Planai ir kainos