| 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
}
}
}