A memocard is a notion to remember: a front (the question) and a back (the answer), reviewed with spaced repetition in the app. Memocards belong to a content and are listed in its order.
Good to know
- The back is written and read as text; LaTeX formulas are kept.
retentionandlastReviewedAtdescribe how well the account the key acts for remembers the memocard; they are filled in lists (GET …/memocards).- A memocard shared through a space can be read; only its owner updates or deletes it. Deleting a memocard deletes its questions.
- To generate a content’s memocards with AI, see AI generations.
The Memocard object
A memocard (flashcard): a front, a back, reviewed with spaced repetition.
| Field | Type | Description |
|---|---|---|
id | string (uuid) | Memocard identifier (UUID). |
contentId | string | null | Content the memocard belongs to. |
front | string | null | Front side: the prompt or title. |
back | string | null | Back side, as plain text (formulas between $…$, $$…$$). |
explanation | string | null | Optional explanation, or null. |
retention | number | nullfrom 0 to 1 | Estimated retention for the account (0 to 1, spaced-repetition model), given in lists; null when never reviewed or on a single read. |
lastReviewedAt | string (date-time) | null | Last review by the account, given in lists; null when never reviewed or on a single read. |
createdAt | string (date-time) | null | Creation instant (ISO 8601, UTC). |
updatedAt | string (date-time) | null | Last update instant (ISO 8601, UTC). |
{
"id": "c5e8a1b2-3d4f-4a6b-9c8d-7e6f5a4b3c21",
"contentId": "3f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87",
"front": "Where does photosynthesis take place?",
"back": "In the chloroplasts, mainly in the leaves.",
"explanation": null,
"retention": 0.82,
"lastReviewedAt": "2026-10-03T18:12:00.000Z",
"createdAt": "2026-10-01T14:05:00.000Z",
"updatedAt": "2026-10-01T14:05:00.000Z"
}List the memocards of a content
/v1/contents/{contentId}/memocardsScope memocards:readMemocards of the content, in its order, paginated. retention and lastReviewedAt are those of the account the key acts for.
Parameters
| Field | In | Type | Description |
|---|---|---|---|
contentIdrequired | path | string (uuid) | Content identifier (UUID). |
limit | query | integerfrom 1 to 100 · default 20 | Number of items per page, 1 to 100 (default 20). |
cursor | query | stringat most 200 characters | Opaque cursor: the nextCursor of the previous page. Keep the same limit from one page to the next. |
Response 200
A page of memocards — A page of Memocard { data, nextCursor, hasMore }
Errors
| HTTP | Meaning |
|---|---|
400 | validation_error or invalid_cursor |
401 | invalid_api_key or revoked_api_key |
403 | insufficient_scope, account_suspended, live_not_enabled or forbidden |
404 | not_found — the content does not exist or is not visible to this key |
406 | not_acceptable — the Accept header excludes application/json |
429 | rate_limited or test_quota_exceeded — see the Retry-After and RateLimit-* headers |
500 | internal_error |
503 | unavailable — see the Retry-After header |
curl "https://api.memojin.com/v1/contents/3f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87/memocards?limit=20" \
-H "Authorization: Bearer $MEMOJIN_API_KEY"{
"data": [
{
"id": "c5e8a1b2-3d4f-4a6b-9c8d-7e6f5a4b3c21",
"contentId": "3f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87",
"front": "Where does photosynthesis take place?",
"back": "In the chloroplasts, mainly in the leaves.",
"explanation": null,
"retention": 0.82,
"lastReviewedAt": "2026-10-03T18:12:00.000Z",
"createdAt": "2026-10-01T14:05:00.000Z",
"updatedAt": "2026-10-01T14:05:00.000Z"
}
],
"nextCursor": null,
"hasMore": false
}Create a memocard
/v1/contents/{contentId}/memocardsScope memocards:writeAdds a memocard at the end of the content. Answers 201 with the memocard and its Location.
Parameters
| Field | In | Type | Description |
|---|---|---|---|
contentIdrequired | path | string (uuid) | Content identifier (UUID). |
Idempotency-Key | header | string | Strongly recommended. A unique value per operation (UUID v4), reused unchanged on every retry. Within 24 hours, the same key and the same request replay the first response (Idempotent-Replayed: true) without a second effect or charge; another request with the same key → 422 idempotency_key_reused; still running → 409 idempotency_in_progress. |
Request body CreateMemocardRequest
A new memocard.
| Field | Type | Description |
|---|---|---|
frontrequired | string1 to 2000 characters | Front side (1 to 2,000 characters). |
backrequired | string1 to 20000 characters | Back side, plain text (formulas between $…$). |
explanation | string | nullat most 5000 characters | Optional explanation. |
Response 201
The memocard created — A Memocard object
Errors
| HTTP | Meaning |
|---|---|
400 | validation_error or bad_request |
401 | invalid_api_key or revoked_api_key |
403 | insufficient_scope, account_suspended, live_not_enabled or forbidden |
404 | not_found — the content does not exist or is not visible to this key |
406 | not_acceptable — the Accept header excludes application/json |
409 | idempotency_in_progress — retry after Retry-After (1 s) |
413 | payload_too_large |
415 | unsupported_media_type |
422 | idempotency_key_reused, or a business rule (see the description) |
429 | rate_limited or test_quota_exceeded — see the Retry-After and RateLimit-* headers |
500 | internal_error |
503 | unavailable — see the Retry-After header |
curl -X POST "https://api.memojin.com/v1/contents/3f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87/memocards" \
-H "Authorization: Bearer $MEMOJIN_API_KEY" \
-H "Idempotency-Key: 6f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87" \
-H "Content-Type: application/json" \
-d '{
"front": "Where does photosynthesis take place?",
"back": "In the chloroplasts, mainly in the leaves."
}'{
"id": "c5e8a1b2-3d4f-4a6b-9c8d-7e6f5a4b3c21",
"contentId": "3f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87",
"front": "Where does photosynthesis take place?",
"back": "In the chloroplasts, mainly in the leaves.",
"explanation": null,
"retention": 0.82,
"lastReviewedAt": "2026-10-03T18:12:00.000Z",
"createdAt": "2026-10-01T14:05:00.000Z",
"updatedAt": "2026-10-01T14:05:00.000Z"
}Retrieve a memocard
/v1/memocards/{memocardId}Scope memocards:readOne memocard visible to the account the API key acts for (its own, or shared with it through a space). Answers 304 to a matching If-None-Match.
Parameters
| Field | In | Type | Description |
|---|---|---|---|
memocardIdrequired | path | string (uuid) | Memocard identifier (UUID). |
Response 200
The memocard — A Memocard object
Errors
| HTTP | Meaning |
|---|---|
400 | validation_error — an identifier is not a UUID |
401 | invalid_api_key or revoked_api_key |
403 | insufficient_scope, account_suspended, live_not_enabled or forbidden |
404 | not_found |
406 | not_acceptable — the Accept header excludes application/json |
429 | rate_limited or test_quota_exceeded — see the Retry-After and RateLimit-* headers |
500 | internal_error |
503 | unavailable — see the Retry-After header |
curl "https://api.memojin.com/v1/memocards/c5e8a1b2-3d4f-4a6b-9c8d-7e6f5a4b3c21" \
-H "Authorization: Bearer $MEMOJIN_API_KEY"{
"id": "c5e8a1b2-3d4f-4a6b-9c8d-7e6f5a4b3c21",
"contentId": "3f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87",
"front": "Where does photosynthesis take place?",
"back": "In the chloroplasts, mainly in the leaves.",
"explanation": null,
"retention": 0.82,
"lastReviewedAt": "2026-10-03T18:12:00.000Z",
"createdAt": "2026-10-01T14:05:00.000Z",
"updatedAt": "2026-10-01T14:05:00.000Z"
}Update a memocard
/v1/memocards/{memocardId}Scope memocards:writeChanges the front, the back or the explanation. Owner only.
Parameters
| Field | In | Type | Description |
|---|---|---|---|
memocardIdrequired | path | string (uuid) | Memocard identifier (UUID). |
Request body UpdateMemocardRequest
The fields to change; the others stay as they are.
| Field | Type | Description |
|---|---|---|
front | string1 to 2000 characters | New front side. |
back | string1 to 20000 characters | New back side, plain text. |
explanation | string | nullat most 5000 characters | New explanation, or null to clear it. |
Response 200
The memocard updated — A Memocard object
Errors
| HTTP | Meaning |
|---|---|
400 | validation_error or bad_request |
401 | invalid_api_key or revoked_api_key |
403 | insufficient_scope, account_suspended, live_not_enabled or forbidden |
404 | not_found |
406 | not_acceptable — the Accept header excludes application/json |
412 | precondition_failed — If-Match does not match the current ETag |
413 | payload_too_large |
415 | unsupported_media_type |
429 | rate_limited or test_quota_exceeded — see the Retry-After and RateLimit-* headers |
500 | internal_error |
503 | unavailable — see the Retry-After header |
curl -X PATCH "https://api.memojin.com/v1/memocards/c5e8a1b2-3d4f-4a6b-9c8d-7e6f5a4b3c21" \
-H "Authorization: Bearer $MEMOJIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"back": "In the chloroplasts."
}'{
"id": "c5e8a1b2-3d4f-4a6b-9c8d-7e6f5a4b3c21",
"contentId": "3f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87",
"front": "Where does photosynthesis take place?",
"back": "In the chloroplasts, mainly in the leaves.",
"explanation": null,
"retention": 0.82,
"lastReviewedAt": "2026-10-03T18:12:00.000Z",
"createdAt": "2026-10-01T14:05:00.000Z",
"updatedAt": "2026-10-01T14:05:00.000Z"
}Delete a memocard
/v1/memocards/{memocardId}Scope memocards:writeDeletes the memocard and its questions. Owner only. Answers 204 without a body.
Parameters
| Field | In | Type | Description |
|---|---|---|---|
memocardIdrequired | path | string (uuid) | Memocard identifier (UUID). |
Response 204
Deleted — No response body.
Errors
| HTTP | Meaning |
|---|---|
400 | validation_error — an identifier is not a UUID |
401 | invalid_api_key or revoked_api_key |
403 | insufficient_scope, account_suspended, live_not_enabled or forbidden |
404 | not_found |
406 | not_acceptable — the Accept header excludes application/json |
412 | precondition_failed — If-Match does not match the current ETag |
429 | rate_limited or test_quota_exceeded — see the Retry-After and RateLimit-* headers |
500 | internal_error |
503 | unavailable — see the Retry-After header |
curl -X DELETE "https://api.memojin.com/v1/memocards/c5e8a1b2-3d4f-4a6b-9c8d-7e6f5a4b3c21" \
-H "Authorization: Bearer $MEMOJIN_API_KEY"