Para desarrolladores
Errores de la API
Cada error responde con JSON y un código en detail, como {"detail": "auth.unauthorized"}. Algunos códigos añaden campos al lado.
| Estado | Código | Significado | También devuelve |
|---|---|---|---|
| 400 | assess.unsupportedLanguage | language (o source_language o target_language) no es uno de los códigos de idioma de la API, escrito exactamente. | — |
| 400 | request.bodyNotJson | El cuerpo JSON no se pudo leer como JSON. | — |
| 400 | request.unknownAudioFormat | audio_format no es ni mp3 ni wav. | — |
| 400 | assess.noAudio | El archivo audio está vacío. | — |
| 400 | assessment.audioUnreadable | El archivo subido no es un audio que Spelly pueda leer. | — |
| 401 | auth.unauthorized | La cabecera X-API-Key falta, es incorrecta o está revocada. | — |
| 401 | widget.keyInvalid | La clave del widget es desconocida o está revocada. | — |
| 402 | operator.trialExhausted | Se han agotado tus unidades. | remaining y requested (unidades), upgrade_url (null mientras no se vendan planes) |
| 403 | auth.endpointNotAllowed | Tu clave no puede llamar a esta ruta; las que puede llamar están en Todos los endpoints. | — |
| 403 | operator.inactive | La cuenta a la que pertenece la clave está en pausa o eliminada. | — |
| 404 | request.notFound | Esa ruta no existe. | — |
| 405 | request.methodNotAllowed | La ruta existe, pero no con este método. | — |
| 413 | assess.recordingTooLong | La grabación supera el tamaño máximo. | — |
| 413 | request.tooLarge | El cuerpo de la petición es demasiado grande. | — |
| 422 | assessment.nothingHeard | La grabación no contiene voz: está en silencio o el micrófono no captó nada. No se cobra nada. | — |
| 422 | request.invalid | Falta un campo, hay uno que la llamada no acepta o tiene un valor que no acepta; o el cuerpo no es un objeto JSON. | errors: un {"field", "problem"} por cada campo erróneo, con un value en algunos problemas; problem es un tipo como missing, extra_forbidden (un campo que la llamada no acepta), string_too_long, no_letters (un texto sin letras que leer), dict_type (el cuerpo no es un objeto JSON), unknown_sound o literal_error |
| 429 | request.tooManyRequests | Demasiadas peticiones: desde tu dirección (consulta Límites de uso), o por encima del límite por minuto propio de tu clave cuando tiene uno. | Cabecera Retry-After: segundos que hay que esperar |
| 500 | server.failed | Algo ha fallado en Spelly. | — |
| 503 | service.busy | Spelly está ocupado: hay peticiones esperando su turno. | Cabecera Retry-After: segundos que hay que esperar |
| 503 | service.unavailable | El servicio de evaluación y voz de Spelly no responde ahora mismo. El estado de Spelly dice si está caído. | Cabecera Retry-After: segundos que hay que esperar |
| 503 | service.maintenance | Spelly se está actualizando, normalmente durante uno o dos minutos. Se rechaza cada llamada hasta que vuelve, así que nada queda a medias. El estado de Spelly también lo muestra. | Cabecera Retry-After: segundos que hay que esperar |