Memojin, în centrul instrumentelor dumneavoastră.
Un API REST complet pentru a vă conecta platformele la Memojin: cursuri, dosare, fișe memo și întrebări, atât la citire, cât și la scriere, generări cu IA, căutare, spații și monitorizarea învățării. Gândit pentru platformele educaționale, LMS-uri, editori și echipele tehnice ale instituțiilor.
Acces acordat de echipa noastră, organizație cu organizație
Operații: 28 · scope-uri: 14 · 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
}Patru moduri de a conecta Memojin.
O cheie acționează în numele unui cont Memojin, cu exact drepturile acestuia: integrați ceea ce vede acest cont, nimic mai mult.
Aduceți recapitularea acolo unde studenții dumneavoastră lucrează deja
Moodle, platforma universității sau o platformă proprie: afișați cursurile unui cont de profesor, cu fișele memo și întrebările lor, fără a vă părăsi platforma.
Conectați Memojin la sistemul dumneavoastră informatic
Regăsiți cursurile, dosarele și spațiile profesorilor dumneavoastră în tablourile de bord și în instrumentele pedagogice, fără a reintroduce datele.
Extindeți-vă resursele prin recapitulare activă
Importați-vă resursele drept cursuri, adăugați-le fișele memo și întrebările dumneavoastră sau lăsați IA să le genereze.
Automatizați ceea ce încă se face manual
Scripturi, rapoarte, sincronizări: contractul OpenAPI 3.1 este citit de instrumentele dumneavoastră, care generează din el un client tipizat, iar idempotența face ca fiecare reluare să fie sigură.
Nouă resurse, un scope pentru fiecare acțiune.
Tot ce apare în acest tabel funcționează deja astăzi, cu scope-ul indicat. Fiecare operație este descrisă, parametru cu parametru, în referință.
Cursuri
contents:readcontents:writeListarea cursurilor dintr-un dosar; citirea unui curs cu cele șase măsuri ale sale (lecție, sinteză, număr de fișe memo, de întrebări, de episoade de podcast gata și de surse); crearea unui curs pornind de la un titlu sau de la un text, salvat ca atare; editarea și ștergerea lui.
- GET/v1/contents
- POST/v1/contents
- GET/v1/contents/{contentId}
- PATCH/v1/contents/{contentId}
- DELETE/v1/contents/{contentId}
Dosare
folders:readfolders:writeParcurgerea arborescenței unei biblioteci, crearea unui dosar (până la cinci niveluri), editarea sau ștergerea lui.
- GET/v1/folders
- POST/v1/folders
- GET/v1/folders/{folderId}
- PATCH/v1/folders/{folderId}
- DELETE/v1/folders/{folderId}
Fișe memo
memocards:readmemocards:writeListarea fișelor unui curs, cu retenția și ultima recapitulare a contului; adăugarea unei fișe (titlu, conținut, explicație), editarea și ștergerea ei.
- GET/v1/contents/{contentId}/memocards
- POST/v1/contents/{contentId}/memocards
- GET/v1/memocards/{memocardId}
- PATCH/v1/memocards/{memocardId}
- DELETE/v1/memocards/{memocardId}
Întrebări
questions:readquestions:writeListarea întrebărilor unui curs; crearea de întrebări de patru tipuri (răspuns liber, adevărat sau fals, alegere unică, alegere multiplă); editarea enunțului, a explicației, a dificultății sau a punctajului; ștergerea lor.
- GET/v1/contents/{contentId}/questions
- POST/v1/contents/{contentId}/questions
- GET/v1/questions/{questionId}
- PATCH/v1/questions/{questionId}
- DELETE/v1/questions/{questionId}
Generări cu IA
generations:writejobs:readGenerarea de fișe memo pornind de la un curs sau de întrebări pornind de la fișele acestuia: răspuns imediat (202), apoi urmărirea sarcinii până la rezultat. Creditele IA prevăzute sunt anunțate încă din răspuns.
- POST/v1/contents/{contentId}/memocard-generations
- POST/v1/contents/{contentId}/question-generations
- GET/v1/jobs/{jobId}
Căutare
search:readCăutarea în cursurile și dosarele contului, fără a ține cont de majuscule sau de diacritice.
- GET/v1/search
Spații
spaces:readCitirea spațiilor al căror proprietar este contul, inclusiv a celor arhivate, la cerere. Niciun membru nu este expus.
- GET/v1/spaces
- GET/v1/spaces/{spaceId}
Sesiuni de studiu
study-sessions:readListarea sesiunilor de recapitulare și de exersare ale contului, de la cea mai recentă la cea mai veche, cu contoarele lor, filtrate după stare sau după spațiu.
- GET/v1/study-sessions
Statistici de învățare
learning-stats:readFișe memo stăpânite, timp de studiu, rată de reușită pe 30 de zile și sesiuni finalizate ale contului.
- GET/v1/learning-stats
În pregătire
- În curândServer MCP
Operațiile API-ului puse la dispoziția asistenților IA compatibili MCP, cu aceleași chei și aceleași scope-uri.
- În curândSpațiu pentru dezvoltatori
Creați-vă cheile, alegeți-le scope-urile și urmăriți-vă consumul din contul dumneavoastră, în regim self-service.
- În curândWebhook-uri de ieșire
Fiți anunțați printr-un apel semnat pe serverul dumneavoastră, de exemplu la finalul unei generări, în loc să interogați periodic.
- În curândAcces inclus în planuri
API-ul deschis direct cu anumite planuri pentru profesori și instituții, fără cerere prealabilă.
De la sandbox la producție, în trei pași.
Fiecare organizație începe în sandbox. Producția se deschide atunci când integrarea dumneavoastră este gata.
Solicitați acces
Descrieți-ne proiectul dumneavoastră. Creăm organizația dumneavoastră, asociată contului Memojin în numele căruia va acționa, și vă oferim o cheie de test.
Dezvoltați în sandbox
O cheie mj_test_ citește și scrie aceleași date, cu o cotă de 100 de apeluri pe zi. Generările cu IA sunt simulate: nimic nu este trimis sau contabilizat.
Treceți în producție
După validarea de către echipa noastră, primiți o cheie mj_live_. Ea se afișează o singură dată: păstrați-o în seiful dumneavoastră de secrete.
O cheie, scope-urile ei
Fiecare operație necesită un scope de forma resursă:read sau resursă:write, indicat în tabelul de mai sus. O cheie poartă doar scope-urile solicitate, iar write nu implică read; fără scope-ul potrivit, API-ul răspunde 403 insufficient_scope, numind scope-ul așteptat.
Cheia rămâne într-o variabilă de mediu a serverului dumneavoastră: API-ul nu răspunde la apelurile venite dintr-un browser.
Primul dumneavoastră apel
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": ... }Protocolul HTTP, aplicat întocmai.
Nicio convenție proprie de învățat: antetele pe care bibliotecile dumneavoastră HTTP le cunosc deja, puse de API pe fiecare răspuns relevant.
ETagIf-None-Match304Citiri condiționate
Fiecare GET returnează un ETag; trimis înapoi în If-None-Match, acesta produce un 304 fără corp atunci când nimic nu s-a schimbat.
If-Match412Scrieri fără conflicte
Trimiteți ETag-ul citit în If-Match: dacă resursa s-a schimbat între timp, PATCH și DELETE răspund 412 și nu modifică nimic.
Idempotency-KeyIdempotent-ReplayedIdempotență
Orice POST acceptă un Idempotency-Key: reluată în 24 de ore, cererea returnează primul răspuns, marcat Idempotent-Replayed, fără creare dublă și fără dublă contabilizare.
RateLimit-LimitRateLimit-RemainingRateLimit-ResetRetry-AfterLimite anunțate
Fiecare răspuns vă spune unde vă aflați în fereastra de debit; un 429 sau un 503 indică în Retry-After când să reîncercați.
LocationLinkLinkuri
O creare răspunde 201 cu Location; o pagină poartă Link rel="next"; fiecare eroare, un Link rel="help" către documentația codului său.
Memojin-VersionDeprecationSunsetVersiuni și retrageri
Memojin-Version indică ce contract a servit cererea; Deprecation și Sunset (RFC 9745, RFC 8594) sunt pregătite să semnaleze o operație la sfârșitul vieții sale.
Memojin-Credits-EstimateCredite anunțate
O generare anunță în antet, ca și în corp, unitățile de credit IA pe care prevede să le folosească.
X-Request-IdAccept-LanguageTrasabilitate și limbi
Fiecare apel poartă un X-Request-Id, al dumneavoastră sau al nostru; Accept-Language alege limba mesajelor de eroare dintre nouă.
O singură formă de eroare, { error: { code, message, details } }, și 25 de coduri stabile, fiecare explicat în tabelul public al erorilor.
Porniți, urmăriți, preluați.
Generarea de fișe memo sau de întrebări durează de la câteva secunde la câteva minute. API-ul răspunde imediat, apoi urmăriți sarcina în ritmul dumneavoastră.
O unitate ai_card pentru fiecare fișă memo sau întrebare generată, luată din creditele IA ale contului, ca în aplicație. O cerere refuzată sau reluată nu costă nimic.
Interogați GET /v1/jobs/{jobId} aproximativ la fiecare cinci secunde, până la succeeded, failed sau cancelled, apoi citiți fișele sau întrebările cursului.
Cu o cheie mj_test_, nimic nu este generat sau contabilizat: sarcina este finalizată imediat și testați întregul parcurs fără costuri.
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()De încredere prin construcție.
Regulile care vă protejează datele și pe cele ale utilizatorilor dumneavoastră se află în cod, nu doar într-un contract.
Chei secrete
Păstrăm doar amprenta SHA-256 a cheii dumneavoastră, niciodată cheia însăși. O cheie revocată este refuzată în mai puțin de un minut.
De la server la server
API-ul refuză apelurile venite dintr-un browser (CORS închis): cheia dumneavoastră nu vă părăsește serverul.
Drepturile unui singur cont
O cheie acționează în numele unui cont Memojin și vede exact ceea ce vede acesta. Resursa unui alt cont răspunde 404, fără a dezvălui nimic.
Scope-uri strict necesare
Citire și scriere separate, resursă cu resursă: o cheie poartă doar scope-urile pe care le solicitați.
Sandbox izolat
O cheie mj_test_ nu atinge niciodată lumea reală: generări simulate, niciun credit consumat, nicio trimitere, 100 de apeluri pe zi.
Contract verificat
Referința și contractul OpenAPI sunt generate chiar din schemele cu care API-ul validează fiecare cerere.
Compatibilitate
Sub /v1, doar adăugiri compatibile. O schimbare incompatibilă va veni sub /v2, iar /v1 va rămâne disponibilă cel puțin 12 luni.
Găzduire în Franța
API-ul, baza de date și fișierele rulează pe propriile noastre servere, găzduite în Franța. Jurnalul apelurilor nu păstrează nici conținut, nici adresa IP.
Subcontractanții, duratele de păstrare și drepturile sunt detaliate în politica de confidențialitate.
Totul este scris, în engleză și în franceză.
Referința descrie fiecare operație, fiecare parametru și fiecare cod de eroare, cu exemple. Este generată din contractul pe care îl aplică API-ul: nu îl poate contrazice.
Documentația completă
Pornire rapidă, chei, sandbox, fiecare resursă și fiecare operație, erori, limite, credite IA: totul este pe site, în franceză și în engleză, cu exemple în curl, JavaScript și Python.
Referință interactivă
În engleză: operații, scheme, ghiduri, exemple de cereri și de răspunsuri.
/v1/docsDeschideți referințaReferință în franceză
Aceeași referință, inclusiv ghidurile, integral în franceză.
/v1/docs/frDeschideți în francezăContract OpenAPI 3.1
openapi.json (și openapi.fr.json), pentru a genera un client tipizat în limbajul dumneavoastră.
/v1/openapi.jsonDeschideți contractulTabelul erorilor
Fiecare cod de eroare, statusul său HTTP și ce înseamnă.
/v1/docs/errorsDeschideți tabelulÎnainte de a porni la drum.
Cum obțin o cheie?
Scrieți-ne la contact@memojin.com, descriind organizația și proiectul dumneavoastră. Accesul este acordat de echipa noastră: mai întâi o cheie de test, apoi o cheie de producție, după validare.
Ce permite API-ul astăzi?
Citirea și scrierea bibliotecii unui cont (cursuri, dosare, fișe memo, întrebări), pornirea generărilor de fișe memo și de întrebări cu IA și urmărirea sarcinii lor, căutarea, precum și citirea spațiilor, a sesiunilor de studiu și a statisticilor de învățare. Fiecare operație este descrisă în referință.
Cât costă API-ul?
Pe durata versiunii beta, accesul este acordat la cerere. Citirea și scrierea nu consumă niciun credit IA; doar generările folosesc creditele IA ale contului în numele căruia acționează cheia, ca în aplicație: o unitate pentru fiecare fișă memo sau întrebare generată, anunțată încă din răspunsul 202.
Am nevoie de un abonament Memojin?
Da: cheia acționează în numele unui cont Memojin, iar majoritatea operațiilor cer ca acest cont să aibă un plan activ, ca în aplicație. Accesul la API inclus în anumite planuri este în pregătire.
Pot apela API-ul dintr-un browser sau dintr-o aplicație mobilă?
Nu: cheia este secretă, iar API-ul refuză apelurile venite dintr-un browser. Apelați-l de pe serverul dumneavoastră, care transmite apoi interfeței ceea ce îi trebuie.
Unde sunt prelucrate datele?
Pe propriile noastre servere, găzduite în Franța. O cheie accesează doar datele contului în numele căruia acționează, iar jurnalul apelurilor nu păstrează nici conținut, nici adresa IP.
Să vorbim despre integrarea dumneavoastră.
Spuneți-ne în câteva rânduri cine sunteți, ce doriți să conectați și volumul estimat. Revenim către dumneavoastră pentru a vă deschide sandboxul.
- Mai întâi sandbox, fără angajament
- Referință în engleză și în franceză
- Date găzduite în Franța