Eduframe - API (v1)

Download OpenAPI specification:Download

The Eduframe API is organized around REST and is formatted in JSON. We try to keep the amount of changes to the API to a minimum but it is possible that it is changed.

Authentication

For authenticating through Eduframe API v1 we use OAuth2 token. The user needs an API key to send together with the request as Bearer <api key> in the authorization header. If there are requests that require authentication a 403 Forbidden error or a 404 Not Found error will be returned.

Sorting

For sorting the data, the following format of base_url is used (e.g.): api/v1/planned_courses?sort=start_date for ascending sort (default sorting) and api/v1/planned_courses?sort=start_date:desc for descending sort.

Filtering

For adding a filter, the following format of base_url is used (e.g.): api/v1/planned_courses?min_cost=200. The allowed filters are shown at the relevant actions.

Blank fields

Blank fields are included as null.

Boolean values

All boolean parameters can be passed as true, false, 1 or 0. And are returned as true or false.

Date Format

Some requests generate timestamps (a timestamp is generated at the moment the API call is made) or allow specifying them. All timestamps are returned in ISO 8601 format: yyyy-MM-ddTHH:mm:ss.SSSZ. If providing a date, just make sure you follow the same ISO standard.

HTTP verbs

For each request the appropriate HTTP verbs are used. GET is used for retrieving resources, POST is used for creating resources, PUT is used for updated resources with partial JSON data. A PUT request can accept one or more parameters to update the resource; the parameters that are not updated keep their original values, DELETE is used for deleting resources.

Pagination

Requests that return multiple items will be paginated to 25 items by default. You can select a page with the page query parameter. When omitted, the first page is returned by default. You can set a custom per-page amount with the per_page query parameter (with a maximum of 100). The Link header includes pagination information. For example: Link: <https://api.eduframe.nl/courses?page=3&per_page=100>; rel="next", <https://api.eduframe.nl/courses?page=50&per_page=100>; rel="last"

Errors

In the Eduframe API the general codes are: the 2xx range indicates a successful request; the 4xx range indicates an error representing the failure of giving the provided information(e.g. a required parameter was omitted, a certain include/filter is not allowed, unauthorized access, etc.); the 5xx range indicates an error with the Eduframe's servers.

WebHooks

Webhooks allow you to build or set up integrations, such as Azure Logic Apps, which subscribe to certain events on Eduframe. When one of those events is triggered, we will send a HTTP POST payload to the webhook's configured URL. More info can be found at the webhooks documentation. Eduframe has a 10-second timeout for each webhook sent, which means you want to make sure you have returned a response before this time limit elapses. If traffic spikes and you don't respond quickly, you begin to accumulate a backlog of webhooks and may start dropping some.

accounts

Get all accounts

Authorizations:
Bearer
query Parameters
search
string

Filter results on search

key_contact_user_id
integer

Filter results on key_contact_user_id

user_id
integer

Filter results on user_id

account_type
string (AccountType)
Enum: "business" "personal"

Filter results on account_type

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an account

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

Arbitrary string representing the name of the account. Is autogenerated for personal accounts.

email
string or null <email>

A string representing the billing e-mail of the account

phone
string or null

A string representing the phone number of the account

label_ids
Array of integers

IDs of the labels

custom
object

The custom properties of the user.

object or null (AddressPayload)
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "user@example.com",
  • "phone": "string",
  • "label_ids": [
    ],
  • "custom": { },
  • "address_attributes": {
    },
  • "signup_answers_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "email": "user@example.com",
  • "phone": "string",
  • "account_type": "business",
  • "label_ids": [
    ],
  • "personal_user_id": 0,
  • "slug": "string",
  • "users_count": 0,
  • "visible": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": { },
  • "address": {
    }
}

Get a single account

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "email": "user@example.com",
  • "phone": "string",
  • "account_type": "business",
  • "label_ids": [
    ],
  • "personal_user_id": 0,
  • "slug": "string",
  • "users_count": 0,
  • "visible": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": { },
  • "address": {
    }
}

affiliations

Get all affiliations

Authorizations:
Bearer
query Parameters
user_id
integer

Filter results on user_id

account_id
integer

Filter results on account_id

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an affiliation affiliations

Authorizations:
Bearer
Request Body schema: application/json
required
user_id
required
integer

Unique identifier of the associated user

account_id
required
integer

Unique identifier of the associated account

key_contact
boolean
Default: false

Boolean indicating if this user is a key contact of the account.

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "account_id": 0,
  • "key_contact": false
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "account_id": 0,
  • "user_id": 0,
  • "key_contact": false,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete an affiliation

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update an affiliation.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
key_contact
boolean

Boolean indicating if this user is a key contact of the account.

user_id
integer

Unique identifier of the associated user

account_id
integer

Unique identifier of the associated account

Responses

Request samples

Content type
application/json
{
  • "key_contact": true,
  • "user_id": 0,
  • "account_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "account_id": 0,
  • "user_id": 0,
  • "key_contact": false,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

attendances

Get all attendance records

Authorizations:
Bearer
query Parameters
meeting_id
integer

Filter attendances on meeting_id

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Set an attendance.

Authorizations:
Bearer
Request Body schema: application/json
required
meeting_id
required
integer

Unique identifier of the meeting.

enrollment_id
required
integer

Unique identifier of the enrollment.

state
string (AttendanceState)
Enum: "absent" "absent_with_leave" "attended" "blanco" "late"

Indicator of the attendance state.

comment
string or null

Comment about this attendance.

Responses

Request samples

Content type
application/json
{
  • "meeting_id": 0,
  • "enrollment_id": 0,
  • "state": "absent",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "meeting_id": 0,
  • "enrollment_id": 0,
  • "state": "absent",
  • "comment": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

authentications

Create an authentication.

Authorizations:
Bearer
Request Body schema: application/json
required
uid
required
string

Login identifier.

user_id
required
integer

Identifier of the associated User.

authentication_provider_type
required
string (AuthenticationProviderType)
Enum: "azure_active_directory" "eduframe" "openid_connect" "surf_conext"

Type of the associated AuthenticationProvider.

Responses

Request samples

Content type
application/json
{
  • "uid": "string",
  • "user_id": 0,
  • "authentication_provider_type": "azure_active_directory"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "user_id": 0,
  • "authentication_provider_id": 0,
  • "uid": "string",
  • "otp_enabled": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get the authentications of an user

Authorizations:
Bearer
path Parameters
user_id
required
integer
query Parameters
provider
string (AuthenticationProviderType)
Enum: "azure_active_directory" "eduframe" "openid_connect" "surf_conext"

Filter results on provider

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Remove an authentication from a user. NOTE: It is impossible to remove the last authentication for a user.

Authorizations:
Bearer
path Parameters
user_id
required
integer
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

catalog-products

Get all catalog products

Authorizations:
Bearer
query Parameters
published
string
Value: "published"

Show only published products

category_id
integer

Filter results on category_id

productable_type
string
Enum: "Course" "Program::Program"

Filter results on productable_type

search
string

Filter results on search

sort
Array of strings
Items Enum: "id:asc" "id:desc" "position:asc" "position:desc"

Sort the results. Can change order by using <sort_by>:<direction> where <direction> is either asc or desc

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a catalog product record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "slug": "string",
  • "label_ids": [
    ],
  • "cost_scheme": "free",
  • "cost": "string",
  • "currency": "EUR",
  • "productable_type": "Course",
  • "productable_id": 0,
  • "avatar": "string",
  • "position": 0,
  • "conditions_or_default": "string",
  • "category_id": 0,
  • "is_published": true,
  • "show_on_website": true,
  • "signup_url": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "course_tab_contents": [
    ],
  • "custom": { }
}

Update a catalog product

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
category_id
integer

Identifier of the category of the course.

is_published
boolean

Boolean showing if the product is published or not.

custom
object

The custom properties of the product.

Array of objects

Responses

Request samples

Content type
application/json
{
  • "category_id": 0,
  • "is_published": true,
  • "custom": { },
  • "course_tab_contents_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "slug": "string",
  • "label_ids": [
    ],
  • "cost_scheme": "free",
  • "cost": "string",
  • "currency": "EUR",
  • "productable_type": "Course",
  • "productable_id": 0,
  • "avatar": "string",
  • "position": 0,
  • "conditions_or_default": "string",
  • "category_id": 0,
  • "is_published": true,
  • "show_on_website": true,
  • "signup_url": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "course_tab_contents": [
    ],
  • "custom": { }
}

catalog-variants

Get all catalog variants

Authorizations:
Bearer
query Parameters
published_public
string
Value: "published_public"

Only show published variants and planned_courses that are either planned or in progress

product_id
integer

Filter results on product_id

variantable_id
integer

Filter results on variantable_id

variantable_type
string
Enum: "planned_course" "program_edition"

Filter results on variantable_type

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a catalog variant record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "product_id": 0,
  • "name": "string",
  • "sku": "string",
  • "cost_scheme": "free",
  • "cost": "string",
  • "currency": "EUR",
  • "variantable_type": "PlannedCourse",
  • "variantable_id": 0,
  • "availability": "available",
  • "available_places": 0,
  • "is_published": true,
  • "show_on_website": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": { }
}

Update a catalog variant

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
is_published
required
boolean

Boolean showing if the variant is published or not.

Responses

Request samples

Content type
application/json
{
  • "is_published": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "product_id": 0,
  • "name": "string",
  • "sku": "string",
  • "cost_scheme": "free",
  • "cost": "string",
  • "currency": "EUR",
  • "variantable_type": "PlannedCourse",
  • "variantable_id": 0,
  • "availability": "available",
  • "available_places": 0,
  • "is_published": true,
  • "show_on_website": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": { }
}

categories

Get all category records

Authorizations:
Bearer
query Parameters
published
string
Value: "published"

Show only published categories

sort
Array of strings
Items Enum: "position:asc" "position:desc"

Sort the results. Can change order by using <sort_by>:<direction> where <direction> is either asc or desc

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a category.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

Title of the category.

description
string or null

The description of the category.

is_published
boolean

Boolean if the category is published on the website.

meta_title
string or null

The meta title of the category, used for SEO (Search Engine Optimisation) purposes.

meta_description
string or null

The meta description of the category, used for SEO (Search Engine Optimisation) purposes.

parent_id
integer or null

Unique identifier of the parent category

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "is_published": true,
  • "meta_title": "string",
  • "meta_description": "string",
  • "parent_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "position": 0,
  • "avatar": "string",
  • "avatar_url": "string",
  • "products_count": 0,
  • "courses_count": 0,
  • "children_count": 0,
  • "slug": "string",
  • "description": "string",
  • "is_published": true,
  • "meta_title": "string",
  • "meta_description": "string",
  • "parent_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get a category record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "position": 0,
  • "avatar": "string",
  • "avatar_url": "string",
  • "products_count": 0,
  • "courses_count": 0,
  • "children_count": 0,
  • "slug": "string",
  • "description": "string",
  • "is_published": true,
  • "meta_title": "string",
  • "meta_description": "string",
  • "parent_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Update a category.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
name
string

Title of the category.

slug
string

Friendly identifier of a category.

description
string or null

The description of the category.

is_published
boolean

Boolean if the category is published on the website.

meta_title
string or null

The meta title of the category, used for SEO (Search Engine Optimisation) purposes.

meta_description
string or null

The meta description of the category, used for SEO (Search Engine Optimisation) purposes.

parent_id
integer or null

Unique identifier of the parent category

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "slug": "string",
  • "description": "string",
  • "is_published": true,
  • "meta_title": "string",
  • "meta_description": "string",
  • "parent_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "position": 0,
  • "avatar": "string",
  • "avatar_url": "string",
  • "products_count": 0,
  • "courses_count": 0,
  • "children_count": 0,
  • "slug": "string",
  • "description": "string",
  • "is_published": true,
  • "meta_title": "string",
  • "meta_description": "string",
  • "parent_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

comments

Create a comment.

Authorizations:
Bearer
Request Body schema: application/json
required
content
required
string

A string representing the content of a comment.

commentable_id
required
integer

Identifier of the subject the comment is linked to.

commentable_type
required
string (CommentType)
Enum: "Account" "Invoice" "Lead" "Order" "PlannedCourse" "Program::Editions::Edition" "Task" "User"

Responses

Request samples

Content type
application/json
{
  • "content": "string",
  • "commentable_id": 0,
  • "commentable_type": "Account"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "content": "string",
  • "creator_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete a comment.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a comment.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
content
string

A string representing the content of a comment.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "content": "string",
  • "creator_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

course_locations

Get all course location records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a course location.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

Name of the location where the course is held.

object or null (AddressPayload)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "address_attributes": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "address": {
    }
}

Get a course location record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "address": {
    }
}

Delete a course location.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a course location.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
name
string

Name of the location where the course is held.

object or null (AddressPatchPayload)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "address_attributes": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "address": {
    }
}

course_tabs

Get all course tab records

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

course_variants

Get all course variant records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a course variant

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

The name of the course variant.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get a course variant record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

courses

Get all course records

Authorizations:
Bearer
query Parameters
published
string
Value: "published"

Show only published courses

id
Array of integers
Deprecated

Filter results on id

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a course.

Authorizations:
Bearer
Request Body schema: application/json
required
category_id
required
integer

Identifier of the category of the course.

name
required
string

The name of the course.

code
required
string

The code of the course.

duration
string or null

The duration of the course.

level
string or null

A string indicating the level of the course.

meta_title
string or null

Meta title of the course for SEO purposes.

meta_description
string or null

Meta description of the course for SEO purposes.

result
string or null

The result of the course

cost
string or null

The price to be paid for this course. Required if cost_scheme is student (default value) or order.

cost_scheme
string
Enum: "student" "order" "tbd" "free"

How should the course be paid by default.

is_published
boolean

Boolean representing the publishable status of the course.

conditions
string

The conditions of the course.

custom
object

The custom properties of the course.

Array of objects

Responses

Request samples

Content type
application/json
{
  • "category_id": 0,
  • "name": "string",
  • "code": "string",
  • "duration": "string",
  • "level": "string",
  • "meta_title": "string",
  • "meta_description": "string",
  • "result": "string",
  • "cost": "string",
  • "cost_scheme": "student",
  • "is_published": true,
  • "conditions": "string",
  • "custom": { },
  • "course_tab_contents_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "position": 0,
  • "starting_price": "string",
  • "signup_url": "string",
  • "slug": "string",
  • "slug_history": [
    ],
  • "avatar": "string",
  • "avatar_url": "string",
  • "avatar_thumb_url": "string",
  • "conditions_or_default": "string",
  • "website_url": "string",
  • "certificate_template_id": 0,
  • "category_id": 0,
  • "name": "string",
  • "code": "string",
  • "duration": "string",
  • "level": "string",
  • "meta_title": "string",
  • "meta_description": "string",
  • "result": "string",
  • "label_ids": [
    ],
  • "cost": "string",
  • "cost_scheme": "free",
  • "is_published": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": {
    }
}

Get a course record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "position": 0,
  • "starting_price": "string",
  • "signup_url": "string",
  • "slug": "string",
  • "slug_history": [
    ],
  • "avatar": "string",
  • "avatar_url": "string",
  • "avatar_thumb_url": "string",
  • "conditions_or_default": "string",
  • "website_url": "string",
  • "certificate_template_id": 0,
  • "category_id": 0,
  • "name": "string",
  • "code": "string",
  • "duration": "string",
  • "level": "string",
  • "meta_title": "string",
  • "meta_description": "string",
  • "result": "string",
  • "label_ids": [
    ],
  • "cost": "string",
  • "cost_scheme": "free",
  • "is_published": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": {
    }
}

Update a course.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
category_id
integer

Identifier of the category of the course.

name
string

The name of the course.

code
string

The code of the course.

duration
string or null

The duration of the course.

level
string or null

A string indicating the level of the course.

meta_title
string or null

Meta title of the course for SEO purposes.

meta_description
string or null

Meta description of the course for SEO purposes.

result
string or null

The result of the course

cost
string or null

The price to be paid for this course.

cost_scheme
string
Enum: "student" "order" "tbd" "free"

How should the course be paid by default.

is_published
boolean

Boolean representing the publishable status of the course.

conditions
string

The conditions of the course.

custom
object

The custom properties of the program.

Array of objects

Responses

Request samples

Content type
application/json
{
  • "category_id": 0,
  • "name": "string",
  • "code": "string",
  • "duration": "string",
  • "level": "string",
  • "meta_title": "string",
  • "meta_description": "string",
  • "result": "string",
  • "cost": "string",
  • "cost_scheme": "student",
  • "is_published": true,
  • "conditions": "string",
  • "custom": { },
  • "course_tab_contents_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "position": 0,
  • "starting_price": "string",
  • "signup_url": "string",
  • "slug": "string",
  • "slug_history": [
    ],
  • "avatar": "string",
  • "avatar_url": "string",
  • "avatar_thumb_url": "string",
  • "conditions_or_default": "string",
  • "website_url": "string",
  • "certificate_template_id": 0,
  • "category_id": 0,
  • "name": "string",
  • "code": "string",
  • "duration": "string",
  • "level": "string",
  • "meta_title": "string",
  • "meta_description": "string",
  • "result": "string",
  • "label_ids": [
    ],
  • "cost": "string",
  • "cost_scheme": "free",
  • "is_published": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": {
    }
}

credit_categories

Get all credit category records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

credits

Get all credit records

Authorizations:
Bearer
query Parameters
student_id
integer

Filter results on student_id

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

educators

Get an educator record

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "slug": "string",
  • "standard_planning_text": "string",
  • "default_invoice_vat_multiplier": "string",
  • "phone": "string",
  • "website_url": "string",
  • "signup_default_account_type": "personal",
  • "signup_contact_info": "string",
  • "currency": "EUR",
  • "country": "AD",
  • "email": "string",
  • "time_zone": "string",
  • "name": "string",
  • "locale": "de",
  • "terms_url": "string"
}

enrollments

Get all enrollment records

Authorizations:
Bearer
query Parameters
student_id
integer

Filter results on student_id

planned_course_id
integer

Filter results on planned_course_id

status
Array of strings
Items Enum: "confirmed" "active" "canceled" "completed"

Filter results on status

with_canceled
boolean
Default: true

Filter results based on whether they include a canceled status or not

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get an enrollment record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "student_id": 0,
  • "planned_course_id": 0,
  • "order_id": 0,
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "status": "active",
  • "graduation_state": "awaiting_judgement",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "grade": {
    }
}

Update an enrollment

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
end_date
string or null

If it is an enrollment of a fixed course, it equals the end date. For a flexible course, it returns the enrollment specific end date.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "student_id": 0,
  • "planned_course_id": 0,
  • "order_id": 0,
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "status": "active",
  • "graduation_state": "awaiting_judgement",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "grade": {
    }
}

Cancel an enrollment

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "student_id": 0,
  • "planned_course_id": 0,
  • "order_id": 0,
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "status": "active",
  • "graduation_state": "awaiting_judgement",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "grade": {
    }
}

grades

Create a grade

Authorizations:
Bearer
Request Body schema: application/json
required
grade
required
string or null

The grade awarded (at least one of grade and score is required)

score
required
number or null

The score awarded (at least one of grade and score is required)

gradeable_id
required
integer

Unique model identifier of the gradeable (enrollment / ...)

gradeable_type
required
string

Model type of the gradeable (enrollment / ...)

comment
string or null

Additional comment about the grade

enrollment_id
integer
Deprecated

Unique identifier of the enrollment

Responses

Request samples

Content type
application/json
{
  • "grade": "string",
  • "score": 0,
  • "gradeable_id": 0,
  • "gradeable_type": "string",
  • "comment": "string",
  • "enrollment_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "grader_id": 0,
  • "result": "string",
  • "grade": "string",
  • "score": "string",
  • "gradeable_id": 0,
  • "gradeable_type": "string",
  • "comment": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get a grade record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "grader_id": 0,
  • "result": "string",
  • "grade": "string",
  • "score": "string",
  • "gradeable_id": 0,
  • "gradeable_type": "string",
  • "comment": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete a grade.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a grade

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
grade
string or null

The grade awarded (at least one of grade and score is required)

score
number or null

The score awarded (at least one of grade and score is required)

gradeable_id
integer

Unique model identifier of the gradeable (enrollment / ...)

gradeable_type
string

Model type of the gradeable (enrollment / ...)

comment
string or null

Additional comment about the grade

enrollment_id
integer

Unique identifier of the enrollment

Responses

Request samples

Content type
application/json
{
  • "grade": "string",
  • "score": 0,
  • "gradeable_id": 0,
  • "gradeable_type": "string",
  • "comment": "string",
  • "enrollment_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "grader_id": 0,
  • "result": "string",
  • "grade": "string",
  • "score": "string",
  • "gradeable_id": 0,
  • "gradeable_type": "string",
  • "comment": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

invoice_vats

Get all invoice vat records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an invoice vat.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

Name of the invoice vat.

percentage
required
string

Number representing the VAT percentage.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "percentage": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "percentage": "string",
  • "has_vat": true
}

invoices

Get all invoice records

Authorizations:
Bearer
query Parameters
account_id
integer

Filter results on account_id

status
Array of strings (InvoiceStatus)
Items Enum: "concept" "deleted" "expired" "open" "paid"

Filter results on status

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an invoice.

Authorizations:
Bearer
Request Body schema: application/json
required
account_id
required
integer

Identifier of the account.

feature
string or null

Some description of the invoice which is displayed on the invoice.

footnote
string or null

The note displayed at the bottom of the invoice.

Array of objects

Responses

Request samples

Content type
application/json
{
  • "account_id": 0,
  • "feature": "string",
  • "footnote": "string",
  • "invoice_items_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "reference_id": "string",
  • "number_int": 0,
  • "order_number": 0,
  • "status": "concept",
  • "expiration_date": "string",
  • "opened_at": "string",
  • "description": "string",
  • "account_name": "string",
  • "currency": "EUR",
  • "total_incl": "string",
  • "total_excl": "string",
  • "total_open": "string",
  • "pdf_url": "string",
  • "xml_url": "string",
  • "number": "string",
  • "account_id": 0,
  • "feature": "string",
  • "footnote": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "invoice_items": [
    ]
}

Get an invoice record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "reference_id": "string",
  • "number_int": 0,
  • "order_number": 0,
  • "status": "concept",
  • "expiration_date": "string",
  • "opened_at": "string",
  • "description": "string",
  • "account_name": "string",
  • "currency": "EUR",
  • "total_incl": "string",
  • "total_excl": "string",
  • "total_open": "string",
  • "pdf_url": "string",
  • "xml_url": "string",
  • "number": "string",
  • "account_id": 0,
  • "feature": "string",
  • "footnote": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "invoice_items": [
    ]
}

Changes the state from concept to open. This will assign the actual invoice number so it's ready for sending. If the current state is not concept, this endpoint does nothing.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "reference_id": "string",
  • "number_int": 0,
  • "order_number": 0,
  • "status": "concept",
  • "expiration_date": "string",
  • "opened_at": "string",
  • "description": "string",
  • "account_name": "string",
  • "currency": "EUR",
  • "total_incl": "string",
  • "total_excl": "string",
  • "total_open": "string",
  • "pdf_url": "string",
  • "xml_url": "string",
  • "number": "string",
  • "account_id": 0,
  • "feature": "string",
  • "footnote": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "invoice_items": [
    ]
}

Get the base64 encoded version of the invoice PDF

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "property1": { },
  • "property2": { }
}

labels

Get all labels

Authorizations:
Bearer
query Parameters
model_type
string
Enum: "Lead" "Order" "Catalog::Product" "User" "Account" "Teacher" "Program::Enrollment"

Filter results on model_type

search
string

Filter results on search

id
Array of integers

Filter results on id

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a label

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

The name of the label

color
string

Hex code of the color of the label

model_type
required
string
Enum: "Lead" "Order" "Catalog::Product" "User" "Account" "Teacher"

The model type for which this label is made available

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "color": "string",
  • "model_type": "Lead"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "color": "#aa33cc",
  • "model_type": "Account",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get a label

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "color": "#aa33cc",
  • "model_type": "Account",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a label

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a label

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
name
string

The name of the label

color
string

Hex code of the color of the label

model_type
string
Enum: "Lead" "Order" "Catalog::Product" "User" "Account" "Teacher"

The model type for which this label is made available

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "color": "string",
  • "model_type": "Lead"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "color": "#aa33cc",
  • "model_type": "Account",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Add label to an order

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
label_id
required
integer

Unique identifier of the label.

Responses

Request samples

Content type
application/json
{
  • "label_id": 0
}

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

leads

Get all lead records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a lead.

Authorizations:
Bearer
Request Body schema: application/json
required
title
string

Title of the lead

account_id
integer or null

ID of the account linked to this lead

user_id
integer or null

ID of the user linked to this lead

value
string or null

Decimal representing the price of a lead

company_name
string or null

Name of the company where this lead comes from

first_name
string or null

The first name of the lead

middle_name
string or null

The middle name of the lead

last_name
string or null

The last name of the lead

administrator_id
integer or null

ID of administrator that owns the lead

email
string or null

The email of the lead

phone
string or null

The phone number of the lead Note : Use an international phone format unless the phone number is from the educator configured country.

status
string
Enum: "prospect" "waiting_list" "won" "lost" "archive"

The status of the lead

quality
number or null

Star scoring for the lead

wants_newsletter
boolean

Indicates if lead wants to receive the newsletter or not

comment
string or null

Comment for a lead

label_ids
Array of integers

IDs of the labels

course_ids
Array of integers
Deprecated

IDs of the courses the lead is interested in

object or null (AddressPayload)
Array of objects
Deprecated

Array of courses and planned courses the lead is interested in. Note that the lead_products field takes priority and this field will then be ignored.

Array of objects

Array of products and variants the lead is interested in.

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "account_id": 0,
  • "user_id": 0,
  • "value": "string",
  • "company_name": "string",
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "administrator_id": 0,
  • "email": "string",
  • "phone": "string",
  • "status": "prospect",
  • "quality": 0,
  • "wants_newsletter": true,
  • "comment": "string",
  • "label_ids": [
    ],
  • "course_ids": [
    ],
  • "address_attributes": {
    },
  • "courses_leads_attributes": [
    ],
  • "lead_products": [
    ]
}

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Get one lead record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "creation_method": "string",
  • "referral_text": "string",
  • "title": "string",
  • "account_id": 0,
  • "user_id": 0,
  • "label_ids": [
    ],
  • "value": "string",
  • "company_name": "string",
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "administrator_id": 0,
  • "email": "string",
  • "phone": "string",
  • "status": "prospect",
  • "quality": "string",
  • "wants_newsletter": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "address": {
    },
  • "courses_leads": [
    ],
  • "lead_products": [
    ]
}

Delete a lead.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

material_groups

Get all material group records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a material group.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

Name of the material group where the course is held.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get a material group record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete a material group.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a material group.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
name
string

Name of the material group where the course is held.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

materials

Get all material records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a material.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

Name of the material.

use_type
string
Enum: "reservable" "consumable"

Type of material.

material_group_id
required
integer

Unique identifier of the material group.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "use_type": "reservable",
  • "material_group_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "use_type": "reservable",
  • "material_group_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete a material.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a material.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
name
string

Name of the material.

material_group_id
integer

Unique identifier of the material group.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "material_group_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "use_type": "reservable",
  • "material_group_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

meeting_locations

Get all meeting location records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a meeting location.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

Name of the meeting location.

course_location_id
required
integer

Unique identifier of the course location.

capacity
integer or null

Capacity of the meeting location

object or null (AddressPayload)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "course_location_id": 0,
  • "capacity": 0,
  • "address_attributes": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "course_location_id": 0,
  • "name": "string",
  • "capacity": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "address": {
    }
}

Get an meeting location

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "course_location_id": 0,
  • "name": "string",
  • "capacity": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "address": {
    }
}

Delete a course location.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a meeting location.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
name
string

Name of the meeting location.

course_location_id
integer

Unique identifier of the course location.

capacity
number or null

Capacity of the meeting location

object or null (AddressPatchPayload)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "course_location_id": 0,
  • "capacity": 0,
  • "address_attributes": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "course_location_id": 0,
  • "name": "string",
  • "capacity": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "address": {
    }
}

meetings

Get all meeting records

Authorizations:
Bearer
query Parameters
planned_course_id
integer

Filter results on planned_course_id

for_student_id
integer
Deprecated

Filter results on for_student_id

date_from
string
Deprecated

Filter results on date_from

start
string <date-time>

Only show meetings ending after this date and time

end
string <date-time>

Only show meetings starting before this date and time

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

cursor
string

The cursor used to fetch the next result set. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a meeting.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string or null

The name of the meeting.

planned_course_id
required
integer

Unique identifier of the planned course.

start_date_time
required
string

Date and time when the meeting is starting.

end_date_time
required
string

The date and time when the meeting is ending.

meeting_location_id
integer or null

Unique identifier of the meeting location.

description
string or null

The description of the meeting.

description_dashboard
string or null

The description that will be shown in the dashboard.

teacher_ids
Array of integers

IDs of assigned teachers.

planning_meeting_location_ids
Array of integers

IDs of booked meeting locations.

material_ids
Array of integers

IDs of booked materials.

shift_planning_events
boolean

Boolean determining if the planning events are shifted according to the change in start date time.

Array of objects
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "planned_course_id": 0,
  • "start_date_time": "string",
  • "end_date_time": "string",
  • "meeting_location_id": 0,
  • "description": "string",
  • "description_dashboard": "string",
  • "teacher_ids": [
    ],
  • "planning_meeting_location_ids": [
    ],
  • "material_ids": [
    ],
  • "shift_planning_events": true,
  • "planning_attendees_attributes": [
    ],
  • "planning_materials_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "planned_course_id": 0,
  • "start_date_time": "2019-08-24T14:15:22Z",
  • "end_date_time": "2019-08-24T14:15:22Z",
  • "meeting_location_id": 0,
  • "planning_meeting_location_ids": [
    ],
  • "description": "string",
  • "description_dashboard": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get an meeting record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "planned_course_id": 0,
  • "start_date_time": "2019-08-24T14:15:22Z",
  • "end_date_time": "2019-08-24T14:15:22Z",
  • "meeting_location_id": 0,
  • "planning_meeting_location_ids": [
    ],
  • "description": "string",
  • "description_dashboard": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "planning_attendees": [
    ],
  • "planning_materials": [
    ]
}

Delete a meeting.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a meeting.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
name
string or null

The name of the meeting.

planned_course_id
integer

Unique identifier of the planned course.

start_date_time
string

Date and time when the meeting is starting.

end_date_time
string

The date and time when the meeting is ending.

meeting_location_id
integer or null

Unique identifier of the meeting location.

description
string or null

The description of the meeting.

description_dashboard
string or null

The description that will be shown in the dashboard.

teacher_ids
Array of integers

IDs of assigned teachers.

planning_meeting_location_ids
Array of integers

IDs of booked meeting locations.

material_ids
Array of integers

IDs of booked materials.

shift_planning_events
boolean

Boolean determining if the planning events are shifted according to the change in start date time.

Array of objects
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "planned_course_id": 0,
  • "start_date_time": "string",
  • "end_date_time": "string",
  • "meeting_location_id": 0,
  • "description": "string",
  • "description_dashboard": "string",
  • "teacher_ids": [
    ],
  • "planning_meeting_location_ids": [
    ],
  • "material_ids": [
    ],
  • "shift_planning_events": true,
  • "planning_attendees_attributes": [
    ],
  • "planning_materials_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "planned_course_id": 0,
  • "start_date_time": "2019-08-24T14:15:22Z",
  • "end_date_time": "2019-08-24T14:15:22Z",
  • "meeting_location_id": 0,
  • "planning_meeting_location_ids": [
    ],
  • "description": "string",
  • "description_dashboard": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get all meeting records of a planned course

Authorizations:
Bearer
path Parameters
planned_course_id
required
string

Filter results on planned_course_id

query Parameters
for_student_id
integer
Deprecated

Filter results on for_student_id

date_from
string <date>
Deprecated

Filter results on date_from

sort
Array of strings
Items Enum: "start_date_time:asc" "start_date_time:desc" "name:asc" "name:desc"

Sort the results. Can change order by using <sort_by>:<direction> where <direction> is either asc or desc

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a meeting within a planned course.

Authorizations:
Bearer
path Parameters
planned_course_id
required
string

Filter results on planned_course_id

Request Body schema: application/json
required
name
required
string or null

The name of the meeting.

start_date_time
required
string

Date and time when the meeting is starting.

end_date_time
required
string

The date and time when the meeting is ending.

meeting_location_id
integer or null

Unique identifier of the meeting location.

description
string or null

The description of the meeting.

description_dashboard
string or null

The description that will be shown in the dashboard.

teacher_ids
Array of integers

IDs of assigned teachers.

planning_meeting_location_ids
Array of integers

IDs of booked meeting locations.

material_ids
Array of integers

IDs of booked materials.

shift_planning_events
boolean

Boolean determining if the planning events are shifted according to the change in start date time.

Array of objects
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "start_date_time": "string",
  • "end_date_time": "string",
  • "meeting_location_id": 0,
  • "description": "string",
  • "description_dashboard": "string",
  • "teacher_ids": [
    ],
  • "planning_meeting_location_ids": [
    ],
  • "material_ids": [
    ],
  • "shift_planning_events": true,
  • "planning_attendees_attributes": [
    ],
  • "planning_materials_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "planned_course_id": 0,
  • "start_date_time": "2019-08-24T14:15:22Z",
  • "end_date_time": "2019-08-24T14:15:22Z",
  • "meeting_location_id": 0,
  • "planning_meeting_location_ids": [
    ],
  • "description": "string",
  • "description_dashboard": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

orders

Get all order records

Authorizations:
Bearer
query Parameters
creator_id
integer

Filter results on creator_id

created_at_after
string <date-time>

Filter results on created_at_after

course_id
Array of integers
Deprecated

Filter results on course_id

sort
Array of strings
Items Enum: "created_at:asc" "created_at:desc"

Sort the results. Can change order by using <sort_by>:<direction> where <direction> is either asc or desc

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an order.

Authorizations:
Bearer
Request Body schema: application/json
required
cost
string or null

Decimal representing the value of the order

cost_scheme
string
Enum: "student" "order" "tbd" "free"

The cost schema that the payment will follow for the specified order.

catalog_variant_id
required
integer

Unique identifier of the orders CatalogVariant.

creator_id
required
integer

Unique identifier of the orders Creator (User).

account_id
integer

The unique identifier associated with the orders Account. If not provided, the system will default to using the personal account.

planned_course_id
integer

DEPRECATED: Use catalog_variant_id instead. Unique identifier of the order's planned course.

payment_method_id
integer

Unique identifier of the orders PaymentMethod.

student_ids
Array of integers

Array of student ids. A non-empty array is required if there are no student ids specified in the enrollments_attributes.

payment_option_id
integer

Unique identifier of the orders PaymentOption.

custom
object

The custom properties of the order.

approve
boolean

Optional: If the order should be approved or not. When omitted will default to false

label_ids
Array of integers

Optional: Assign labels to the order.

referral_id
integer

Optional: Identifier of the referral.

Responses

Request samples

Content type
application/json
{
  • "cost": "string",
  • "cost_scheme": "student",
  • "catalog_variant_id": 0,
  • "creator_id": 0,
  • "account_id": 0,
  • "planned_course_id": 0,
  • "payment_method_id": 0,
  • "student_ids": [
    ],
  • "payment_option_id": 0,
  • "custom": { },
  • "approve": true,
  • "label_ids": [
    ],
  • "referral_id": 0
}

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Get an order record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "number": 0,
  • "status": "active",
  • "number_of_students": 0,
  • "origin": "string",
  • "customer_comment": "string",
  • "total_cost_excl": "string",
  • "total_cost_incl": "string",
  • "cost": "string",
  • "cost_scheme": "free",
  • "catalog_variant_id": 0,
  • "creator_id": 0,
  • "account_id": 0,
  • "planned_course_id": 0,
  • "payment_method_id": 0,
  • "payment_option_id": 0,
  • "label_ids": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": { },
  • "order_items": [
    ]
}

Approve an order

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "number": 0,
  • "status": "active",
  • "number_of_students": 0,
  • "origin": "string",
  • "customer_comment": "string",
  • "total_cost_excl": "string",
  • "total_cost_incl": "string",
  • "cost": "string",
  • "cost_scheme": "free",
  • "catalog_variant_id": 0,
  • "creator_id": 0,
  • "account_id": 0,
  • "planned_course_id": 0,
  • "payment_method_id": 0,
  • "payment_option_id": 0,
  • "label_ids": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": { },
  • "order_items": [
    ]
}

Cancel an order

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "number": 0,
  • "status": "active",
  • "number_of_students": 0,
  • "origin": "string",
  • "customer_comment": "string",
  • "total_cost_excl": "string",
  • "total_cost_incl": "string",
  • "cost": "string",
  • "cost_scheme": "free",
  • "catalog_variant_id": 0,
  • "creator_id": 0,
  • "account_id": 0,
  • "planned_course_id": 0,
  • "payment_method_id": 0,
  • "payment_option_id": 0,
  • "label_ids": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": { },
  • "order_items": [
    ]
}

Deny an order

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

payment_methods

Get all payment method records available for customers

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

payment_options

Get all payment option records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

payments

Get all payment records of an invoice

Authorizations:
Bearer
path Parameters
invoice_id
required
string

Filter results on invoice_id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a payment.

Authorizations:
Bearer
path Parameters
invoice_id
required
string

Filter results on invoice_id

Request Body schema: application/json
required
amount
required
string

A number representing the total amount of the invoice.

currency
string
Enum: "EUR" "ISK" "USD" "GBP"

The currency used for the payment.

date
string

Date on which the payment was created.

payment_method_id
integer

Identifier of the payment method.

Responses

Request samples

Content type
application/json
{
  • "amount": "string",
  • "currency": "EUR",
  • "date": "string",
  • "payment_method_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "invoice_id": 0,
  • "amount": "string",
  • "currency": "EUR",
  • "payment_method_id": 0,
  • "status": "new",
  • "gateway_id": 0,
  • "date": "string",
  • "payment_method": {
    },
  • "plugin_data": [
    ]
}

Delete a payment.

Authorizations:
Bearer
path Parameters
id
required
integer
invoice_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Get one payment record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "invoice_id": 0,
  • "amount": "string",
  • "currency": "EUR",
  • "payment_method_id": 0,
  • "status": "new",
  • "gateway_id": 0,
  • "date": "string"
}

planned_courses

Get all planned course records of a single course

Authorizations:
Bearer
path Parameters
course_id
required
integer
query Parameters
search
string

Filter results on search

type
string
Enum: "FixedPlannedCourse" "FlexiblePlannedCourse"

Filter results on type

parents_published
string
Value: "parents_published"

Filter results on parents_published

published_public
string
Value: "published_public"

Only show courses that are published and are either planned or in progress

start_date_from
string

Filter results on start_date_from

start_date_until
string

Filter results on start_date_until

availability_state
string (AvailabilityState)
Enum: "open" "closed"

Filter results on availability_state

id
Array of integers
Deprecated

Filter results on id

status
string (PlannedCourseStatus)
Enum: "planned" "active" "completed" "canceled"

Filter results on status

sort
Array of strings
Items Enum: "start_date:asc" "start_date:desc"

Sort the results. Can change order by using <sort_by>:<direction> where <direction> is either asc or desc

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a planned course record of a single course

Authorizations:
Bearer
path Parameters
id
required
integer
course_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "status": "planned",
  • "duration_in_days": 0,
  • "availability_state": "open",
  • "payable": true,
  • "current_participants": 0,
  • "confirmed_active_and_completed_enrollments_count": 0,
  • "requested_enrollments_count": 0,
  • "available_places": true,
  • "canvas_link": "string",
  • "currency": "EUR",
  • "cost_multiplier": "string",
  • "is_published": true,
  • "course_id": 0,
  • "type": "FixedPlannedCourse",
  • "start_date": "string",
  • "end_date": "string",
  • "min_participants": 0,
  • "max_participants": 0,
  • "cost_scheme": "free",
  • "cost": "string",
  • "course_variant_id": 0,
  • "course_location_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get all planned course records

Authorizations:
Bearer
query Parameters
search
string

Filter results on search

type
string
Enum: "FixedPlannedCourse" "FlexiblePlannedCourse"

Filter results on type

parents_published
string
Value: "parents_published"

Filter results on parents_published

published_public
string
Value: "published_public"

Only show courses that are published and are either planned or in progress

start_date_from
string

Filter results on start_date_from

start_date_until
string

Filter results on start_date_until

availability_state
string
Enum: "open" "closed"

Filter results on availability_state

id
Array of integers
Deprecated

Filter results on id

course_id
Array of integers

Filter results on course_id

status
Array of strings
Items Enum: "planned" "active" "completed" "canceled"

Filter results on status

sort
Array of strings
Items Enum: "start_date:asc" "start_date:desc"

Sort the results. Can change order by using <sort_by>:<direction> where <direction> is either asc or desc

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a planned course.

Authorizations:
Bearer
Request Body schema: application/json
required
is_published
boolean

Boolean if is published on the website.

course_id
required
integer

Unique identifier of the course.

type
required
string
Enum: "FixedPlannedCourse" "FlexiblePlannedCourse"

The type of the course.

start_date
string

Date at which the planned course starts. Only needed for fixed planned courses.

end_date
string or null

Date at which the planned course ends. Only needed for fixed planned courses.

min_participants
integer or null

A number representing the minimum number of participants that can enroll for the planned course.

max_participants
integer or null

A number representing the maximum number of participants that can enroll for the planned course.

cost_scheme
string
Enum: "student" "order" "tbd" "free"

The cost schema that the payment will follow for the specified course.

cost
number or null

The price to be paid for this planned course. Required if cost_scheme is student (default value) or order.

course_variant_id
integer or null

Unique identifier of the course variant.

course_location_id
integer or null

Unique identifier of the course location.

duration
number

The period of time of the planned course. Only needed for flexible planned courses.

teacher_ids
Array of integers

The ids of the teachers in the course

custom
object

The custom properties of the planned course.

Responses

Request samples

Content type
application/json
{
  • "is_published": true,
  • "course_id": 0,
  • "type": "FixedPlannedCourse",
  • "start_date": "string",
  • "end_date": "string",
  • "min_participants": 0,
  • "max_participants": 0,
  • "cost_scheme": "student",
  • "cost": 0,
  • "course_variant_id": 0,
  • "course_location_id": 0,
  • "duration": 0,
  • "teacher_ids": [
    ],
  • "custom": { }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "status": "planned",
  • "duration_in_days": 0,
  • "availability_state": "open",
  • "payable": true,
  • "current_participants": 0,
  • "confirmed_active_and_completed_enrollments_count": 0,
  • "requested_enrollments_count": 0,
  • "available_places": true,
  • "canvas_link": "string",
  • "currency": "EUR",
  • "cost_multiplier": "string",
  • "is_published": true,
  • "course_id": 0,
  • "type": "FixedPlannedCourse",
  • "start_date": "string",
  • "end_date": "string",
  • "min_participants": 0,
  • "max_participants": 0,
  • "cost_scheme": "free",
  • "cost": "string",
  • "course_variant_id": 0,
  • "course_location_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get a planned course record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "status": "planned",
  • "duration_in_days": 0,
  • "availability_state": "open",
  • "payable": true,
  • "current_participants": 0,
  • "confirmed_active_and_completed_enrollments_count": 0,
  • "requested_enrollments_count": 0,
  • "available_places": true,
  • "canvas_link": "string",
  • "currency": "EUR",
  • "cost_multiplier": "string",
  • "is_published": true,
  • "course_id": 0,
  • "type": "FixedPlannedCourse",
  • "start_date": "string",
  • "end_date": "string",
  • "min_participants": 0,
  • "max_participants": 0,
  • "cost_scheme": "free",
  • "cost": "string",
  • "course_variant_id": 0,
  • "course_location_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Update a planned course.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
is_published
boolean

Boolean if is published on the website.

course_id
integer

Unique identifier of the course.

start_date
string

Date at which the planned course starts. Only needed for fixed planned courses.

end_date
string or null

Date at which the planned course ends. Only needed for fixed planned courses.

min_participants
integer or null

A number representing the minimum number of participants that can enroll for the planned course.

max_participants
integer or null

A number representing the maximum number of participants that can enroll for the planned course.

cost_scheme
string
Enum: "student" "order" "tbd" "free"

The cost schema that the payment will follow for the specified course.

cost
number or null

A positive float representing the price of the planned course.

course_variant_id
integer or null

Unique identifier of the course variant.

course_location_id
integer or null

Unique identifier of the course location.

duration
number

The period of time of the planned course. Only needed for flexible planned courses.

teacher_ids
Array of strings

The ids of the teachers in the course

custom
object

The custom properties of the planned course.

Responses

Request samples

Content type
application/json
{
  • "is_published": true,
  • "course_id": 0,
  • "start_date": "string",
  • "end_date": "string",
  • "min_participants": 0,
  • "max_participants": 0,
  • "cost_scheme": "student",
  • "cost": 0,
  • "course_variant_id": 0,
  • "course_location_id": 0,
  • "duration": 0,
  • "teacher_ids": [
    ],
  • "custom": { }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "status": "planned",
  • "duration_in_days": 0,
  • "availability_state": "open",
  • "payable": true,
  • "current_participants": 0,
  • "confirmed_active_and_completed_enrollments_count": 0,
  • "requested_enrollments_count": 0,
  • "available_places": true,
  • "canvas_link": "string",
  • "currency": "EUR",
  • "cost_multiplier": "string",
  • "is_published": true,
  • "course_id": 0,
  • "type": "FixedPlannedCourse",
  • "start_date": "string",
  • "end_date": "string",
  • "min_participants": 0,
  • "max_participants": 0,
  • "cost_scheme": "free",
  • "cost": "string",
  • "course_variant_id": 0,
  • "course_location_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Cancel a planned course.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "status": "planned",
  • "duration_in_days": 0,
  • "availability_state": "open",
  • "payable": true,
  • "current_participants": 0,
  • "confirmed_active_and_completed_enrollments_count": 0,
  • "requested_enrollments_count": 0,
  • "available_places": true,
  • "canvas_link": "string",
  • "currency": "EUR",
  • "cost_multiplier": "string",
  • "is_published": true,
  • "course_id": 0,
  • "type": "FixedPlannedCourse",
  • "start_date": "string",
  • "end_date": "string",
  • "min_participants": 0,
  • "max_participants": 0,
  • "cost_scheme": "free",
  • "cost": "string",
  • "course_variant_id": 0,
  • "course_location_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

planning-conflicts

Get all conflicts

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

planning-events

Get all planning event records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a planning event

Authorizations:
Bearer
Request Body schema: application/json
required
meeting_id
required
integer

Identifier of the meeting

meeting_location_id
integer or null

Unique identifier of the meeting location.

name
required
string or null

Name of the event

start_date_time
required
string

Date and time when the event is starting

end_date_time
required
string

The date and time when the event is ending

material_ids
Array of integers

IDs of assigned materials.

teacher_ids
Array of integers

IDs of assigned teachers.

planning_meeting_location_ids
Array of integers

IDs of booked meeting locations.

Array of objects
Array of objects

Responses

Request samples

Content type
application/json
{
  • "meeting_id": 0,
  • "meeting_location_id": 0,
  • "name": "string",
  • "start_date_time": "string",
  • "end_date_time": "string",
  • "material_ids": [
    ],
  • "teacher_ids": [
    ],
  • "planning_meeting_location_ids": [
    ],
  • "planning_attendees_attributes": [
    ],
  • "planning_materials_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "meeting_id": 0,
  • "meeting_location_id": 0,
  • "name": "string",
  • "start_date_time": "string",
  • "end_date_time": "string",
  • "planning_meeting_location_ids": [
    ]
}

Get an planning event record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "meeting_id": 0,
  • "meeting_location_id": 0,
  • "name": "string",
  • "start_date_time": "string",
  • "end_date_time": "string",
  • "planning_meeting_location_ids": [
    ],
  • "planning_attendees": [
    ],
  • "planning_materials": [
    ]
}

Delete a planning event.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update an planning event.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
meeting_id
integer

Identifier of the meeting

meeting_location_id
integer or null

Unique identifier of the meeting location.

name
string or null

Name of the event

start_date_time
string

Date and time when the event is starting

end_date_time
string

The date and time when the event is ending

material_ids
Array of integers

IDs of assigned materials.

teacher_ids
Array of integers

IDs of assigned teachers.

planning_meeting_location_ids
Array of integers

IDs of booked meeting locations.

Array of objects
Array of objects

Responses

Request samples

Content type
application/json
{
  • "meeting_id": 0,
  • "meeting_location_id": 0,
  • "name": "string",
  • "start_date_time": "string",
  • "end_date_time": "string",
  • "material_ids": [
    ],
  • "teacher_ids": [
    ],
  • "planning_meeting_location_ids": [
    ],
  • "planning_attendees_attributes": [
    ],
  • "planning_materials_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "meeting_id": 0,
  • "meeting_location_id": 0,
  • "name": "string",
  • "start_date_time": "string",
  • "end_date_time": "string",
  • "planning_meeting_location_ids": [
    ]
}

planning-locations

Get all locations that are available

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

planning-materials

Get all planning materials of a meeting

Authorizations:
Bearer
path Parameters
id
required
integer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all planning materials of a planning event

Authorizations:
Bearer
path Parameters
id
required
integer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all materials that are available

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

planning-teachers

Get all teachers that are available

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

program-blocks

program-editions

Get all program editions

Authorizations:
Bearer
query Parameters
program_id
Array of strings

Filter results on program_id

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a program edition

Authorizations:
Bearer
Request Body schema: application/json
required
program_id
required
integer

Unique identifier of associated program.

name
required
string

Name of the program edition.

cost
number or null

The price to be paid for this edition. Required if cost_scheme is student (default value) or order.

cost_scheme
string
Enum: "student" "order" "tbd" "free"

How should the edition be paid by default.

min_participants
integer or null

A number representing the minimum number of participants.

max_participants
integer or null

A number representing the maximum number of participants.

is_published
boolean

Boolean representing the publishable status of the edition.

custom
object

The custom properties of the edition.

Responses

Request samples

Content type
application/json
{
  • "program_id": 0,
  • "name": "string",
  • "cost": 0,
  • "cost_scheme": "student",
  • "min_participants": 0,
  • "max_participants": 0,
  • "is_published": true,
  • "custom": { }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "program_id": 0,
  • "cost": "string",
  • "cost_scheme": "free",
  • "min_participants": 0,
  • "max_participants": 0,
  • "current_participants": 0,
  • "is_published": false,
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

Get a program edition

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "program_id": 0,
  • "cost": "string",
  • "cost_scheme": "free",
  • "min_participants": 0,
  • "max_participants": 0,
  • "current_participants": 0,
  • "is_published": false,
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

Delete a program edition

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a program edition

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
program_id
integer

Unique identifier of associated program.

name
string

Name of the program edition.

cost
string or null

The price to be paid for this edition.

cost_scheme
string
Enum: "student" "order" "tbd" "free"

How should the edition be paid by default.

min_participants
integer or null

A number representing the minimum number of participants.

max_participants
integer or null

A number representing the maximum number of participants.

is_published
boolean

Boolean representing the publishable status of the edition.

custom
object

The custom properties of the edition.

Responses

Request samples

Content type
application/json
{
  • "program_id": 0,
  • "name": "string",
  • "cost": "string",
  • "cost_scheme": "student",
  • "min_participants": 0,
  • "max_participants": 0,
  • "is_published": true,
  • "custom": { }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "program_id": 0,
  • "cost": "string",
  • "cost_scheme": "free",
  • "min_participants": 0,
  • "max_participants": 0,
  • "current_participants": 0,
  • "is_published": false,
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

program-elements

Get all elements

This endpoint will only return elements of type 'Course Element' that are directly linked to the program edition(s). It does not consider possible blocks.

Authorizations:
Bearer
query Parameters
edition_id
integer

Filter results on edition_id

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a program element

This endpoint can only create elements of type 'Course Element' that are directly linked to the program edition(s). It does not consider possible blocks.

Authorizations:
Bearer
Request Body schema: application/json
required
course_id
required
integer

The identifier of the associated course.

edition_id
required
integer

The identifier of the associated course.

planned_course_id
integer or null

The identifier of the associated course.

Responses

Request samples

Content type
application/json
{
  • "course_id": 0,
  • "edition_id": 0,
  • "planned_course_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "edition_id": 0,
  • "position": 0,
  • "course_id": 0,
  • "planned_course_id": 0
}

Get an element

This endpoint will only return elements of type 'Course Element' that are directly linked to the program edition(s). It does not consider possible blocks.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "edition_id": 0,
  • "position": 0,
  • "course_id": 0,
  • "planned_course_id": 0
}

Delete a element

This endpoint can only remove elements of type 'Course Element' that are directly linked to the program edition(s). It does not consider possible blocks.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update an element

This endpoint can only change elements of type 'Course Element' that are directly linked to the program edition(s). It does not consider possible blocks.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
edition_id
integer

The identifier of the associated course.

planned_course_id
integer or null

The identifier of the associated course.

Responses

Request samples

Content type
application/json
{
  • "edition_id": 0,
  • "planned_course_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "edition_id": 0,
  • "position": 0,
  • "course_id": 0,
  • "planned_course_id": 0
}

program-enrollments

Get all program enrollments

Authorizations:
Bearer
query Parameters
student_id
integer

Filter results on student_id

edition_id
integer

Filter results on edition_id

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a program enrollment record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "student_id": 0,
  • "edition_id": 0,
  • "personal_program_id": 0,
  • "label_ids": [
    ],
  • "order_id": 0,
  • "state": "confirmed",
  • "graduation_state": "awaiting_judgement",
  • "graduation_date": "2019-08-24",
  • "grade": {
    }
}

Awards a certificate to a program enrollment

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
certificate_template_id
required
integer

Id of the certificate template to use for the certificate

Responses

Request samples

Content type
application/json
{
  • "certificate_template_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "student_id": 0,
  • "edition_id": 0,
  • "personal_program_id": 0,
  • "label_ids": [
    ],
  • "order_id": 0,
  • "state": "confirmed",
  • "graduation_state": "awaiting_judgement",
  • "graduation_date": "2019-08-24",
  • "grade": {
    }
}

Cancel a program enrollment

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "student_id": 0,
  • "edition_id": 0,
  • "personal_program_id": 0,
  • "label_ids": [
    ],
  • "order_id": 0,
  • "state": "confirmed",
  • "graduation_state": "awaiting_judgement",
  • "graduation_date": "2019-08-24",
  • "grade": {
    }
}

Deletes a certificate from a program enrollment

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "student_id": 0,
  • "edition_id": 0,
  • "personal_program_id": 0,
  • "label_ids": [
    ],
  • "order_id": 0,
  • "state": "confirmed",
  • "graduation_state": "awaiting_judgement",
  • "graduation_date": "2019-08-24",
  • "grade": {
    }
}

program-personal-program-elements

Get all program personal program elements Deprecated

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

program-programs

Get all programs

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a program

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

Name of the program.

cost
integer or null

The price to be paid for this program. Required if cost_scheme is student (default value) or order.

cost_scheme
string
Enum: "student" "order" "tbd" "free"

How should the program be paid by default.

is_published
boolean

Boolean representing the publishable status of the program.

category_id
required
integer

Identifier of the category of the program.

conditions
string or null

Conditions for this program.

slug
string

Human readable identifier, unique per educator.

label_ids
Array of integers

IDs of the labels

avatar
string

Signed blob ID of the avatar

custom
object

The custom properties of the program.

Array of objects
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "cost": 0,
  • "cost_scheme": "student",
  • "is_published": true,
  • "category_id": 0,
  • "conditions": "string",
  • "slug": "string",
  • "label_ids": [
    ],
  • "avatar": "string",
  • "custom": { },
  • "course_tab_contents_attributes": [
    ],
  • "signup_answers_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "signup_url": "string",
  • "name": "string",
  • "cost": "string",
  • "cost_scheme": "free",
  • "is_published": true,
  • "category_id": 0,
  • "conditions": "string",
  • "slug": "string"
}

Get a program

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "signup_url": "string",
  • "name": "string",
  • "cost": "string",
  • "cost_scheme": "free",
  • "is_published": true,
  • "category_id": 0,
  • "conditions": "string",
  • "slug": "string"
}

Delete a program

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a program

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
name
string

Name of the program.

cost
string or null

The price to be paid for this program.

cost_scheme
string
Enum: "student" "order" "tbd" "free"

How should the program be paid by default.

is_published
boolean

Boolean representing the publishable status of the program.

category_id
integer

Identifier of the category of the program.

conditions
string or null

Conditions for this program.

slug
string

Human readable identifier, unique per educator.

label_ids
Array of integers

IDs of the labels

avatar
string

Signed blob ID of the avatar

custom
object

The custom properties of the program.

Array of objects
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "cost": "string",
  • "cost_scheme": "student",
  • "is_published": true,
  • "category_id": 0,
  • "conditions": "string",
  • "slug": "string",
  • "label_ids": [
    ],
  • "avatar": "string",
  • "custom": { },
  • "course_tab_contents_attributes": [
    ],
  • "signup_answers_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "signup_url": "string",
  • "name": "string",
  • "cost": "string",
  • "cost_scheme": "free",
  • "is_published": true,
  • "category_id": 0,
  • "conditions": "string",
  • "slug": "string"
}

referrals

Get all referral records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

signup

Perform a signup. Deprecated

Often you want to redirect the user after a successful signup. The expected redirect url is returned in the Location header (just as normal 302 redirects). If the user wants to pay with a payment provider, this is also the URL to the payment URL.

Authorizations:
Bearer
Request Body schema: application/json
required
planned_course_id
integer

Identifier of the planned course.

catalog_variant_id
integer

Identifier of the catalog variant.

payment_method_id
integer

Identifier of the used payment method.

payment_option_id
integer

Identifier of the used payment option.

referral_id
integer

Identifier of the referral.

customer_comment
string

A string representing the comment left by the customer.

object
object
Array of objects
Array of objects

Responses

Request samples

Content type
application/json
{
  • "planned_course_id": 0,
  • "catalog_variant_id": 0,
  • "payment_method_id": 0,
  • "payment_option_id": 0,
  • "referral_id": 0,
  • "customer_comment": "string",
  • "account_attributes": {
    },
  • "creator_attributes": {
    },
  • "enrollments_attributes": [
    ],
  • "signup_answers_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

signup_questions

Get all signup_question records

Authorizations:
Bearer
query Parameters
for_user
string
Value: "for_user"

Filter results on for_user

for_account
string
Value: "for_account"

Filter results on for_account

for_type
string
Enum: "user" "teacher" "account" "catalog_product" "order" "catalog_variant"

Filter results on for_type

visibility
string

Filter results on visibility

use_as_duplicate_indicator
boolean

Filter results on use_as_duplicate_indicator

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

tasks

Get all task records

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a task.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

The title of the task.

description
string or null

A string representing the description of the task.

due_date
string or null

Date when the task must be completed.

starred
boolean

Boolean if the task is starred.

assignee_id
integer or null

Unique identifier of the assigned user for the task.

subject_type
string or null
Enum: "Course" "Account" "User" "Lead" "Invoice" "PlannedCourse" "Order" "Program::Program" "Program::Edition"

Type of the subject.

subject_id
integer or null

Identifier of the subject.

completed
boolean

Boolean representing the status of the task. The default value is false.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "due_date": "string",
  • "starred": true,
  • "assignee_id": 0,
  • "subject_type": "Course",
  • "subject_id": 0,
  • "completed": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "creator_id": 0,
  • "completed_at": "string",
  • "completed_by_id": 0,
  • "assigned_by_id": 0,
  • "name": "string",
  • "description": "string",
  • "due_date": "string",
  • "starred": true,
  • "assignee_id": 0,
  • "subject_type": "Course",
  • "subject_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get a task record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "creator_id": 0,
  • "completed_at": "string",
  • "completed_by_id": 0,
  • "assigned_by_id": 0,
  • "name": "string",
  • "description": "string",
  • "due_date": "string",
  • "starred": true,
  • "assignee_id": 0,
  • "subject_type": "Course",
  • "subject_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete a task.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a task.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
name
string

The title of the task.

description
string or null

A string representing the description of the task.

due_date
string or null

Date when the task must be completed.

starred
boolean

Boolean if the task is starred.

assignee_id
integer or null

Unique identifier of the assigned user for the task.

subject_type
string or null
Enum: "Course" "Account" "User" "Lead" "Invoice" "PlannedCourse" "Order" "Program::Program" "Program::Edition"

Type of the subject.

subject_id
integer or null

Identifier of the subject.

completed
boolean

Boolean representing the status of the task. The default value is false.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "due_date": "string",
  • "starred": true,
  • "assignee_id": 0,
  • "subject_type": "Course",
  • "subject_id": 0,
  • "completed": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "creator_id": 0,
  • "completed_at": "string",
  • "completed_by_id": 0,
  • "assigned_by_id": 0,
  • "name": "string",
  • "description": "string",
  • "due_date": "string",
  • "starred": true,
  • "assignee_id": 0,
  • "subject_type": "Course",
  • "subject_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

teacher_enrollments

Get all teacher enrollments for given planned course.

Authorizations:
Bearer
path Parameters
planned_course_id
required
integer

Filter results on planned_course_id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Enroll a teacher to the given planned course.

Authorizations:
Bearer
path Parameters
planned_course_id
required
integer

Filter results on planned_course_id

Request Body schema: application/json
required
teacher_id
required
integer

Unique identifier of the teacher.

teacher_role_id
integer

Unique identifier of the teacher role.

Responses

Request samples

Content type
application/json
{
  • "teacher_id": 0,
  • "teacher_role_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "planned_course_id": 0,
  • "teacher_id": 0,
  • "teacher_role_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get all teacher enrollments.

Authorizations:
Bearer
query Parameters
planned_course_id
integer

Filter results on planned_course_id

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Enroll a teacher to a planned_course.

Authorizations:
Bearer
Request Body schema: application/json
required
planned_course_id
required
integer

Unique identifier of the planned course.

teacher_id
required
integer

Unique identifier of the teacher.

teacher_role_id
integer

Unique identifier of the teacher role.

Responses

Request samples

Content type
application/json
{
  • "planned_course_id": 0,
  • "teacher_id": 0,
  • "teacher_role_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "planned_course_id": 0,
  • "teacher_id": 0,
  • "teacher_role_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete a teacher enrollment.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a teacher enrollment.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
planned_course_id
integer

Unique identifier of the planned course.

teacher_id
integer

Unique identifier of the teacher.

teacher_role_id
integer

Unique identifier of the teacher role.

Responses

Request samples

Content type
application/json
{
  • "planned_course_id": 0,
  • "teacher_id": 0,
  • "teacher_role_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "planned_course_id": 0,
  • "teacher_id": 0,
  • "teacher_role_id": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

teacher_roles

Get all teacher roles

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a teacher role.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

The name of the teacher role.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get a teacher role

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete a teacher role.

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Update a teacher role.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
name
required
string

The name of the teacher role.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z"
}

teachers

Get all teacher records

Authorizations:
Bearer
query Parameters
search
string

Filter results on search

label_id
Array of integers

Filter results on label_id

id
Array of integers

Filter results on id

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new teacher

Authorizations:
Bearer
Request Body schema: application/json
required
user_id
integer

The id of the user to make a teacher

Responses

Request samples

Content type
application/json
{
  • "user_id": 0
}

Response samples

Content type
application/json
{}

Get a teacher record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "slug": "string",
  • "label_ids": [
    ],
  • "active": true,
  • "avatar_url": "string",
  • "employee_number": "string",
  • "note": "string",
  • "teacher_headline": "string",
  • "teacher_description": "string",
  • "teacher_enrollments_count": 0,
  • "locale": "de",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "custom": { }
}

Mark teacher as active

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Mark teacher as inactive

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

users

Get all user records

Authorizations:
Bearer
query Parameters
role
string

Filter results on role

email
string <email>

Filter results on email

label_id
Array of strings

Filter results on label_id

sort
Array of strings
Items Enum: "created_at:asc" "created_at:desc"

Sort the results. Can change order by using <sort_by>:<direction> where <direction> is either asc or desc

page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a user.

Authorizations:
Bearer
Request Body schema: application/json
required
first_name
required
string

First name of the user.

middle_name
string or null

Middle name of the user.

last_name
required
string

Last name of the user.

email
required
string

The e-mail of the user.

locale
string or null (Locale)
Enum: "de" "en" "en-GB" "en-US" "es" "is" "nl"
wants_newsletter
boolean

Boolean representing the possibility of the user to receive newsletters.

with_authentication
boolean

If the user should be able to login and thus receive login details by mail. Only relevant when creating the user.

custom
object

The custom properties of the user.

object or null (AddressPayload)
object or null (AddressPayload)
label_ids
Array of integers

An array containing the identifiers of the labels associated with the user. When updating this array, the existing labels are replaced with the new ones provided.

Responses

Request samples

Content type
application/json
{
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "email": "string",
  • "locale": "de",
  • "wants_newsletter": true,
  • "with_authentication": true,
  • "custom": { },
  • "address_attributes": {
    },
  • "invoice_address_attributes": {
    },
  • "label_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "errors": { },
  • "code": 0,
  • "message": "string"
}

Get an user record

Authorizations:
Bearer
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "slug": "string",
  • "avatar_url": "string",
  • "roles": [
    ],
  • "notes_user": "string",
  • "description": "string",
  • "label_ids": [
    ],
  • "employee_number": "string",
  • "student_number": "string",
  • "teacher_headline": "string",
  • "teacher_description": "string",
  • "teacher_enrollments_count": 0,
  • "locale": "de",
  • "wants_newsletter": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "address": {
    },
  • "custom": { }
}

Update a user.

Authorizations:
Bearer
path Parameters
id
required
integer
Request Body schema: application/json
required
first_name
string

First name of the user.

middle_name
string or null

Middle name of the user.

last_name
string

Last name of the user.

email
string

The e-mail of the user.

locale
string or null (Locale)
Enum: "de" "en" "en-GB" "en-US" "es" "is" "nl"
wants_newsletter
boolean

Boolean representing the possibility of the user to receive newsletters.

with_authentication
boolean

If the user should be able to login and thus receive login details by mail. Only relevant when creating the user.

custom
object

The custom properties of the user.

object or null (AddressPatchPayload)
object or null (AddressPatchPayload)
label_ids
Array of integers

IDs of the labels

Responses

Request samples

Content type
application/json
{
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "email": "string",
  • "locale": "de",
  • "wants_newsletter": true,
  • "with_authentication": true,
  • "custom": { },
  • "address_attributes": {
    },
  • "invoice_address_attributes": {
    },
  • "label_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "slug": "string",
  • "avatar_url": "string",
  • "roles": [
    ],
  • "notes_user": "string",
  • "description": "string",
  • "label_ids": [
    ],
  • "employee_number": "string",
  • "student_number": "string",
  • "teacher_headline": "string",
  • "teacher_description": "string",
  • "teacher_enrollments_count": 0,
  • "locale": "de",
  • "wants_newsletter": true,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "address": {
    },
  • "custom": { }
}

webhook-notifications

Get the notifications for a specific webhook

Authorizations:
Bearer
path Parameters
webhook_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

webhooks

Setup

To setup a webhook, you can create one through the API or go to the admin setting to use the UI.

Webhook Return Payload

An example payload for approving an order would look something like this:

{
  "tenant_id": "uuid"                 // UUID of the tenant
  "educator": "some-subdomain",       // Subdomain of the educator
  "event": "account.updated"          // Event that triggered the webhook
  "event_data": "Account",            // Event-specific data
}

The Open API format of these payloads:

{
  "tenant_id": {
    "type": "string"
  },
  "educator": {
    "type": "string"
  },
  "event": {
    "type": "string"
  },
  "event_data": {
    "type": "object"
  }
}

Get all registered webhooks

Authorizations:
Bearer
query Parameters
page
integer >= 1
Default: 1
Example: page=2

The page of the results to retrieve. Note: It's almost never necessary to use this parameter directly, the URL should be retrieved from the Link header.

per_page
integer [ 1 .. 100 ]
Default: 25
Example: per_page=10

The number of results to retrieve for this page.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Register a webhook.

Authorizations:
Bearer
Request Body schema: application/json
required
url
required
string <uri>

The callback url for Eduframe to send a HTTP POST payload to.

active
boolean

State of webhook.

events
Array of strings (WebhookEvent)
Items Enum: "account.created" "account.deleted" "account.updated" "catalog_variant.created" "catalog_variant.deleted" "catalog_variant.updated" "category.created" "category.deleted" "category.updated" "course.created" "course.deleted" "course.updated" "course_location.created" "course_location.deleted" "course_location.updated" "course_variant.created" "course_variant.deleted" "course_variant.updated" "custom_field_option.created" "custom_field_option.deleted" "custom_field_option.updated" "custom_record.created" "custom_record.deleted" "custom_record.updated" "educator.created" "educator.deleted" "educator.updated" "enrollment.created" "enrollment.deleted" "enrollment.updated" "invoice.created" "invoice.deleted" "invoice.updated" "invoice_vat.created" "invoice_vat.deleted" "invoice_vat.updated" "label.created" "label.deleted" "label.updated" "lead.created" "lead.deleted" "lead.updated" "meeting.created" "meeting.deleted" "meeting.teacher_attendees_changed" "meeting.updated" "meeting_location.created" "meeting_location.deleted" "meeting_location.updated" "order.approved" "order.created" "order.deleted" "order.denied" "order.updated" "payment.created" "payment.deleted" "payment.updated" "planned_course.canceled" "planned_course.created" "planned_course.deleted" "planned_course.teacher_attendees_changed" "planned_course.updated" "planning_event.created" "planning_event.deleted" "planning_event.teacher_attendees_changed" "planning_event.updated" "product.created" "product.deleted" "product.updated" "program.created" "program.deleted" "program.updated" "program_edition.created" "program_edition.deleted" "program_edition.updated" "program_enrollment.cancel" "program_enrollment.created" "program_enrollment.graduation_revoked" "program_enrollment.pass" "program_enrollment.updated" "teacher.created" "teacher.deleted" "teacher.updated" "teacher_role.created" "teacher_role.deleted" "teacher_role.updated" "user.created" "user.deleted" "user.merged" "user.updated"

Array of events.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "id": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "url": "string",
  • "active": true,
  • "events": [
    ]
}

Get a registered webhook

Authorizations:
Bearer
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "url": "string",
  • "active": true,
  • "events": [
    ]
}

Delete a webhook.

Authorizations:
Bearer
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "url": "string",
  • "active": true,
  • "events": [
    ]
}

Update a webhook.

Authorizations:
Bearer
path Parameters
id
required
string
Request Body schema: application/json
required
url
string

The callback url for Eduframe to send a HTTP POST payload to.

active
boolean

State of webhook.

events
Array of strings (WebhookEvent)
Items Enum: "account.created" "account.deleted" "account.updated" "catalog_variant.created" "catalog_variant.deleted" "catalog_variant.updated" "category.created" "category.deleted" "category.updated" "course.created" "course.deleted" "course.updated" "course_location.created" "course_location.deleted" "course_location.updated" "course_variant.created" "course_variant.deleted" "course_variant.updated" "custom_field_option.created" "custom_field_option.deleted" "custom_field_option.updated" "custom_record.created" "custom_record.deleted" "custom_record.updated" "educator.created" "educator.deleted" "educator.updated" "enrollment.created" "enrollment.deleted" "enrollment.updated" "invoice.created" "invoice.deleted" "invoice.updated" "invoice_vat.created" "invoice_vat.deleted" "invoice_vat.updated" "label.created" "label.deleted" "label.updated" "lead.created" "lead.deleted" "lead.updated" "meeting.created" "meeting.deleted" "meeting.teacher_attendees_changed" "meeting.updated" "meeting_location.created" "meeting_location.deleted" "meeting_location.updated" "order.approved" "order.created" "order.deleted" "order.denied" "order.updated" "payment.created" "payment.deleted" "payment.updated" "planned_course.canceled" "planned_course.created" "planned_course.deleted" "planned_course.teacher_attendees_changed" "planned_course.updated" "planning_event.created" "planning_event.deleted" "planning_event.teacher_attendees_changed" "planning_event.updated" "product.created" "product.deleted" "product.updated" "program.created" "program.deleted" "program.updated" "program_edition.created" "program_edition.deleted" "program_edition.updated" "program_enrollment.cancel" "program_enrollment.created" "program_enrollment.graduation_revoked" "program_enrollment.pass" "program_enrollment.updated" "teacher.created" "teacher.deleted" "teacher.updated" "teacher_role.created" "teacher_role.deleted" "teacher_role.updated" "user.created" "user.deleted" "user.merged" "user.updated"

Array of events.

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "active": true,
  • "events": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "url": "string",
  • "active": true,
  • "events": [
    ]
}