API Interface

I’d like to ‘export’ from my source system, into Brainscape. However, my source data has more in it - eg some of it is MC questions, some is not (keyword/statement+text, etc etc), and other types. Proposed solution: API access for content creators like I want to be (or even normal users at some point?).

If I had access to an API, it could be significantly easier. I could implement conditional logic in my code accessing the cards - for the various options/fields Brainscape makes available, etc etc. In a spreadsheet, MC quiz data can’t really live beside flashcard data… (maybe there is a system of markup that forces a CSV to work? I haven’t exactly found that yet. The importer has the AI function to help make the text work properly, so it seems we must already know this problem!) Maybe this might allow new types of data in flashcards with full import/export capability that isn’t ruined by putting it into a CSV- eg a visual card like - “touch the location in this picture where you see XYZ”

Further discussion:

I think ensuring the API returned a key of some sort for each question created would be useful - it would help me if I ran the code a second time around - eg, pushing changes/edits from my source data. I would record the brainscape ID against my source data. If cards allowed translation (eg each card having multiple properties, English title + [other-language] title - I could rattle through my card content, use a service for the translation, and update the correct language field, on the correct card/question, preventing two sets of cards. If this isn’t possible, I could create a complete new deck, with translations, and when I wanted an update from source, this whole process would become significantly less painless.

If an API was 100% fully featured, something might need to be done to prevent the Brainscape backend being unfairly whitelabelled/abused by a rogue app, but I’m sure something could be done. Maybe each update to the app changes a key of some sort, or maybe the user admin process etc, is not exposed over the API… or if its necessary, make that API paid, etc etc. Generating API Keys belonging to users could be a good way, where Brainscape has the option to revoke them, or monitor usage vs actual user accounts.

Sidenote: Maybe JSON with a strict schema would be a great way to allow import/export of data with better structure, when using the expanded importer?

Just some thoughts!