Flashcards

A deck of question-and-answer flashcards from a topic, your text or a document, with an Anki-compatible CSV.

  • Price1 credit (10p) per set
  • Typical time10 s to 60 s
  • Scopelearning:write
  • Runs asA background job
Try it

Run flashcards in the sandbox

No key and nothing to pay. The sandbox returns a realistic example in a couple of seconds; no AI runs and no data is kept.

A subject to study from general knowledge, for example "Photosynthesis for GCSE Biology".
Your own teaching text (at least 200 characters, at most 10,000 words). Material stays grounded in it.
A name for your text or document, such as the lesson or chapter title.
Concepts to concentrate on, in plain words.
How to pitch the material. Leave it out for upper-secondary to first-year university level.
Who the material is for, for example "Year 10 learners who find maths hard".
The language to write in. British English unless you choose another.
How many cards to make (5 to 30). Fewer come back only when the source honestly supports fewer.
quick_recall: one crisp fact per card. definitions: term and definition. key_concepts: core ideas explained briefly. difficult_concepts: the ideas learners most often confuse. exam_style: exam questions with model answers.
  1. Queued202 and a job id, straight away
  2. ProcessingPoll, stream or wait for a webhook
  3. SucceededResult and files on the job
Every AI request runs as a background job, so nothing times out.

Cards are grounded in your text or document; a topic uses accurate, mainstream knowledge. Each card has a front, back, optional hint and a short topic tag. A finished job also has flashcards.csv, which Anki imports directly (File > Import). Maths is written as LaTeX inside \( \).

Requires learning:write. Costs 1 credit per set. Send a unique Idempotency-Key; reuse it with the identical body when retrying. Returns 202 with a job: poll GET /jobs/{job_id}, stream GET /jobs/{job_id}/events, or use a signed webhook.

Flashcards

POST/v1/flashcards

Scope learning:write

Headers

Flashcards: headers
FieldDetails
Idempotency-KeystringRequiredA unique key per new operation; reuse it with the identical body when retrying.
EduMark-VersionenumAPI version. Defaults to the latest.One of 2026-10-21

Request body

Flashcards: request body
FieldDetails
topicstring, optionalA subject to study from general knowledge, for example "Photosynthesis for GCSE Biology".Up to 200 characters
source_textstring, optionalYour own teaching text (at least 200 characters, at most 10,000 words). Material stays grounded in it.Up to 120,000 characters
documentFileReference or DocumentInput, optionalA PDF, DOCX or TXT to study from: {"file_id"} from POST /v1/files, or inline base64.
file_iddocument.file_idstringRequiredThe id returned by POST /v1/files, after POST /v1/files/{id}/complete reported ready.When sending FileReferencePattern ^file_[a-f0-9]{32}$
filenamedocument.filenamestringRequiredWhen sending DocumentInputUp to 200 characters
base64document.base64stringRequiredWhen sending DocumentInputUp to 27,962,028 characters
mime_typedocument.mime_typestring, optionalWhen sending DocumentInputUp to 150 characters
titlestring, optionalA name for your text or document, such as the lesson or chapter title.Up to 200 characters
focusstringConcepts to concentrate on, in plain words.Up to 500 charactersDefault ""
levelenum, optionalHow to pitch the material. Leave it out for upper-secondary to first-year university level.One of new_to_this, foundation, intermediate, advanced, exam_revision, deep_dive
audiencestring, optionalWho the material is for, for example "Year 10 learners who find maths hard".Up to 200 characters
languageenumThe language to write in. British English unless you choose another.One of English, Welsh, Irish, Gaelic, French, Spanish, German, Italian, Portuguese, Dutch, Polish, Arabic, Urdu, Hindi, Punjabi, Bengali, Chinese, Mandarin, Cantonese, Japanese, Korean, Russian, Turkish, Greek, Swedish, Norwegian, Danish, Finnish, Romanian, Hungarian, Czech, Ukrainian, Farsi, Persian, Hebrew, Swahili, Somali, Tamil, Gujarati, Vietnamese, Thai, Indonesian, Malay, Tagalog, LatinDefault "English"
countintegerHow many cards to make (5 to 30). Fewer come back only when the source honestly supports fewer.5 to 30Default 15
styleenumquick_recall: one crisp fact per card. definitions: term and definition. key_concepts: core ideas explained briefly. difficult_concepts: the ideas learners most often confuse. exam_style: exam questions with model answers.One of quick_recall, definitions, key_concepts, difficult_concepts, exam_styleDefault "key_concepts"

Responses

StatusMeaning
202Successful Response
400Request rejected. Inspect error.code and request_id; failed work is not billed.
401Request rejected. Inspect error.code and request_id; failed work is not billed.
402Request rejected. Inspect error.code and request_id; failed work is not billed.
403Request rejected. Inspect error.code and request_id; failed work is not billed.
404Request rejected. Inspect error.code and request_id; failed work is not billed.
409Request rejected. Inspect error.code and request_id; failed work is not billed.
410Request rejected. Inspect error.code and request_id; failed work is not billed.
413Request rejected. Inspect error.code and request_id; failed work is not billed.
415Request rejected. Inspect error.code and request_id; failed work is not billed.
422Validation Error
429Request rejected. Inspect error.code and request_id; failed work is not billed.
503Request rejected. Inspect error.code and request_id; failed work is not billed.

Files and errors

Files on the finished job

  • flashcards.csvAnki-compatible CSV: Front, Back, Tags.

Download with GET /v1/jobs/{id}/files/{name}.

Product errors

  • SOURCE_REQUIREDHTTP 422. Provide exactly one of topic, source_text or document.
  • SOURCE_TOO_SHORTHTTP 422. source_text needs at least 200 characters to study from.
  • INPUT_TOO_LARGEHTTP 422. source_text supports at most 10,000 words.
  • MODEL_RESULT_INVALIDOn the finished job. The generated material did not pass EduMark's checks. No charge was applied.
  • PROCESSING_UNAVAILABLEOn the finished job. Processing could not complete safely. No complete result was issued.
  • DOCUMENT_READ_FAILEDOn the finished job. The document could not be read safely.