Crear un plan de lección
Versión de la API 2026-10-affable-towhee
Empieza a generar un plan de lección y transmite su progreso. started identifica el plan en cuanto existe, de modo que una conexión interrumpida pueda reconectarse con GET /v1/lesson-plans/{id}/stream. El flujo termina con result o error. Un plan servido desde la biblioteca llega como un único result.
Ámbitos lesson_plans:write
Parámetros
Lingara-Versionheaderstringopcional- La versión de la API con la que se responde a esta solicitud. Sin ella, un token de acceso recibe la versión a la que está vinculado su cliente, y una solicitud sin token recibe la versión actual. La versión aún en desarrollo solo se alcanza nombrándola aquí. Una versión desconocida responde
400con el códigoapi_version_unknown.GET /v1/versionsenumera las versiones.
Cuerpo de la solicitud application/json
contextstringobligatoriosource_langstringobligatoriotarget_langstringobligatoriolevelintegerobligatorio
Respuestas
200 El progreso del plan y luego el plan
Eventos del flujo text/event-stream
Envía un comentario keepalive cada 15 segundos.
-
startedPlanStarted -
plan_idstringobligatorio
-
phasePlanPhase -
phasestringobligatorioattemptintegerobligatorio
-
resultPlanResult Termina el flujo -
planLessonPlanobligatorioidstringobligatoriostatusPlanStatusobligatoriotitlestring | nullopcionalsource_langstringobligatoriotarget_langstringobligatoriolevelintegerobligatoriocreated_atstringobligatoriocompleted_atstring | nullopcionalai_generatedbooleanobligatoriocontentLessonPlanContent | nullopcionalintroductionstring | nullopcionallearning_objectivesarray of stringobligatoriovocabularyarray of PlanWordobligatoriowordstringobligatoriopronunciationstring | nullopcionaltranslationstringobligatorio
setsarray of PlanSetobligatorionumberintegerobligatoriocontextstring | nullopcionalquestionsarray of PlanQuestionobligatoriotypestringobligatoriopromptstringobligatoriooptionsarray of string | nullopcionalanswerstringobligatorioexplanationstringobligatoriohintstring | nullopcional
-
errorStreamError Termina el flujo -
Llega dentro de la respuesta 200. La línea de estado ya se ha enviado, así que un fallo después de abrirse el flujo se notifica como este evento.
codestringobligatoriomessagestringobligatorioplan_idstring | nullopcional
Errores
402application/json- Se rechazó la llamada de un cliente con facturación por uso antes de que gastara nada.
spend_cap_reached: el cliente o su cuenta ha alcanzado su límite de gasto mensual; sube el límite en la página Integraciones.metered_billing_inactive: la facturación por uso no está activa para esta cuenta; configúrala o actualiza el método de pago en la página Integraciones. 410application/json- La versión de la API con la que se responde a esta solicitud se ha retirado. Envía una versión admitida en
Lingara-Versiono vincula el cliente a otra versión. 4XXapplication/json- La solicitud fue rechazada.
codeindica el motivo yerrorlo explica con palabras. 503application/json · text/plain- El servicio no está disponible temporalmente; vuelve a intentarlo tras el número de segundos indicado en
Retry-After. Durante el mantenimiento, el cuerpo es texto sin formato en lugar del sobre de error. 5XXapplication/json- La solicitud fue rechazada.
codeindica el motivo yerrorlo explica con palabras.
codestringobligatorioPor qué se rechazó la solicitud, como un código estable con el que ramificar: por ejemplo
insufficient_scope(403),rate_limited(429) y, para un cliente con facturación por uso,spend_cap_reached(402) ymetered_billing_inactive(402).errorstringobligatorio
Ejemplo
¿Prefieres una biblioteca? Consulta la sección Bibliotecas.
Ejemplo de flujo
event: started
data: {"plan_id":"3f1c2a9e-5b7d-4e21-9a0c-6d8e4f2b1a37"}
event: phase
data: {"phase":"selecting_vocabulary","attempt":1}
event: result
data: {"plan":{"id":"3f1c2a9e-5b7d-4e21-9a0c-6d8e4f2b1a37","status":"complete","title":"At the night market","source_lang":"en","target_lang":"zh","level":2,"created_at":"2026-09-23T10:00:00Z","completed_at":"2026-09-23T10:00:41Z","ai_generated":true,"content":{"introduction":"Order food and ask prices at a night market.","learning_objectives":["Ask how much something costs"],"vocabulary":[{"word":"多少钱","pronunciation":"duōshao qián","translation":"how much"}],"sets":[{"number":1,"questions":[{"type":"multiple_choice_word","prompt":"Which word asks for a price?","options":["多少钱","谢谢"],"answer":"多少钱","explanation":"多少钱 means how much money."}]}]}}}Si una traducción y la referencia en inglés difieren, prevalece la referencia en inglés.