Anki JavaScript API

AnkiWeb addon 1490471827

Provides a JavaScript API in Anki's reviewer, compatible with AnkiDroid's JS API, to retrieve card and deck details, counts, and perform searches.
AI-generated summary; may contain mistakes.

sync-integrationcard-templatesdeveloper-toolsmobile-compatible

Open on AnkiWeb GitHub Find alternatives

AnkiWeb

Votes
5 (πŸ‘ 5 Β· πŸ‘Ž 0)
Updated
2021-02-19
Anki versions
2.1.40~
License
MIT (from the GitHub repository)
Virus scan
No ClamAV match A match does not prove malware. No match does not prove that the code is safe.
Languages
Python, JSON
Description language
en

Maintenance

stale

  • Last update or commit: 2025-01-13 (657 days before the snapshot).
  • Commits in the last year: 0.
  • Issues: 4 open, 0 closed.
  • Pull requests: 0 open, 3 merged.
  • Median first response: 448 hours (6 answered issues and pull requests).
  • Outside pull requests: 100% of 3 merged.

Will it work on my Anki?

Version branches
Min AnkiMax AnkiUpdated
2.1.302.1.40+2021-02-19
History across monthly snapshots

Loading…

Similar addons

AttendingAI

Grades written Anki answers using an LLM, retrieves supporting material via semantic RAG, offers tutor explanations, analytics, batch assessment, and optional interval suggestions.

aischedulingreview-flowstatisticsquiz

1 votes 21% approval πŸ‘ 1 Β· πŸ‘Ž 0 ⭐ 1 Anki 25.02.6~ Updated 2026-01-10
Anki Semantic Search

Enables semantic and keyword search across selected Anki notes, generating cited AI answers through local or cloud providers.

aisearch

3 votes 44% approval πŸ‘ 3 Β· πŸ‘Ž 0 ⭐ 3 Anki 25.09.2~ Updated 2026-06-15
Deck Performance Dashboard

Displays a hierarchical deck list with review, correct-answer, and percentage metrics, plus text, flag and ease filters, drill-down analytics, CSV export, and collapse and context-menu navigation.

exportstatisticssearchdeck-management

4 votes 30% approval πŸ‘ 3 Β· πŸ‘Ž 1 Anki 2.1.1~ Updated 2025-02-06
Chinese Vocabulary Generator

Generates Chinese vocabulary notes with simplified and traditional characters, pinyin, meanings, audio, and example sentences fetched online, adding them to selected Anki decks.

card-creationcard-templatesdictionary

5 votes 38% approval πŸ‘ 4 Β· πŸ‘Ž 1 ⭐ 3 Anki 2.1.40~ Updated 2021-02-24

Description

README

AnkiJS-API

Anki JavaScript API to get cards information in reviewer window

This addon is made to work with AnkiDroid JS API.

Install from AnkiWeb

https://ankiweb.net/shared/info/1490471827

Demo

images

To get card info in reviewer for creating decks

To know more about the options view AnkiDroid JS API.

New Count

pycmd("AnkiJS.ankiGetNewCardCount()", (ret) => {
    console.log(ret);
});

Learn Count

pycmd("AnkiJS.ankiGetLrnCardCount()", (ret) => {
    console.log(ret);
});

Review Count

pycmd("AnkiJS.ankiGetRevCardCount()", (ret) => {
    console.log(ret);
});

Mark

pycmd("AnkiJS.ankiGetCardMark()", (ret) => {
    console.log(ret);
});

Flag

pycmd("AnkiJS.ankiGetCardFlag()", (ret) => {
    console.log(ret);
});

Card Id

pycmd("AnkiJS.ankiGetCardId()", (ret) => {
    console.log(ret);
});

Note Id

pycmd("AnkiJS.ankiGetCardNid()", (ret) => {
    console.log(ret);
});

Deck Id

pycmd("AnkiJS.ankiGetCardDid()", (ret) => {
    console.log(ret);
});

Last modified time of card

pycmd("AnkiJS.ankiGetCardMod()", (ret) => {
    console.log(ret);
});

Type

pycmd("AnkiJS.ankiGetCardType()", (ret) => {
    console.log(ret);
});

Queue

pycmd("AnkiJS.ankiGetCardQueue()", (ret) => {
    console.log(ret);
});

Left

pycmd("AnkiJS.ankiGetCardLeft()", (ret) => {
    console.log(ret);
});

Due

pycmd("AnkiJS.ankiGetCardDue()", (ret) => {
    console.log(ret);
});

Interval

pycmd("AnkiJS.ankiGetCardInterval()", (ret) => {
    console.log(ret);
});

Factor

pycmd("AnkiJS.ankiGetCardFactor()", (ret) => {
    console.log(ret);
});

Reps

pycmd("AnkiJS.ankiGetCardReps()", (ret) => {
    console.log(ret);
});

Lapses

pycmd("AnkiJS.ankiGetCardLapses()", (ret) => {
    console.log(ret);
});

Original Due

pycmd("AnkiJS.ankiGetCardODue()", (ret) => {
    console.log(ret);
});

Deck ID of home deck if filtered

pycmd("AnkiJS.ankiGetCardODid()", (ret) => {
    console.log(ret);
});

Next Time 1

pycmd("AnkiJS.ankiGetNextTime1()", (ret) => {
    console.log(ret);
});

Next Time 2

pycmd("AnkiJS.ankiGetNextTime2()", (ret) => {
    console.log(ret);
});

Next Time 3

pycmd("AnkiJS.ankiGetNextTime3()", (ret) => {
    console.log(ret);
});

Next Time 4

pycmd("AnkiJS.ankiGetNextTime4()", (ret) => {
    console.log(ret);
});

Search in browser

When quotes are needed in the search, e.g. "deck:My Deck" due to spaces in a deck name, they'll need to be escaped as the argument itself must be wrapped with single or double quotes.

pycmd("AnkiJS.ankiSearchCard('\"deck:My Deck\" MyField:*foo*')");