Integruj Orto ze swoimi aplikacjami.
POST https://ortoskrypt.pl/api/correction/correct
Klucz API należy przekazać w nagłówku Authorization:
Authorization: Bearer sk_live_...
textwymaganyintervention_levelwymagany„high" (pełna – gramatyka, styl, leksyka) lub „low" (minimalna – tylko ortografia i interpunkcja).do_not_saveopcjonalnytrue, korekta nie zostanie zapisana w historii.curl -X POST https://ortoskrypt.pl/api/correction/correct \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"text": "Twój tekst do korekty...",
"intervention_level": "high"
}'const response = await fetch(
'https://ortoskrypt.pl/api/correction/correct',
{
method: 'POST',
headers: {
'Authorization': 'Bearer sk_live_...',
'Content-Type': 'application/json',
},
body: JSON.stringify({
text: 'Twój tekst do korekty...',
intervention_level: 'high',
}),
}
);
const data = await response.json();
console.log(data.corrected_text);original_textOryginalny tekst przekazany do korekty.corrected_textTekst po korekcie.processing_timeCzas przetwarzania w sekundach.{
"original_text": "...",
"corrected_text": "...",
"processing_time": 1.23
}Konta z kluczem API mogą wykonać 20 zapytań na 5 minut. Aktualne limity zwracane są w nagłówkach każdej odpowiedzi:
X-RateLimit-LimitMaksymalna liczba zapytań w oknie czasowym.X-RateLimit-RemainingPozostała liczba zapytań w bieżącym oknie.X-RateLimit-ResetCzas resetu limitu (Unix timestamp w ms).400Nieprawidłowe dane wejściowe (brak tekstu, tekst pusty lub za długi).401Brak klucza API lub klucz nieprawidłowy/nieaktywny.403Brak planu biznesowego.429Przekroczono limit zapytań. Sprawdź X-RateLimit-Reset.500Błąd serwera. Spróbuj ponownie po chwili.Korekta – w zależności od długości tekstu – może trwać kilka–kilkanaście minut. Zamiast czekać na odpowiedź, możesz użyć trybu asynchronicznego.
POST https://ortoskrypt.pl/api/correction/queue
Przyjmuje te same parametry co endpoint synchroniczny. Zwraca natychmiast z kodem 202:
{
"job_id": "uuid...",
"status": "pending"
}GET https://ortoskrypt.pl/api/correction/jobs/{job_id}Pole status przyjmuje wartości:
pendingZadanie oczekuje w kolejce.processingTrwa korekta.completedGotowe. Odpowiedź zawiera pole result.failedBłąd. Odpowiedź zawiera pole error.curl -H "Authorization: Bearer sk_live_..." \ https://ortoskrypt.pl/api/correction/jobs/twój-job-id
// 1. Wyślij zadanie
const { job_id } = await fetch(
'https://ortoskrypt.pl/api/correction/queue',
{
method: 'POST',
headers: {
'Authorization': 'Bearer sk_live_...',
'Content-Type': 'application/json',
},
body: JSON.stringify({
text: 'Twój tekst do korekty...',
intervention_level: 'high',
}),
}
).then(r => r.json())
// 2. Sprawdzaj co 2 sekundy
const result = await new Promise((resolve, reject) => {
const poll = setInterval(async () => {
const res = await fetch(
`https://ortoskrypt.pl/api/correction/jobs/${job_id}`,
{ headers: { 'Authorization': 'Bearer sk_live_...' } }
).then(r => r.json())
if (res.status === 'completed') {
clearInterval(poll)
resolve(res.result)
} else if (res.status === 'failed') {
clearInterval(poll)
reject(new Error(res.error))
}
}, 2000)
})
console.log(result.corrected_text)