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.
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.
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.
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 are included as null
.
All boolean parameters can be passed as true
, false
, 1
or 0
. And are returned as true
or false
.
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.
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.
Requests that return multiple items will be paginated to 25 items by default. You can set a custom per-page amount with the per_page
query parameter (with a maximum of 100). Navigation to the next page can be done following the Link header. This header includes pagination information. For example: Link: <https://api.eduframe.nl/courses?cursor=eyJpZCI6MjV9&per_page=25>; rel="prev", <https://api.eduframe.nl/courses?cursor=eyJpZCI6NTB9&per_page=25>; rel="next"
Deprecated
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"
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 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.
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 |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "account_type": "business",
- "label_ids": [
- 0
], - "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": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "country": "AD",
- "state_province": "AL"
}
}
]
name required | string Arbitrary string representing the name of the account. Is autogenerated for personal accounts. |
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 |
{- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "label_ids": [
- 0
], - "custom": { },
- "address_attributes": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "state_province": "AL",
- "country": "AD"
}, - "signup_answers_attributes": [
- {
- "signup_question_id": 0,
- "value": "string"
}
]
}
{- "id": 0,
- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "account_type": "business",
- "label_ids": [
- 0
], - "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": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "country": "AD",
- "state_province": "AL"
}
}
{- "id": 0,
- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "account_type": "business",
- "label_ids": [
- 0
], - "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": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "country": "AD",
- "state_province": "AL"
}
}
user_id | integer Filter results on user_id |
account_id | integer Filter results on account_id |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "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"
}
]
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. |
{- "user_id": 0,
- "account_id": 0,
- "key_contact": false
}
{- "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"
}
id required | integer |
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 |
{- "key_contact": true,
- "user_id": 0,
- "account_id": 0
}
{- "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"
}
meeting_id | integer Filter attendances on meeting_id |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "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"
}
]
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. |
{- "meeting_id": 0,
- "enrollment_id": 0,
- "state": "absent",
- "comment": "string"
}
{- "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"
}
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. |
{- "uid": "string",
- "user_id": 0,
- "authentication_provider_type": "azure_active_directory"
}
{- "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"
}
user_id required | integer |
provider | string (AuthenticationProviderType) Enum: "azure_active_directory" "eduframe" "openid_connect" "surf_conext" Filter results on provider |
[- {
- "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"
}
]
user_id required | integer |
id required | integer |
{- "errors": { },
- "code": 0,
- "message": "string"
}
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 |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "name": "string",
- "slug": "string",
- "label_ids": [
- 0
], - "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": [
- {
- "id": 0,
- "course_tab_id": 0,
- "content": "string"
}
], - "custom": { }
}
]
{- "id": 0,
- "name": "string",
- "slug": "string",
- "label_ids": [
- 0
], - "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": [
- {
- "id": 0,
- "course_tab_id": 0,
- "content": "string"
}
], - "custom": { }
}
id required | integer |
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 |
{- "category_id": 0,
- "is_published": true,
- "custom": { },
- "course_tab_contents_attributes": [
- {
- "id": 0,
- "content": "string",
- "course_tab_id": 0
}
]
}
{- "id": 0,
- "name": "string",
- "slug": "string",
- "label_ids": [
- 0
], - "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": [
- {
- "id": 0,
- "course_tab_id": 0,
- "content": "string"
}
], - "custom": { }
}
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 |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "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": { }
}
]
{- "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": { }
}
id required | integer |
is_published required | boolean Boolean showing if the variant is published or not. |
{- "is_published": true
}
{- "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": { }
}
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 |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "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"
}
]
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 |
{- "name": "string",
- "description": "string",
- "is_published": true,
- "meta_title": "string",
- "meta_description": "string",
- "parent_id": 0
}
{- "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"
}
{- "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"
}
id required | integer |
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 |
{- "name": "string",
- "slug": "string",
- "description": "string",
- "is_published": true,
- "meta_title": "string",
- "meta_description": "string",
- "parent_id": 0
}
{- "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"
}
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" |
{- "content": "string",
- "commentable_id": 0,
- "commentable_type": "Account"
}
{- "id": 0,
- "content": "string",
- "creator_id": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
id required | integer |
content | string A string representing the content of a comment. |
{- "content": "string"
}
{- "id": 0,
- "content": "string",
- "creator_id": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "name": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "address": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "country": "AD",
- "state_province": "AL"
}
}
]
name required | string Name of the location where the course is held. |
object or null (AddressPayload) |
{- "name": "string",
- "address_attributes": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "state_province": "AL",
- "country": "AD"
}
}
{- "id": 0,
- "name": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "address": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "country": "AD",
- "state_province": "AL"
}
}
{- "id": 0,
- "name": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "address": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "country": "AD",
- "state_province": "AL"
}
}
id required | integer |
name | string Name of the location where the course is held. |
object or null (AddressPatchPayload) |
{- "name": "string",
- "address_attributes": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "state_province": "AL",
- "country": "AD"
}
}
{- "id": 0,
- "name": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "address": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "country": "AD",
- "state_province": "AL"
}
}
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "name": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
]
name required | string The name of the course variant. |
{- "name": "string"
}
{- "id": 0,
- "name": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
published | string Value: "published" Show only published courses |
id | Array of integers Deprecated Filter results on id |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "position": 0,
- "starting_price": "string",
- "signup_url": "string",
- "slug": "string",
- "slug_history": [
- "string"
], - "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": [
- 0
], - "cost": "string",
- "cost_scheme": "free",
- "is_published": true,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "custom": {
- "custom_field1": "value",
- "custom_field2": "value"
}
}
]
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 |
{- "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": [
- {
- "content": "string",
- "course_tab_id": 0
}
]
}
{- "id": 0,
- "position": 0,
- "starting_price": "string",
- "signup_url": "string",
- "slug": "string",
- "slug_history": [
- "string"
], - "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": [
- 0
], - "cost": "string",
- "cost_scheme": "free",
- "is_published": true,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "custom": {
- "custom_field1": "value",
- "custom_field2": "value"
}
}
{- "id": 0,
- "position": 0,
- "starting_price": "string",
- "signup_url": "string",
- "slug": "string",
- "slug_history": [
- "string"
], - "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": [
- 0
], - "cost": "string",
- "cost_scheme": "free",
- "is_published": true,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "custom": {
- "custom_field1": "value",
- "custom_field2": "value"
}
}
id required | integer |
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 |
{- "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": [
- {
- "id": 0,
- "content": "string",
- "course_tab_id": 0
}
]
}
{- "id": 0,
- "position": 0,
- "starting_price": "string",
- "signup_url": "string",
- "slug": "string",
- "slug_history": [
- "string"
], - "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": [
- 0
], - "cost": "string",
- "cost_scheme": "free",
- "is_published": true,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "custom": {
- "custom_field1": "value",
- "custom_field2": "value"
}
}
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "name": "string",
- "types": [
- {
- "id": 0,
- "name": "string"
}
]
}
]
student_id | integer Filter results on student_id |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "student_id": 0,
- "credits": 0,
- "description": "string",
- "course_id": 0,
- "enrollment_id": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
]
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "name": "string",
- "discount_code": "string",
- "discount_type": "fixed",
- "amount": 0,
- "max_usage": 0,
- "usage_count": 0,
- "start_date": "2019-08-24",
- "expiration_date": "2019-08-24"
}
]
{- "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"
}
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 |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "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": {
- "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"
}
}
]
{- "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": {
- "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"
}
}
id required | integer |
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. |
{- "end_date": "string"
}
{- "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": {
- "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"
}
}
{- "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": {
- "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"
}
}
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 |
{- "grade": "string",
- "score": 0,
- "gradeable_id": 0,
- "gradeable_type": "string",
- "comment": "string",
- "enrollment_id": 0
}
{- "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"
}
{- "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"
}
id required | integer |
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 |
{- "grade": "string",
- "score": 0,
- "gradeable_id": 0,
- "gradeable_type": "string",
- "comment": "string",
- "enrollment_id": 0
}
{- "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"
}
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "name": "string",
- "percentage": "string",
- "has_vat": true
}
]
name required | string Name of the invoice vat. |
percentage required | string Number representing the VAT percentage. |
{- "name": "string",
- "percentage": "string"
}
{- "id": 0,
- "name": "string",
- "percentage": "string",
- "has_vat": true
}
account_id | integer Filter results on account_id |
status | Array of strings (InvoiceStatus) Items Enum: "concept" "deleted" "expired" "open" "paid" Filter results on status |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "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": [
- {
- "id": 0,
- "name": "string",
- "units": 0,
- "unit_price": "string",
- "invoice_vat_id": 0,
- "catalog_variant_id": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}
]
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 |
{- "account_id": 0,
- "feature": "string",
- "footnote": "string",
- "invoice_items_attributes": [
- {
- "catalog_variant_id": 0,
- "units": 0,
- "unit_price": "string",
- "name": "string",
- "invoice_vat_id": 0,
- "_destroy": true
}
]
}
{- "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": [
- {
- "id": 0,
- "name": "string",
- "units": 0,
- "unit_price": "string",
- "invoice_vat_id": 0,
- "catalog_variant_id": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}
{- "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": [
- {
- "id": 0,
- "name": "string",
- "units": 0,
- "unit_price": "string",
- "invoice_vat_id": 0,
- "catalog_variant_id": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}
id required | integer |
{- "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": [
- {
- "id": 0,
- "name": "string",
- "units": 0,
- "unit_price": "string",
- "invoice_vat_id": 0,
- "catalog_variant_id": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}
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 |
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "name": "string",
- "color": "#aa33cc",
- "model_type": "Account",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
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 |
{- "name": "string",
- "color": "string",
- "model_type": "Lead"
}
{- "id": 0,
- "name": "string",
- "color": "#aa33cc",
- "model_type": "Account",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
id required | integer |
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 |
{- "name": "string",
- "color": "string",
- "model_type": "Lead"
}
{- "id": 0,
- "name": "string",
- "color": "#aa33cc",
- "model_type": "Account",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
id required | integer |
label_id required | integer Unique identifier of the label. |
{- "label_id": 0
}
{- "errors": { },
- "code": 0,
- "message": "string"
}
cursor | string Note: It's almost never necessary to use this parameter directly, the URL
should be retrieved from the The cursor used to fetch the next result set. |
per_page | integer [ 1 .. 100 ] Default: 25 Example: per_page=10 The number of results to retrieve for this page. |
page | integer >= 1 Deprecated Default: 1 Example: page=2 Deprecated in favor of 'cursor'. When |
[- {
- "id": 0,
- "creation_method": "string",
- "referral_text": "string",
- "title": "string",
- "account_id": 0,
- "user_id": 0,
- "label_ids": [
- 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": "string",
- "wants_newsletter": true,
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "address": {
- "addressee": "string",
- "address": "string",
- "address_line2": "string",
- "postal_code": "string",
- "city": "string",
- "country": "AD",
- "state_province": "AL"
}, - "courses_leads": [
- {
- "id": 0,
- "lead_id": 0,
- "course_id": 0,
- "planned_course_id": 0
}
], - "lead_products": [
- {
- "catalog_product_id": 0,
- "catalog_variant_id": 0
}
]
}
]
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 |
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. |
{- "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