page | number Page number for pagination |
limit | number Number of item per page for pagination |
order-by | string Example: order-by=points:null,username:null Available keys: points, username |
username | any Filter results by username (matching) |
{- "metadata": {
- "count": 0,
- "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0
}, - "order-by": {
- "keys": {
- "points": "asc",
- "username": "asc"
}
}, - "filter": {
- "keys": {
- "username": "string"
}, - "arrays": { }
}
}, - "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "description": "string",
- "points": 0,
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}
userId required | any <uuid> The uuid of the user |
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "description": "string",
- "points": 0,
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
}
userId required | any <uuid> The uuid of the user |
username | string The username of the user. Must be unique. Must be at least 3 characters long. |
description | string The description of the user. |
{- "username": "string",
- "description": "string"
}
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "description": "string",
- "points": 0,
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
}
userId required | any <uuid> The uuid of the user |
{- "metadata": {
- "count": 0
}, - "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "email": "user@example.com",
- "isVerified": true
}
]
}
userId required | any <uuid> The uuid of the user |
email required | string <email> The email of the user. Must be unique. Must be a valid email address. |
{- "email": "user@example.com"
}
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "email": "user@example.com",
- "isVerified": true
}
}
userId required | any <uuid> The uuid of the user |
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "preferredEditingLanguage": "python",
- "preferredLanguage": "fr"
}
}
userId required | any <uuid> The uuid of the user |
preferredEditingLanguage | string Default: "javascript" The programming language that should be used by default for this user. |
preferredLanguage | string Default: "en" Enum: "en" "fr" The human language that should be used by default for this user. |
{- "preferredEditingLanguage": "python",
- "preferredLanguage": "fr"
}
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "preferredEditingLanguage": "python",
- "preferredLanguage": "fr"
}
}
userId required | any <uuid> The uuid of the user |
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "preferredEditingLanguage": "python",
- "preferredLanguage": "fr"
}
}
page | number Page number for pagination |
limit | number Number of item per page for pagination |
order-by | string Example: order-by=cost:null Available keys: cost |
type | string Enum: "hint" "validator" Filter results by type |
{- "metadata": {
- "count": 0,
- "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0
}, - "order-by": {
- "keys": {
- "cost": "asc"
}
}, - "filter": {
- "keys": {
- "type": "hint"
}, - "arrays": { }
}
}, - "data": [
- {
- "id": "string",
- "cost": 0,
- "type": "hint",
- "data": {
- "text": "string"
}
}
]
}
Buy an item, decrement the user's points by the item's cost & returns the item. It wont decrement points if already bought
id required | string <uuid> The id of the item |
{- "metadata": { },
- "data": {
- "id": "string",
- "cost": 0,
- "type": "string",
- "data": {
- "text": "string"
}
}
}
page | number Page number for pagination |
limit | number Number of item per page for pagination |
{- "metadata": {
- "count": 0,
- "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0
}
}, - "data": [
- {
- "id": 0,
- "object_id": "string"
}
]
}
page | number Page number for pagination |
limit | number Number of item per page for pagination |
order-by | string Example: order-by=name:null,reward:null Available keys: name, reward |
name | any Filter results by name (matching) |
authorId | any Filter results by authorId |
type | any Filter results by type (matching) |
tags | any Filter results by tags. Must be enclosed in square brackets, and be separated by commas |
{- "metadata": {
- "count": 0,
- "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0
}, - "order-by": {
- "keys": {
- "name": "asc",
- "reward": "asc"
}
}, - "filter": {
- "keys": {
- "name": "string",
- "authorId": "string",
- "type": "string"
}, - "arrays": {
- "tags": "string"
}
}
}, - "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "type": "string",
- "reward": 0,
- "tags": [
- "string"
], - "data": { },
- "modules": [
- { }
], - "contents": [
- { }
]
}
]
}
moduleId required | string <uuid> The uuid of the module |
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "type": "string",
- "reward": 0,
- "tags": [
- "string"
], - "data": { },
- "modules": [
- { }
], - "contents": [
- { }
]
}
}
page | number Page number for pagination |
limit | number Number of item per page for pagination |
order-by | string Example: order-by=name:null,reward:null Available keys: name, reward |
name | any Filter results by name (matching) |
{- "metadata": {
- "count": 0,
- "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0
}, - "order-by": {
- "keys": {
- "name": "asc",
- "reward": "asc"
}
}, - "filter": {
- "keys": {
- "name": "string"
}, - "arrays": { }
}
}, - "data": [
- {
- "name": "string",
- "description": "string",
- "type": "exercise",
- "reward": 0,
- "rootComponent": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "container",
- "data": { }
}, - "data": {
- "allowedDuration": 0,
- "internalName": "string",
- "duplicatedFrom": "string"
}
}
]
}
contentId required | string <uuid> The UUID of the content |
{- "metadata": { },
- "data": {
- "name": "string",
- "description": "string",
- "type": "exercise",
- "reward": 0,
- "rootComponent": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "container",
- "data": { }
}, - "data": {
- "allowedDuration": 0,
- "internalName": "string",
- "duplicatedFrom": "string"
}
}
}
name required | string The name of the team. Must be unique. Must be at least 3 characters long. Must be less than 20 characters long. |
description | string The description of the team. Must be less than 255 characters long. |
{- "name": "string",
- "description": "string"
}
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "members": [
- {
- "id": "string",
- "username": "string",
- "role": "captain"
}
]
}
}
page | number Page number for pagination |
limit | number Number of item per page for pagination |
order-by | string Example: order-by=name:null Available keys: name |
name | any Filter results by name (matching) |
{- "metadata": {
- "count": 0,
- "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0
}, - "order-by": {
- "keys": {
- "name": "asc"
}
}, - "filter": {
- "keys": {
- "name": "string"
}, - "arrays": { }
}
}, - "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "members": [
- {
- "id": "string",
- "username": "string",
- "role": "captain"
}
]
}
]
}
teamId required | string <uuid> The uuid of the team |
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "members": [
- {
- "id": "string",
- "username": "string",
- "role": "captain"
}
]
}
}
teamId required | any <uuid> The uuid of the team |
name | string The name of the team. Must be unique. Must be at least 3 characters long. Must be less than 20 characters long. |
description | string The description of the team. Must be less than 255 characters long. |
{- "name": "string",
- "description": "string"
}
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "members": [
- {
- "id": "string",
- "username": "string",
- "role": "captain"
}
]
}
}
teamId required | string |
userId required | string <uuid> The userId of the user to add to the team |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "members": [
- {
- "id": "string",
- "username": "string",
- "role": "captain"
}
]
}
}
teamId required | string |
userId required | string <uuid> The id of the user to add to the team |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
{- "metadata": { },
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "members": [
- {
- "id": "string",
- "username": "string",
- "role": "captain"
}
]
}
}
Get best and last attempts if the user has completed the component
componentId required | string |
{- "metadata": { },
- "data": {
- "lastSuccess": {
- "at": "string",
- "data": {
- "language": "string",
- "version": "string",
- "code": "string"
}
}, - "lastAttempt": {
- "at": "string",
- "data": {
- "language": "string",
- "version": "string",
- "code": "string"
}
}
}
}
Submit a code, calls a runner to execute it and check the result with the validators of the component
componentId required | string The uuid of the component |
language required | string The used programming language |
code required | string Code to execute |
{- "componentId": "string",
- "language": "string",
- "code": "string"
}
{- "metadata": { },
- "data": {
- "success": true,
- "validators": {
- "uuid": "string",
- "success": true
}
}
}
Submit a code, calls a runner to execute it and check the result with the validator
validatorId required | string |
language required | string The used programming language |
code required | string Code to execute |
{- "language": "string",
- "code": "string"
}
{- "metadata": { },
- "data": {
- "success": true,
- "codeResult": {
- "stdout": "string",
- "stderr": "string",
- "exitCode": true
}
}
}