Für Entwickler
API-Fehler
Jeder Fehler antwortet mit JSON und einem Code in detail, etwa {"detail": "auth.unauthorized"}. Einige Codes fügen daneben Felder hinzu.
| Status | Code | Bedeutung | Außerdem zurückgegeben |
|---|---|---|---|
| 400 | assess.unsupportedLanguage | language (oder source_language bzw. target_language) ist keiner der Sprachcodes der API in genau dieser Schreibweise. | — |
| 400 | request.bodyNotJson | Der JSON-Body ließ sich nicht als JSON lesen. | — |
| 400 | request.unknownAudioFormat | audio_format ist weder mp3 noch wav. | — |
| 400 | assess.noAudio | Die Datei in audio ist leer. | — |
| 400 | assessment.audioUnreadable | Die hochgeladene Datei ist kein Audio, das Spelly lesen kann. | — |
| 401 | auth.unauthorized | Der Header X-API-Key fehlt, ist falsch oder widerrufen. | — |
| 401 | widget.keyInvalid | Der Widget-Schlüssel ist unbekannt oder widerrufen. | — |
| 402 | operator.trialExhausted | Deine Einheiten sind aufgebraucht. | remaining und requested (Einheiten), upgrade_url (null, solange keine Pakete verkauft werden) |
| 403 | auth.endpointNotAllowed | Dein Schlüssel darf diese Route nicht aufrufen; die erlaubten Routen stehen unter „Alle Endpunkte“. | — |
| 403 | operator.inactive | Das Konto, dem der Schlüssel gehört, ist pausiert oder gelöscht. | — |
| 404 | request.notFound | Diese Route gibt es nicht. | — |
| 405 | request.methodNotAllowed | Die Route gibt es, aber nicht mit dieser Methode. | — |
| 413 | assess.recordingTooLong | Die Aufnahme überschreitet die Größengrenze. | — |
| 413 | request.tooLarge | Der Body der Anfrage ist zu groß. | — |
| 422 | assessment.nothingHeard | Die Aufnahme enthält keine Sprache: Sie ist stumm, oder das Mikrofon hat nichts aufgenommen. Es wird nichts berechnet. | — |
| 422 | request.invalid | Ein Feld fehlt, wird vom Aufruf nicht angenommen oder hat einen Wert, den er nicht annimmt; oder der Body ist kein JSON-Objekt. | errors: ein {"field", "problem"} pro falschem Feld, bei manchen Problemen mit value; problem ist ein Typ wie missing, extra_forbidden (ein Feld, das der Aufruf nicht annimmt), string_too_long, no_letters (ein Text ohne Buchstaben zum Lesen), dict_type (der Body ist kein JSON-Objekt), unknown_sound oder literal_error |
| 429 | request.tooManyRequests | Zu viele Anfragen: von deiner Adresse (siehe Ratenlimits) oder über dem eigenen Minutenlimit deines Schlüssels, falls eines gesetzt ist. | Header Retry-After: Sekunden bis zum nächsten Versuch |
| 500 | server.failed | Bei Spelly ist etwas schiefgegangen. | — |
| 503 | service.busy | Spelly ist ausgelastet: Anfragen warten, bis sie dran sind. | Header Retry-After: Sekunden bis zum nächsten Versuch |
| 503 | service.unavailable | Spellys Bewertungs- und Sprachdienst antwortet gerade nicht. Der Spelly-Status zeigt, ob es ausgefallen ist. | Header Retry-After: Sekunden bis zum nächsten Versuch |
| 503 | service.maintenance | Spelly wird gerade aktualisiert, meist für ein bis zwei Minuten. Bis es zurück ist, wird jeder Aufruf abgelehnt, sodass nichts halb erledigt bleibt. Der Spelly-Status zeigt es auch. | Header Retry-After: Sekunden bis zum nächsten Versuch |