Skritter Developer API


#1

Hi! I’m a developer working on open source projects in my spare time. I’m interested in making an Anki plugin to sync from/to Skritter by finding correspondences between content in the user’s vocabulary on both sides wherever possible (thus not copying any copyrighted data from Skritter). Based on my discussions with several Chinese learners, this would be highly useful, since many of us already have thousands of cards in Anki but would like to use Skritter for the writing part. It would also be useful in the opposite direction, if I want to start using Skritter and “import” my vocabulary.

I see some very old mentions of a Skritter API, is that still a thing? In that case, how would I go about applying for an API key? I also see in the browser that there are nice endpoints for interacting with a user’s vocabulary, but using those I assume would fall outside of ToS?

Thanks!


#2

For anyone else who might want to use the skritter API, I managed to create a developer account by using the special APICLIENT coupon code, and retrieved the client id and client secret by logging in to legacy.skritter.com. I guess this is still OK, even though it was a bit hard to find the instructions. I’m pleasantly surprised to see such a complete API, I hope I can do something useful with it, and if so I’ll be sure to post it here.


#3

Hey, good luck on your project! If a user wants to give your client their login info and it receives a valid token for their account, you can basically do any interactions you could do through the website (add vocab, custom definitions, mnemonics, etc.) programmatically.

However, I would advise you be careful about the content you take from Anki and how you store it onto Skritter (and vice versa, especially if it’s a user’s custom Skritter data), that’s where you could get into a legal grey area. Though I am not a lawyer and this is not legal advice, here’s some thoughts I came up with that might be of concern as you develop functionality:

  1. Don’t use/take any private or copyrighted content from Anki (e.g. if it’s a deck with example sentences copied exactly from a specific textbook) and publicly put it into Skritter.
  2. Don’t take private Skritter user data (basically anything you wouldn’t be able to see unless you were logged in as them) and turn it into public Anki data.

Basically, don’t turn private data on either platform into public data through the transfer. Here’s some ideas on how you might make it easier to achieve your functionality within those constraints:

From Anki to Skritter, keep any custom lists you create private by default, and try your best to only use Vocabs that already exist the Skritter database (we probably have it, though maybe with a slightly different definition). Make a custom definitions, etc. on UserVocabs for the existing Vocab, private mnemonics, etc., not entirely new base Vocabs.

From Skritter to Anki, see if you can make it work by using Anki’s definitions instead of Skritter’s. That would be easy and protect you from having to worry about which lists can be made privately/publicly available for a user.

Especially with GDPR coming soon, we are doing a review of how we store user content and provide access to it. We don’t anticipate a need to change anything, but if we do need to make any breaking changes to how the API works, we’ll be sure to document it.


#4

Thanks for your reply!

I am totally on board with what you are saying. I want to avoid actually copying of any content due to copyright infringement issues, but I think I should be able to establish correspondences between pieces of content in Skritter and Anki, i.e. whether a Skritter word with id X corresponds to note/card Y and Z in either the user’s private Anki decks or public shared decks. For now I’m mainly thinking about syncing words and characters, rather than sentences (this also reduces the issue of copyright I’d think).

Also, I’m pursuing a few different related ideas. This is the top 2 on my list, but I’m not sure exactly when I’ll get to it. When I do I’ll make sure to keep you in the loop so there are no nasty surprises regarding copyright or GDPR.