Memojin, dentro de sus herramientas.
Una API REST completa para conectar sus plataformas con Memojin: contenidos, carpetas, tarjetas memo y preguntas en lectura y escritura, generación con IA, búsqueda, espacios y seguimiento del aprendizaje. Pensada para plataformas de aprendizaje, proveedores de LMS, editoriales y equipos técnicos de centros educativos.
Nuestro equipo abre el acceso, organización por organización
28 operaciones · 14 scopes · OpenAPI 3.1
curl "https://api.memojin.com/v1/contents?limit=20" \
-H "Authorization: Bearer $MEMOJIN_API_KEY" \
-H "Accept-Language: fr"{
"data": [
{
"id": "3f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87",
"title": "Photosynthesis",
"description": null,
"language": "en",
"folderId": null,
"imageUrl": null,
"createdAt": "2026-09-28T17:04:51.000Z",
"updatedAt": "2026-10-02T08:30:12.000Z",
"inclusions": {
"hasBody": true,
"hasSummary": true,
"memocardsCount": 42,
"questionsCount": 18,
"podcastsReadyCount": 1,
"sourcesCount": 2
}
}
],
"nextCursor": "eyJvIjoyMH0",
"hasMore": true
}Cuatro formas de conectar Memojin.
Una clave actúa en nombre de una cuenta de Memojin, con exactamente sus permisos: usted integra lo que esa cuenta ve, nada más.
Llevar el repaso adonde sus estudiantes ya trabajan
Moodle, una plataforma regional o la suya propia: muestre los contenidos de una cuenta docente con sus tarjetas memo y sus preguntas, sin salir de su plataforma.
Conectar Memojin con su sistema de información
Encuentre los contenidos, las carpetas y los espacios de sus docentes en sus paneles y herramientas pedagógicas, sin volver a teclearlos.
Prolongar sus recursos con el recuerdo activo
Importe sus recursos como contenidos, añada sus propias tarjetas memo y preguntas, o deje que la IA las genere.
Automatizar lo que aún se hace a mano
Scripts, informes, sincronizaciones: sus herramientas leen el contrato OpenAPI 3.1 y generan a partir de él un cliente tipado, y la idempotencia hace seguro cada reintento.
Nueve recursos, un scope por acción.
Todo lo que figura en esta tabla responde hoy, con el scope indicado. Cada operación se describe, parámetro por parámetro, en la referencia.
Contenidos
contents:readcontents:writeListar los contenidos de una carpeta; leer un contenido con sus seis medidas (cuerpo, resumen, número de tarjetas memo, preguntas, episodios de pódcast listos y fuentes); crear uno a partir de un título o de un texto, guardado tal cual; modificarlo, eliminarlo.
- GET/v1/contents
- POST/v1/contents
- GET/v1/contents/{contentId}
- PATCH/v1/contents/{contentId}
- DELETE/v1/contents/{contentId}
Carpetas
folders:readfolders:writeRecorrer el árbol de carpetas de una biblioteca, crear una carpeta (hasta cinco niveles), modificarla o eliminarla.
- GET/v1/folders
- POST/v1/folders
- GET/v1/folders/{folderId}
- PATCH/v1/folders/{folderId}
- DELETE/v1/folders/{folderId}
Tarjetas memo
memocards:readmemocards:writeListar las tarjetas de un contenido, con la retención y el último repaso de la cuenta; añadir una tarjeta (anverso, reverso, explicación), modificarla, eliminarla.
- GET/v1/contents/{contentId}/memocards
- POST/v1/contents/{contentId}/memocards
- GET/v1/memocards/{memocardId}
- PATCH/v1/memocards/{memocardId}
- DELETE/v1/memocards/{memocardId}
Preguntas
questions:readquestions:writeListar las preguntas de un contenido; crear cuatro tipos (respuesta libre, verdadero o falso, opción única, opción múltiple); modificar el enunciado, la explicación, la dificultad o los puntos; eliminarlas.
- GET/v1/contents/{contentId}/questions
- POST/v1/contents/{contentId}/questions
- GET/v1/questions/{questionId}
- PATCH/v1/questions/{questionId}
- DELETE/v1/questions/{questionId}
Generación con IA
generations:writejobs:readGenerar tarjetas memo a partir de un contenido, o preguntas a partir de sus tarjetas: respuesta inmediata (202) y luego seguimiento del trabajo hasta el resultado. Los créditos de IA previstos se indican ya en la respuesta.
- POST/v1/contents/{contentId}/memocard-generations
- POST/v1/contents/{contentId}/question-generations
- GET/v1/jobs/{jobId}
Búsqueda
search:readBuscar en los contenidos y las carpetas de la cuenta, sin distinguir mayúsculas ni acentos.
- GET/v1/search
Espacios
spaces:readLeer los espacios (clases, grupos) de los que la cuenta es propietaria, archivados incluidos si se pide. No se expone ningún miembro.
- GET/v1/spaces
- GET/v1/spaces/{spaceId}
Sesiones de estudio
study-sessions:readListar las sesiones de repaso y de práctica de la cuenta, de la más reciente a la más antigua, con sus contadores, filtradas por estado o por espacio.
- GET/v1/study-sessions
Estadísticas de aprendizaje
learning-stats:readTarjetas memo dominadas, tiempo de estudio, tasa de acierto en 30 días y sesiones terminadas de la cuenta.
- GET/v1/learning-stats
En preparación
- PróximamenteServidor MCP
Las operaciones de la API al servicio de los asistentes de IA compatibles con MCP, con las mismas claves y los mismos scopes.
- PróximamenteEspacio para desarrolladores
Crear sus claves, elegir sus scopes y seguir su consumo desde su cuenta, en autoservicio.
- PróximamenteWebhooks salientes
Recibir una llamada firmada en su servidor, por ejemplo al terminar una generación, en lugar de consultar periódicamente.
- PróximamenteAcceso incluido en los planes
La API abierta directamente con algunos planes para docentes y centros, sin solicitud previa.
Del sandbox a producción, en tres pasos.
Cada organización empieza en el sandbox. La producción se abre cuando su integración está lista.
Usted solicita acceso
Cuéntenos su proyecto. Creamos su organización, vinculada a la cuenta de Memojin en cuyo nombre actuará, y le entregamos una clave de prueba.
Usted desarrolla en el sandbox
Una clave mj_test_ lee y escribe los mismos datos, con una cuota de 100 llamadas al día. La generación con IA se simula: nada se envía ni se descuenta.
Usted pasa a producción
Tras la validación de nuestro equipo, recibe una clave mj_live_. Solo se muestra una vez: guárdela en su gestor de secretos.
Una clave, sus scopes
Cada operación exige un scope de la forma recurso:read o recurso:write, indicado en la tabla de arriba. Una clave solo lleva los scopes solicitados, y write no implica read; sin el adecuado, la API responde 403 insufficient_scope indicando el scope esperado.
La clave permanece en una variable de entorno de su servidor: la API no responde a llamadas desde un navegador.
Su primera llamada
curl "https://api.memojin.com/v1/contents?limit=20" \
-H "Authorization: Bearer $MEMOJIN_API_KEY" \
-H "Accept-Language: fr"const res = await fetch("https://api.memojin.com/v1/contents?limit=20", {
headers: { Authorization: `Bearer ${process.env.MEMOJIN_API_KEY}` },
});
if (!res.ok) {
const { error } = await res.json();
throw new Error(`${error.code}: ${error.message}`);
}
const { data, nextCursor, hasMore } = await res.json();import os, requests
res = requests.get(
"https://api.memojin.com/v1/contents",
params={"limit": 20},
headers={"Authorization": f"Bearer {os.environ['MEMOJIN_API_KEY']}"},
timeout=10,
)
if not res.ok:
error = res.json()["error"]
raise RuntimeError(f"{error['code']}: {error['message']}")
page = res.json() # { "data": [...], "nextCursor": ..., "hasMore": ... }El protocolo HTTP, al pie de la letra.
Ninguna convención propia que aprender: las cabeceras que sus bibliotecas HTTP ya conocen, puestas por la API en cada respuesta a la que se aplican.
ETagIf-None-Match304Lecturas condicionales
Cada GET devuelve un ETag; reenviado en If-None-Match, da un 304 sin cuerpo cuando nada ha cambiado.
If-Match412Escrituras sin conflicto
Envíe el ETag leído en If-Match: si el recurso ha cambiado entretanto, PATCH y DELETE responden 412 y no modifican nada.
Idempotency-KeyIdempotent-ReplayedIdempotencia
Todo POST acepta un Idempotency-Key: repetida en 24 horas, la petición devuelve la primera respuesta, marcada Idempotent-Replayed, sin doble creación ni doble descuento.
RateLimit-LimitRateLimit-RemainingRateLimit-ResetRetry-AfterLímites anunciados
Cada respuesta indica en qué punto está de su ventana de límite; un 429 o un 503 indica en Retry-After cuándo reintentar.
LocationLinkEnlaces
Una creación responde 201 con Location; una página lleva Link rel="next"; cada error, un Link rel="help" hacia la documentación de su código.
Memojin-VersionDeprecationSunsetVersiones y retirada
Memojin-Version indica qué contrato atendió la petición; Deprecation y Sunset (RFC 9745, RFC 8594) están listos para señalar una operación al final de su vida.
Memojin-Credits-EstimateCréditos anunciados
Una generación indica en su cabecera, como en su cuerpo, las unidades de crédito de IA que prevé usar.
X-Request-IdAccept-LanguageTrazabilidad e idiomas
Cada llamada lleva un X-Request-Id, el suyo o el nuestro; Accept-Language elige el idioma de los mensajes de error entre cinco.
Una sola forma de error, { error: { code, message, details } }, y 25 códigos estables, cada uno explicado en la tabla pública de errores.
Lance, siga, recupere.
Generar tarjetas memo o preguntas lleva de unos segundos a unos minutos. La API responde enseguida y usted sigue el trabajo a su ritmo.
Una unidad ai_card por tarjeta memo o pregunta generada, tomada de los créditos de IA de la cuenta, como en la aplicación. Una petición rechazada o repetida no cuesta nada.
Consulte GET /v1/jobs/{jobId} cada cinco segundos aproximadamente hasta succeeded, failed o cancelled, y luego lea las tarjetas o las preguntas del contenido.
Con una clave mj_test_, nada se genera ni se descuenta: el trabajo termina al instante y usted prueba todo el recorrido sin coste.
curl -X POST "https://api.memojin.com/v1/contents/$CONTENT_ID/memocard-generations" \
-H "Authorization: Bearer $MEMOJIN_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"
HTTP/1.1 202 Accepted
Memojin-Credits-Estimate: ai_card=12
{
"jobId": "9b8a7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"status": "pending",
"estimate": { "operation": "ai_card", "units": 12 }
}curl "https://api.memojin.com/v1/jobs/$JOB_ID" \
-H "Authorization: Bearer $MEMOJIN_API_KEY"
{
"id": "9b8a7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"type": "memocard_generation",
"status": "succeeded",
"progress": 100,
"contentId": "3f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87",
"error": null,
"createdAt": "2026-10-04T10:00:00.000Z",
"updatedAt": "2026-10-04T10:00:41.000Z"
}import os, time, uuid, requests
API = "https://api.memojin.com/v1"
H = {"Authorization": f"Bearer {os.environ['MEMOJIN_API_KEY']}"}
job = requests.post(
f"{API}/contents/{content_id}/memocard-generations",
headers={**H, "Idempotency-Key": str(uuid.uuid4())},
timeout=30,
).json() # 202 : {"jobId": ..., "status": "pending", "estimate": {...}}
while True:
state = requests.get(f"{API}/jobs/{job['jobId']}", headers=H, timeout=10).json()
if state["status"] in ("succeeded", "failed", "cancelled"):
break
time.sleep(5)
cards = requests.get(f"{API}/contents/{content_id}/memocards", headers=H, timeout=10).json()Fiable por diseño.
Las reglas que protegen sus datos y los de sus usuarios están en el código, no solo en un contrato.
Claves secretas
Solo conservamos la huella SHA-256 de su clave, nunca la clave en sí. Una clave revocada se rechaza en menos de un minuto.
De servidor a servidor
La API rechaza las llamadas desde un navegador (CORS cerrado): su clave no sale de su servidor.
Los derechos de una sola cuenta
Una clave actúa en nombre de una cuenta de Memojin y ve exactamente lo que ella ve. El recurso de otra cuenta responde 404, sin revelar nada.
Scopes justos
Lectura y escritura separadas, recurso por recurso: una clave solo lleva los scopes que usted solicita.
Sandbox estanco
Una clave mj_test_ nunca toca el mundo real: generación simulada, ningún crédito consumido, ningún envío, 100 llamadas al día.
Contrato verificado
La referencia y el contrato OpenAPI se generan a partir de los mismos esquemas con los que la API valida cada petición.
Compatibilidad
En /v1, solo añadidos compatibles. Un cambio incompatible llegará como /v2, y /v1 seguirá funcionando al menos 12 meses.
Alojamiento en Francia
La API, la base de datos y los archivos funcionan en nuestros propios servidores, alojados en Francia. El registro de llamadas no guarda ni contenido ni dirección IP.
Encargados del tratamiento, plazos de conservación y derechos se detallan en nuestra política de privacidad.
Todo está escrito, en inglés y en francés.
La referencia describe cada operación, cada parámetro y cada código de error, con ejemplos. Se genera a partir del contrato que aplica la API: no puede contradecirlo.
La documentación completa
Inicio rápido, claves, entorno de pruebas, cada recurso y cada operación, errores, límites, créditos de IA: todo está en el sitio, en inglés y en francés, con ejemplos en curl, JavaScript y Python.
Referencia interactiva
En inglés: operaciones, esquemas, guías, ejemplos de peticiones y respuestas.
/v1/docsAbrir la referenciaReferencia en francés
La misma referencia, guías incluidas, íntegramente en francés.
/v1/docs/frAbrir en francésContrato OpenAPI 3.1
openapi.json (y openapi.fr.json), para generar un cliente tipado en su lenguaje.
/v1/openapi.jsonAbrir el contratoTabla de errores
Cada código de error, su estado HTTP y lo que significa.
/v1/docs/errorsAbrir la tablaAntes de empezar.
¿Cómo obtengo una clave?
Escríbanos a contact@memojin.com describiendo su organización y su proyecto. Nuestro equipo abre el acceso: primero una clave de prueba y, tras la validación, una clave de producción.
¿Qué permite hoy la API?
Leer y escribir la biblioteca de una cuenta (contenidos, carpetas, tarjetas memo, preguntas), lanzar generaciones de tarjetas memo y de preguntas con IA y seguir sus trabajos, buscar, y leer los espacios, las sesiones de estudio y las estadísticas de aprendizaje. Cada operación se describe en la referencia.
¿Cuánto cuesta la API?
Durante la beta, el acceso se abre bajo solicitud. Leer y escribir no consume créditos de IA; solo las generaciones usan los créditos de IA de la cuenta en cuyo nombre actúa la clave, como en la aplicación: una unidad por tarjeta memo o pregunta generada, indicada en la respuesta 202.
¿Hace falta una suscripción a Memojin?
Sí: la clave actúa en nombre de una cuenta de Memojin, y la mayoría de las operaciones exigen que esa cuenta tenga un plan activo, como en la aplicación. El acceso a la API incluido en algunos planes está en preparación.
¿Puedo llamar a la API desde un navegador o una aplicación móvil?
No: la clave es secreta y la API rechaza las llamadas desde un navegador. Llámela desde su servidor, que luego pasa a su interfaz lo que necesita.
¿Dónde se tratan los datos?
En nuestros propios servidores, alojados en Francia. Una clave solo accede a los datos de la cuenta en cuyo nombre actúa, y el registro de llamadas no guarda ni contenido ni dirección IP.
Hablemos de su integración.
Cuéntenos en pocas líneas quién es, qué quiere conectar y el volumen previsto. Le responderemos para abrir su sandbox.
- Primero el sandbox, sin compromiso
- Referencia en inglés y en francés
- Datos alojados en Francia