Recall
Create and manage spaced repetition flashcard decks in Recall directly from ChatGPT. Turn lecture notes, articles, or any conversation into rich cards in one request. ChatGPT designs the deck structure, writes atomic cards that follow proven memory-retention principles, and schedules them so you can start reviewing right away. Track your progress and surface your most difficult cards anytime.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Flashcards & Self-Study Practice
- Secondary Subcategories
- None listed
- Brand
- Recall
- Access
- Account required
- First tracked
- 2026-07-24
- Tool count
- 26
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is visible.
ChatGPT Plugin Discoverability Score
ChatGPT organic discovery is not live yet
Recall is tracked in the ChatGPT Plugin registry. Public organic-discovery measurement is not live for ChatGPT yet, so there is no score to publish today.
Get notified when your score goes live
Enter your work email and we’ll notify you when ChatGPT Plugin organic discovery scoring launches.
No spam. Unsubscribe any time.
Competing in ChatGPT Flashcards & Self-Study Practice
View CategoryHow the Discoverability Score works
Organic discovery scoring for Recall on ChatGPT is not live yet. The score will use measured agent conversations when it launches.
Organic discovery scoring is pending. Your Plugin score will appear on this scale when measurement goes live.
FoundDiagnostic
Whether Claude found your Plugin in connector search. It must be Found before it can reach the picker, but the score counts picker appearances—not search results.
PickedMain score
How often your Plugin appeared in the picker, or Claude invoked it directly, across contested conversations. This percentage is the Discoverability Score; the headline number is rounded.
PositionedDiagnostic
What position your Plugin appeared in when it was shown in the picker. This shows prominence, but it does not affect the score.
26 tools agents can invoke
Create one or more cards in a deck. Content is keyed by the deck field `key` values, so call get_deck first for the keys and each field's autofill settings. Write the text yourself whenever you can — including text-based AI Autofill fields such as translations, definitions, or example sentences — following each field's autofill_type, autofill_prompt, and autofill_language_to, plus anything decided with the user. Previewing several cards before this call is recommended, not required: a compact table (deck field names as columns, one row per card) lets the user review what they are getting. Past roughly 20 cards, do not list them all — a wall of text that long goes unread. Show an overview instead: how many cards and what they cover, plus 5 to 10 representative rows so the user can see the content format. They review the full set in the Recall app afterwards. Leave image and audio fields empty: Recall owns their generation. Keep trigger_autofill true (the default) so Recall fills any field you leave empty, notably the images and audio. If the deck has an image field with autofill, every card you add spends one of the user's paid image credits — make sure they know and have agreed before adding cards to such a deck. Duplicate cards (same front) are skipped and reported in `skipped`. AI Autofill is all-or-nothing per request: if the remaining quota or image credits can't cover every field it would generate, none are and each card's `autofill.skip_reason` is set — relay the quota notice to the user without suggesting an upgrade or purchase. Content format: rich_content fields take HTML, not Markdown — write "<p><strong>Leningrad</strong> fell in 1941</p>", never "**Leningrad** fell in 1941", whose asterisks can end up displayed as they are. Only these tags survive: <p>, <strong>, <em>, <a href="…">, <br>. So <strong> instead of **, <em> instead of *, <br> or a second <p> for line breaks, and no headings, lists (<ul>/<li> are dropped), code or tables — write values that need none of them. plain_text, number and url fields take bare text with no tags at all. Follow flashcard best practices. Atomic cards: exactly one fact or idea per card — split anything containing "and", a list, or several clauses into separate cards (an enumeration is best learned as one card per element, never as one card listing all of them). Unambiguous front: the front field must admit exactly one correct answer, with a short cue (part of speech, domain, category) when the prompt alone could match several things — especially when cards in the deck could be confused with each other. Minimal answer: the main answer field is the shortest string that proves recall; put nuance, mnemonics, and detail in the deck's supplementary fields (notes, examples) rather than inflating the answer. Prefer concrete examples over abstract phrasing.
add_cards
Add one or more fields (columns) to an existing deck. Existing cards get the new fields empty; fill them afterwards with generate_deck_field_values (if the field has AI Autofill) or by updating cards. Autofill sources reference an existing field by its ID (field_...) or a sibling in this request by its temporary_id. As in create_deck, audio and image fields must have autofill configured (text_to_speech / image_generation) or they stay permanently empty.
add_deck_fields
Duplicate a deck: its fields (with their autofill configuration), layouts, cards, and study order settings. Audio and image assets are copied over rather than regenerated, so the copy costs no autofill quota and no image credits. Learning progress is not carried over — the copy starts fresh, with its first batch of cards already scheduled. Use it whenever the user wants a new deck derived from an existing one, not just for backups: to snapshot a deck before large edits (renaming fields, rewriting cards, bulk deletions), to restructure a variant without touching the original, or as the starting point for an adapted version — a translation, a simplified edition, a different angle on the same material. For an adaptation, always prefer copying over rebuilding with create_deck: the copy keeps the image assets for free (recreating them would cost one image credit per card), plus the layouts and autofill wiring, and you then rewrite the text with update_cards and adjust the fields. The copy counts toward the user's deck limit. Returns the new deck with its fields — show its `url` to the user.
copy_deck
Create an additional card layout for a deck. Each active layout schedules and reviews its own variant of every card, so a second layout is how the user practices a different direction or piece of the same cards: the classic case is a reverse layout (meaning on the front, word on the back) to train production as well as recognition, but a layout can also test one specific field (the reading of a word, a date). Because every active layout multiplies the reviews, propose extra layouts deliberately and confirm with the user rather than creating them on your own initiative. A layout needs 1 to 5 fields on the front and 1 to 12 on the back, and a deck can have up to 6 layouts. Keep the front minimal — only what prompts the recall — and leave out fields that would give the answer away. When the layout tests a non-obvious task, set a short prompt so the learner knows what is asked. Styling guidelines: highlight the main information of each side (the prompt on the front, the core answer on the back) with font_weight bold and the primary color; if its values are generally short use font_size lg, or xl for very short ones like single words or characters (e.g. Japanese words). Secondary information keeps regular weight with md or sm size, and the secondary color for supporting content like hints, readings, or usage notes. An audio field that reads another field aloud goes next to that field with next_to_card_layout_field, on the same side, so its play button sits inline with the text. Set is_primary true only if this layout should become the deck's reference layout (requires every card to have a value on its front); a primary layout is always active. Returns the created layout with its fields.
create_card_layout
Create a new deck from scratch. If it derives from a deck the user already has (a translation, a simplified edition, a restructured variant), do not rebuild it here: use copy_deck and edit the copy — it keeps the image and audio assets for free, plus the layouts and autofill configuration. FIRST decide the shape of the deck, before writing any field. A deck works like a small spreadsheet — each deck field is a column, each card a row — and that structure pays off only when every card really shares the same attributes. Picking the wrong shape is the most common mistake: - Structured (many fields): the subject is a set of comparable items described by the same attributes, and the learner should know several of them per item — vocabulary (word, reading, meaning, example sentence), kanji (character, meaning, on'yomi, kun'yomi, example word), chemical elements, countries and capitals, anatomy, drug dosages. Here be thorough: one field per attribute rather than cramming everything into two. - Unstructured (just "Front" and "Back"): the subject is general knowledge — facts, concepts, events, questions and answers, exam revision, book or lecture notes, trivia. Each card is its own question and they share no common attribute grid. Omit deck_fields entirely to get the two default rich content fields, put the question on the front and the answer on the back, and use the back's rich formatting (a bold key term, a second line of context) when a bare answer is not enough. Do not force a schema onto an unstructured subject. Columns like Date / Location / Who was involved / Why it mattered for a history deck leave most cards half empty or restating the answer, and every review tests five things at once instead of one — the opposite of a good flashcard. An open-ended request ("a deck about WW2 history, about 50 cards") is unstructured by default: choose Front/Back and spend the effort on 50 sharp questions. Go structured only when the attribute grid is obvious from the subject itself; if it is a close call, say in one line what fields you would use and let the user confirm first. In a structured deck, the front (the first field) holds only the prompt the learner is tested on, and the rest goes on the back. Fields can have AI Autofill, where Recall generates a field's value from other fields. An audio or image field MUST have autofill configured or it stays permanently empty: audio needs autofill_type text_to_speech, image needs image_generation. Audio is covered by the monthly quota, but images spend paid image credits (one per card) — be proactive with audio, never with images: add an image field only when the user explicitly asked for images or agreed after you mentioned the credits cost. For any language-learning deck always include an audio field that reads the word in the language being learned (and a second one for the example sentence when present): give the source text field a temporary_id, then set the audio field's is_autofill_enabled true, autofill_type text_to_speech, autofill_generate_from_deck_fields to that temporary_id, and autofill_language_to to the language's voice locale. E.g. a Japanese field with temporary_id "jp" plus { "type": "audio", "is_autofill_enabled": true, "autofill_type": "text_to_speech", "autofill_language_to": "ja-JP", "autofill_generate_from_deck_fields": ["jp"] }. add_cards fills audio and images by default (trigger_autofill is true), so you never write them yourself. Also configure autofill on the text fields the user may add cards to later in the app. When you add the cards yourself with add_cards, write the text values directly rather than relying on autofill: it is immediate, reviewable, and saves the user's autofill quota (a text field you fill is automatically skipped by autofill). Leave audio and image fields empty so Recall generates them. Omitting deck_fields gives the deck two rich content fields, "Front" and "Back". Returns the created deck with its fields, whose `key` values are used with add_cards. The deck starts with one card layout showing the first field on the front and the rest on the back; use edit_card_layout_fields or create_card_layout to restyle it or add a layout testing another direction (e.g. a reverse layout).
create_deck
Permanently delete a card layout. This also deletes its card variants, so the scheduling state and learning progress of the cards under this layout are lost for good — when the user may want the layout back later, deactivate it with update_card_layout instead, which just removes it from reviews. The primary layout can't be deleted. Make sure the user explicitly asked for the deletion.
delete_card_layout
Permanently delete one or more cards, including their content and review history. This cannot be undone, so make sure the user explicitly asked for it. Cards are deleted one by one; the result reports each outcome.
delete_cards
Permanently delete a deck field and its content on every card of the deck. This cannot be undone, so make sure the user explicitly asked for it. Fails if the deck would drop below its minimum number of fields.
delete_deck_field
Change which deck fields a card layout displays, and how: `add` places deck fields in the layout, `update` restyles, reorders or moves fields already in it, `remove` takes fields out. A deck field is not displayed anywhere until it is placed in a layout, so after add_deck_fields, read the deck's layouts with get_deck and decide with the user where each new field belongs: on the back as supporting information (the common case), on the front if it is part of the prompt, or left out of a layout that tests something else. Removing a field only stops displaying it — the deck field and the cards' content are untouched, and it can be added back later. Pass every change in one call rather than one call per field. The groups are applied in order (add, then update, then remove) and each is validated as a whole, so `update` can do what a field-by-field edit cannot, like swapping two fields between the front and the back. They are not a single transaction: if a later group fails, the earlier ones stay applied and the error says what was written. Each side must keep at least one field, with at most 5 on the front and 12 on the back. Returns the layout's fields after the edit. Styling guidelines: highlight the main information of each side (the prompt on the front, the core answer on the back) with font_weight bold and the primary color; if its values are generally short use font_size lg, or xl for very short ones like single words or characters (e.g. Japanese words). Secondary information keeps regular weight with md or sm size, and the secondary color for supporting content like hints, readings, or usage notes. An audio field that reads another field aloud goes next to that field with next_to_card_layout_field, on the same side, so its play button sits inline with the text.
edit_card_layout_fields
Fill a field's value on every card of the deck with AI Autofill, using the field's autofill configuration (the field must have is_autofill_enabled true). Generation runs in the background and can take a few minutes on large decks. Values the user edited manually are preserved by default; set overwrite_manually_updated true only if the user explicitly wants those regenerated too. The whole run must fit in the remaining monthly AI Autofill quota (or image generation credits for image fields), otherwise the call fails — relay the quota message to the user without suggesting an upgrade or purchase. For an image field the run consumes one paid image credit per card, so confirm with the user before generating images.
generate_deck_field_values
Retrieve a card with its content (keyed by deck field `key`) and its card variants — the scheduling state of the card in each of its layouts: stage (unscheduled, learning, relearning, young, mature, suspended), next_review_at, interval in days, and difficulty (easy, medium, hard, very_hard). Use it to answer how a specific card is doing, or before changing its scheduling with update_card_scheduling.
get_card
Retrieve a deck with its deck fields and its card layouts. Call it before writing cards for a deck, and before advising on or changing its fields or layouts. The deck fields are the deck's columns: read each field's `key` to write card content with add_cards, and its autofill settings (is_autofill_enabled, autofill_type, autofill_prompt, autofill_language_to) so you can write text-based AI fields yourself in the intended style. Image and audio fields are generated by Recall. The card layouts define what a card tests, not just how it looks: a layout's front fields are the prompt, its back fields the answer, and a deck field left out of a layout is not shown at all. Each layout field carries the deck_field it displays, its side (is_front), order, styling (color, font_size, font_weight) and optional next_to link. is_active means the layout is reviewed; is_primary marks the deck's reference layout (always active, not deletable); prompt is an optional instruction shown above the front in reviews.
get_deck
The deck's latest progress snapshot: retention (a 0-100 estimate of how much of the deck the user currently knows — the average probability they would remember each card right now, not a measure of memory stability; 0 almost always means the deck has not been reviewed yet) and how many cards sit in each learning stage (unscheduled, learning, relearning, young, mature, suspended). Use it for "how am I doing on this deck". A deck that has never been studied still returns a snapshot (typically every card unscheduled with retention 0) rather than nothing. Stage counts are null on the free plan (retention is available on every plan). For trends over time use list_deck_progress; for "what is due now" use list_decks (each deck carries due_cards_count and next_review_at).
get_deck_progress
List the user's review history, newest first. Each review records the card, the card variant, when it happened, and the grade the user gave (1 = forgot, 2 = hard, 3 = good, 4 = easy). Filter by card, card variant, or deck to answer questions like "when did I last review this card" or to analyze what keeps being forgotten (grade 1).
list_card_reviews
List card variants — the scheduling state of each card in each of its layouts (the unit Recall schedules and reviews), most recently created first. Each variant carries its card ID, stage, next_review_at, interval in days, and difficulty label (easy, medium, hard, very_hard). Filter by deck, card, stage, or difficulty to answer questions like "which cards are suspended" (stage=suspended), "which cards have I not started" (stage=unscheduled), or "show me my hardest cards" (difficulty=very_hard marks the few leech-like cards worth suspending or rewriting).
list_card_variants
List cards with their content (keyed by deck field `key`), most recent first, optionally filtered to a single deck. Use it to browse or search what is in a deck. For the scheduling state of cards (stages, due dates, difficulty) use list_card_variants, and for one card in depth use get_card.
list_cards
The deck's progress over time: one snapshot per day (oldest first), each with retention and the per-stage card counts — for trends like exam preparation, or spotting whether retention is rising or falling. Omitting both dates defaults to the last 90 days; pass start_date and/or end_date to choose the window. Stage counts are null on the free plan (retention is available on every plan). For just the current state use get_deck_progress.
list_deck_progress
List the decks owned by the user, most recent first, with their IDs, names, and card counts.
list_decks
Pause the study of a deck: Recall stops prompting its reviews in the app and notifications, and stops adding new cards to reviews. Card review dates are untouched, so due cards reappear as soon as the deck is unpaused. Fails if the deck is already paused.
pause_deck
Immediately put the deck's next batch of new cards into the review queue, due now. Recall normally paces new cards day by day, so use this when the user wants to study right away: right after setting up a brand-new deck (so it is reviewable the moment they open it) or when they ask to study ahead of the automatic pace. Do NOT call it after adding cards to, or creating a layout in, an existing deck — that deck is already being paced, so let the automatic scheduling introduce the new cards instead of forcing them due now. Without count, Recall picks the recommended batch size from the user's daily study settings (about two days of new cards) — keep that default unless the user asked for a specific number. Calling it again schedules the next batch. A deck with no schedulable cards left is returned unchanged. To schedule one specific card, use update_card_scheduling.
schedule_deck_cards
Resume the study of a paused deck. Reviews that came due while it was paused are prompted again immediately. Fails if the deck is not paused.
unpause_deck
Update a card layout: its review prompt, whether it is active, and whether it is the deck's primary layout. Only the parameters you pass are changed, and passing a value the layout already has is a no-op. is_active is what puts a layout in reviews. Activating schedules a variant of every card, so it adds daily reviews: confirm with the user first, then let Recall pace those cards instead of calling schedule_deck_cards. Deactivating only removes the layout from reviews — its fields and its variants' learning progress are kept, and reviews resume where they left off on reactivation, so prefer it over delete_card_layout, which erases that progress for good. The primary layout can't be deactivated. is_primary makes the layout the deck's reference layout, demoting the current one; to demote a primary layout, promote another instead. It requires every card to have a value on this layout's front, and the layout becomes and must stay active. prompt is a short instruction shown above the front in reviews, e.g. "Say it out loud". Pass null to remove it.
update_card_layout
Change the scheduling of a card variant (get variant IDs from get_card or list_card_variants). schedule adds an unscheduled variant to reviews now (only from the unscheduled stage); snooze pushes the next review to tomorrow (only for variants already scheduled); suspend removes a variant from reviews until further notice, keeping its progress (any stage except suspended) — the right move for a very_hard card the user is fed up with; unsuspend returns a suspended variant to the unscheduled stage (its progress restarts). An action from the wrong stage fails with a message explaining why.
update_card_scheduling
Update the content of one or more cards of a deck in a single call — always prefer one batched call over card-by-card updates (up to 100 per call). For each card, only the fields you pass are changed; set a field to null to clear it. Content is keyed by deck field `key` (call get_deck for the keys). As with add_cards, write text fields yourself and leave image and audio fields alone: Recall regenerates AI fields that depend on the fields you changed when trigger_autofill is true (the default). The batch is all-or-nothing: if any update is invalid (unknown field key, empty side, duplicate front), nothing is changed and the error points at the offending item — fix it and resubmit. Before bulk edits, consider suggesting copy_deck to the user as a snapshot. Content format: rich_content fields take HTML, not Markdown — write "<p><strong>Leningrad</strong> fell in 1941</p>", never "**Leningrad** fell in 1941", whose asterisks can end up displayed as they are. Only these tags survive: <p>, <strong>, <em>, <a href="…">, <br>. So <strong> instead of **, <em> instead of *, <br> or a second <p> for line breaks, and no headings, lists (<ul>/<li> are dropped), code or tables — write values that need none of them. plain_text, number and url fields take bare text with no tags at all.
update_cards
Update a deck's name or study settings. max_new_reviews_per_day is how many new cards Recall automatically adds to reviews each day; target_retention is the probability, as a percentage, that the user aims to still remember each card when it comes up for review (higher means more frequent reviews). Only the parameters you pass are changed.
update_deck
Rename a deck field or change its AI Autofill configuration. Autofill parameters follow the same rules as in create_deck, except sources are referenced by existing field IDs (field_...). Set is_autofill_enabled false to turn autofill off. Changing the configuration does not regenerate existing values: call generate_deck_field_values afterwards if the user wants that.
update_deck_field
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Recall alternatives on ChatGPT?
As of 2026-08-14, Recall competes with Ace Flashcard Maker, Ace Quiz Maker, Bee Spelling, Drill, Flashcards Space, Kuliko AI, Lurna, Quizlet, SFT Brain, SRS (Spaced Repitation System), 受験王 in ChatGPT Flashcards & Self-Study Practice, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.