Anki JavaScript API

AnkiWeb addon 1490471827

Provides JavaScript API commands to retrieve reviewer deck and card information, counts, flags, scheduling data, and search cards, compatible with AnkiDroid JS API.
AI-generated summary; may contain mistakes.

sync-integrationdeveloper-tools

Open on AnkiWeb GitHub Ask about alternatives

AnkiWeb

Rating
5 (πŸ‘ 5 Β· πŸ‘Ž 0)
Updated
2021-02-19
Anki versions
2.1.40~
Description language
en

Maintenance

stale

  • Last update or commit was 626 days before the snapshot (2025-01-13).

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 Anki review answers with AI feedback, retrieves relevant uploaded materials, offers tutor mode, analytics, and batch assessment.

aiimportschedulingreview-flowstatistics

Rating 1 πŸ‘ 1 Β· πŸ‘Ž 0 ⭐ 1 Anki 25.02.6~ Updated 2026-01-10
Coronavirus Tracker

Displays a toolbar indicator in Anki showing the number of people known to have recovered from COVID-19, using Johns Hopkins data via a third-party API.

sync-integrationmotivation

Rating 20 πŸ‘ 16 Β· πŸ‘Ž 4 ⭐ 4 Anki 2.1.24~ Updated 2020-04-22

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*')");