Skip to main content

Scholarsome API

Download OpenAPI specification:Download

This page contains documentation about how to use the Scholarsome API. Currently, only endpoints that do not require authentication are able to be used. In a future update, API tokens will be introduced that allow for the usage of privileged endpoints.

Authentication

Create an API key

Request Body schema: application/json
name
required
string <= 191 characters

The name to describe the purpose of the API key

Responses

Request samples

Content type
application/json
{
  • "name": "API Key #1"
}

Delete an API key

Request Body schema: application/json
apiKey
required
string = 36 characters

The ID of the API key

Responses

Request samples

Content type
application/json
{
  • "apiKey": "384ecc57-28d6-4c33-8f41-a27ec3992b42"
}

Users

Get the authenticated user

Gets the user object of the user that is currently authenticated

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Get a user

path Parameters
userId
required
string = 36 characters
Example: da692ac2-64b0-4a9b-9f3a-ff521a312b7f

The ID of the user

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Get the avatar of the authenticated user

Retrieves the avatar of the authenticated user

query Parameters
width
string

The width of the returned image

height
string

The height of the returned image

Responses

Response samples

Content type
application/json
{
  • "status": "fail",
  • "message": "This would contain the description of the error"
}

Get an avatar

Retrieves a user avatar based on their user ID

path Parameters
userId
required
string = 36 characters
Example: da692ac2-64b0-4a9b-9f3a-ff521a312b7f

The ID of the user

query Parameters
width
string

The width of the returned image

height
string

The height of the returned image

Responses

Response samples

Content type
application/json
{
  • "status": "fail",
  • "message": "This would contain the description of the error"
}

Set the authenticated user's avatar

Request Body schema: application/json
file
required
string <binary>

The image file

Responses

Request samples

Content type
application/json
{
  • "file": "string"
}

Response samples

Content type
application/json
{
  • "status": "fail",
  • "message": "This would contain the description of the error"
}

Delete the authenticated user's avatar

Responses

Response samples

Content type
application/json
{
  • "status": "fail",
  • "message": "This would contain the description of the error"
}

Sets

Get the sets of the authenticated user

Gets all of the sets of the user that is currently authenticated

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Get the sets of a user

path Parameters
userId
required
string = 36 characters
Example: da692ac2-64b0-4a9b-9f3a-ff521a312b7f

The ID of the user

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Get a set

path Parameters
setId
required
string = 36 characters
Example: 19b86873-8e88-427b-839b-df02f1b8d5d8

The ID of the set

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Update a set

path Parameters
setId
required
string = 36 characters
Example: 19b86873-8e88-427b-839b-df02f1b8d5d8

The ID of the set

Request Body schema: application/json
title
string <= 191 characters

The title or name of the set

description
string <= 65535 characters

A description explaining what the set contains

private
boolean

Whether the set is private

folders
Array of strings

The IDs of folders that this set is apart of

Array of objects (CardWithIdValidator)

New cards to replace the existing ones in the set with

Responses

Request samples

Content type
application/json
{
  • "title": "Example set",
  • "description": "This is an example of a folder description",
  • "private": false,
  • "folders": [
    ],
  • "cards": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Delete a set

path Parameters
setId
required
string = 36 characters
Example: 19b86873-8e88-427b-839b-df02f1b8d5d8

The ID of the set

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Create a set

Request Body schema: application/json
title
required
string <= 191 characters

The title of the set

description
string <= 65535 characters

The description of the set

private
required
boolean

Whether the set is private

folders
Array of strings

The IDs of folders that this set is apart of

required
Array of objects (CardValidator)

The cards contained within the set

Responses

Request samples

Content type
application/json
{
  • "title": "Example set",
  • "description": "This is an example of a set description",
  • "private": false,
  • "folders": [
    ],
  • "cards": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Get the folders of the authenticated user

Gets all of the folders of the user that is currently authenticated

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Get the folders of a user

path Parameters
userId
required
string = 36 characters
Example: da692ac2-64b0-4a9b-9f3a-ff521a312b7f

The ID of the user

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}

Get a folder

path Parameters
folderId
required
string = 36 characters
Example: 72851aca-59ab-4d97-803b-62dccac848e0

The ID of the folder

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Update a folder

path Parameters
folderId
required
string = 36 characters
Example: 72851aca-59ab-4d97-803b-62dccac848e0

The ID of the folder

Request Body schema: application/json
name
string <= 191 characters

The name of the folder

description
string <= 65535 characters

The description of the folder

color
string = 7 characters

The hex color of the folder

private
boolean

Whether the folder is private

parentFolderId
string = 36 characters

The ID of the folder to nest this folder within

subfolders
Array of strings

The IDs of folders to nest within this folder

sets
Array of strings

The IDs of sets to nest within this folder

Responses

Request samples

Content type
application/json
{
  • "name": "Example folder",
  • "description": "This is an example of a folder description",
  • "color": "#495378",
  • "private": true,
  • "parentFolderId": "197ac7a2-8b42-4cbe-a4b7-bde496a36e1e",
  • "subfolders": [
    ],
  • "sets": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Delete a folder

path Parameters
folderId
required
string = 36 characters
Example: 72851aca-59ab-4d97-803b-62dccac848e0

The ID of the folder

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Create a folder

Request Body schema: application/json
name
required
string <= 191 characters

The name of the folder

description
string <= 65535 characters

The description of the folder

color
required
string = 7 characters

The hex color of the folder

private
required
boolean

Whether the folder is private

parentFolderId
required
string = 36 characters

The ID of the folder to nest this folder within

subfolders
required
Array of strings

The IDs of folders to nest within this folder

sets
required
Array of strings

The IDs of sets to nest within this folder

Responses

Request samples

Content type
application/json
{
  • "name": "Example folder",
  • "description": "This is an example of a folder description",
  • "color": "#495378",
  • "private": true,
  • "parentFolderId": "197ac7a2-8b42-4cbe-a4b7-bde496a36e1e",
  • "subfolders": [
    ],
  • "sets": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Get a set media file

Retrieves a media file that is attached to a set

Responses

Response samples

Content type
application/json
{
  • "status": "fail",
  • "message": "This would contain the description of the error"
}

Get a set media file Deprecated

Retrieves a media file that is attached to a set. Deprecated URL - see route above for correct URL.

Responses

Response samples

Content type
application/json
{
  • "status": "fail",
  • "message": "This would contain the description of the error"
}

Cards

Get a card

path Parameters
cardId
required
string = 36 characters
Example: e2760057-13a4-4046-85a2-a14b9564b8a5

The ID of the card

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Update a card

path Parameters
cardId
required
string = 36 characters
Example: e2760057-13a4-4046-85a2-a14b9564b8a5

The ID of the card

Request Body schema: application/json
index
number [ 0 .. 2147483647 ]

The index of the card in the set

term
string

The front or "term" of the card

definition
string

The back or "definition" of the card

Responses

Request samples

Content type
application/json
{
  • "index": 0,
  • "term": "The definition of the card",
  • "definition": "The definition of the card"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Delete a card

path Parameters
cardId
required
string = 36 characters
Example: e2760057-13a4-4046-85a2-a14b9564b8a5

The ID of the card

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Create a card

Request Body schema: application/json
setId
required
string = 36 characters

The ID of the set that the card will belong to

index
required
number [ 0 .. 2147483647 ]

The index of the card in the set

term
required
string

The front or "term" of the card

definition
required
string

The back or "definition" of the card

Responses

Request samples

Content type
application/json
{
  • "setId": "27758237-5f57-4f6c-b483-6161056dad76",
  • "index": 0,
  • "term": "The definition of the card",
  • "definition": "The definition of the card"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Converting

Export a set to a .txt that can be imported in Quizlet

Converts a Scholarsome set to a .txt that can be imported in Quizlet. Media (images, videos, etc) will not be included in the exported file.

Learn more by clicking here.

path Parameters
setId
required
string = 36 characters
Example: 19b86873-8e88-427b-839b-df02f1b8d5d8

The ID of the set

sideDiscriminator
required
string <= 100 characters
Example: [

The character(s) to separate each side of a card

cardDiscriminator
required
string <= 100 characters
Example: ]

The character(s) to separate cards

Responses

Response samples

Content type
application/json
{
  • "status": "fail",
  • "message": "This would contain the description of the error"
}

Export a set to an Anki-compatible .apkg file

Converts a Scholarsome set to an Anki-compatible .apkg file. Includes media (images, videos, etc) in the .apkg file.

Learn more by clicking here.

path Parameters
setId
required
string = 36 characters
Example: 19b86873-8e88-427b-839b-df02f1b8d5d8

The ID of the set

Responses

Response samples

Content type
application/json
{
  • "status": "fail",
  • "message": "This would contain the description of the error"
}

Export a set to a .csv file

Converts a Scholarsome set to a .csv file. Media (images, videos, etc) will not be included in the exported file.

Learn more by clicking here.

path Parameters
setId
required
string = 36 characters
Example: 19b86873-8e88-427b-839b-df02f1b8d5d8

The ID of the set

Responses

Response samples

Content type
application/json
{
  • "status": "fail",
  • "message": "This would contain the description of the error"
}

Export the media of a set in a .zip file

Gets the media content of a set and packages it into a .zip file

Learn more by clicking here.

path Parameters
setId
required
string = 36 characters
Example: 19b86873-8e88-427b-839b-df02f1b8d5d8

The ID of the set

Responses

Response samples

Content type
application/json
{
  • "status": "fail",
  • "message": "This would contain the description of the error"
}

Import a set from Quizlet

Converts a set exported from Quizlet into a Scholarsome set.

Learn more by clicking here.

Request Body schema: application/json
title
required
string <= 191 characters

The title of the set

description
string <= 65535 characters

The description of the set

private
required
boolean

Whether the set is private

sideDiscriminator
required
string <= 100 characters

The character(s) that separate each side of a card

cardDiscriminator
required
string <= 100 characters

The character(s) that separate the cards

set
required
string

The paragraph of text that contains the cards from Quizlet

Responses

Request samples

Content type
application/json
{
  • "title": "Example set",
  • "description": "This is an example of a set description",
  • "private": false,
  • "sideDiscriminator": "[",
  • "cardDiscriminator": "]",
  • "set": "card1[card2]card3[card4]"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Import a set from a .apkg file

Converts a .apkg file to a Scholarsome set. Compatible only with simple front-back Anki sets.

Learn more by clicking here.

Request Body schema: multipart/form-data
title
required
string <= 191 characters

The title of the set

description
string <= 65535 characters

The description of the set

private
required
string

Whether the set is private

file
required
string <binary>

The file to import cards from

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Import a set from a .csv file

Converts a .csv file to a Scholarsome set.

Learn more by clicking here.

Request Body schema: multipart/form-data
title
required
string <= 191 characters

The title of the set

description
string <= 65535 characters

The description of the set

private
required
string

Whether the set is private

file
required
string <binary>

The file to import cards from

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}