AnkiWeb
- Rating
- 21 (π 15 Β· π 6)
- Updated
- 2025-09-11
- Anki versions
- 24.11~
- Description language
- en
AnkiWeb addon 594879777
Imports LingQ vocabulary into an Anki deck, sets due dates by LingQ level, and syncs LingQ levels from Anki review intervals.
Open on AnkiWeb GitHub Ask about alternatives
stale
| Min Anki | Max Anki | Updated |
|---|---|---|
| 2.1.6 | 2.1.16 | 2023-12-25 |
| 2.1.17 | β | 2024-04-05 |
| 2.1.18 | 24.11+ | 2025-09-11 |
Loadingβ¦
Syncs WaniKani and Anki, creating notes with dependency tracking, configurable unlocking, and bidirectional review syncing via API key configuration.
Syncs LingQs on demand into lesson and course tags without overwriting synced LingQs, with options for reverse cards, import statuses, and disabling lesson tags.
Syncs words encountered in LingQ into Anki 2.1, creating a deck per selected language and supporting AwesomeTTS presets.
Syncs WaniKani subjects into an Anki deck with optional bi-directional due-time and review reporting, migration from WK3, and configurable sync/reporting settings.
Syncs Freeplane/Freemind mind-map nodes to Anki cards, supporting folder imports, hierarchy paths, configurable outlines, exclusions, and navigation back to nodes.
Syncs vocabulary and cloze phrases saved in a language-learning reader into Anki notes, returning review states and daily activity counts via a scoped API token.
See it on AnkiWeb
You will need your lingq API key. You can get that here.
The language code for the lingq language you want to sync with. Example: "es"
A menu item to open the ui can be found under Tools > Import LingQs from LingQ.com.

Input your lingq api key and language code (such as "es" for spanish), then select the deck you want to sync lingqs to or that you want to sync lingq level based on the card interval. (Currently you should create a new deck only used for lingq's and import into that new deck, and only sync from that deck).
Click the "Import" button to import all of your lingqs for that language code into the selected anki deck.
Be patient, either of these operations will take some time. Once the operation completes you will see this screen and it will tell you how many Lingqs were imported.

After import, your API key and language code should be preserved for the next time you want to import or sync!
As you continue to use lingq.com and create new lingqs in your account, rerun the import in this addon to fetch the new lingqs into anki. This will not interfere with the level of your already-fetched anki cards.
If you want to re-import a word from LingQ into Anki, simply delete the card/note from your anki deck and run the import again.
Click the "Sync to Lingq" button to update the "level" on your lingqs based on the interval of the card in anki. (As a precaution this addon will not set a lower level in lingq unless "Allow Sync to downgrade LingQs" is checked).
Note that you cannot manually set the due date on a card in anki and expect it to update the level in lingq. This is due to the way anki implements their "interval" value. The only way is to review the card.
As the name implies the goal is to sync between lingq and anki. This addon has the following features:
Lingq is a great tool for reading in your target language, but I prefer to use anki as my SRS. Lingq has an option to export lingqs to anki, however it has some flaws which this addon attempts to address:
There is an API endpoint to retrieve your API key for lingq in their documentation. It's easiest to use this in dev at least.
Type: API Key
Key: Authorization
value: Token {apiKey}
add to: Header
Lingq object is refering to a single lingq (word).
{
"pk": primaryKey,
"url": url to get single card info,
"term": string,
"fragment": string,
"importance": int,
"status": int,
"extended_status": null,
"last_reviewed_correct": null,
"srs_due_date": date,
"notes": string,
"audio": null,
"words": string[],
"tags": string[],
"hints": hintObject[],
"transliteration": {},
"gTags": [],
"wordTags": [],
"readings": {}
}
{
"id": int,
"locale": string,
"text": string,
"term": string,
"popularity": int,
"is_google_translate": bool,
"flagged": bool
}
https://www.lingq.com/api/v3/{languageCode}/cards
Will return this json with the first 100 lingqs:
{
"count": int,
"next": string,
"previous": string,
"results": [
List of lingq objects
]
}
Add ?page={pageNumber} to return a specific page of cards
https://www.lingq.com/api/v3/{languageCode}/cards/{primaryKey}/
Will return a single lingq object that matches the primaryKey within the language code. If an invalid primaryKey is supplied the api will return a 404 Not found with a return body of
{
"detail": "Not Found."
}
https://www.lingq.com/api/v2/{languageCode}/cards/{primarykey}/
Body Json object of the items that will be changing in the lingq object. Example:
{
"status": 2
}
Note: Not all fields of the object can be updated here. I have tested the following:
https://www.lingq.com/api/v2/{languageCode}/cards/{primaryKey}/review/
Tells lingq that the card has been reviewed via srs on the date this is sent. Will update lingqs srs_due_date.
It seems like this needs to be called instead of changing the due date manually with the patch request.
Returns an object showing the new srs_due_date and status_changed_date:
{
"srs_due_date": date,
"status_changed_date": date
}