Download OpenAPI specification:
Hello and welcome to the Datalumni public API!
The Datalumni public API is organize around REST and uses HTTP response codes to indicate API Errors.
All requests and response bodies are encoded in JSON (application/json).
Datalumni public API endpoint is the following:
/api/public/v1/
Append this endpoint to your platform URL, depending on its configuration :
datalumni.com: https://my-school.datalumni.com/api/public/v1/https://www.my-domain.com/api/public/v1/Datalumni public API uses Bearer Authentication over HTTPS protocol.
The client must send this token in the Authorization header on every requests.
Authorization: Bearer <your-token-here>
Before you can make requests to the API, you must have generated an API token from your platform.
IMPORTANT: We only support only on API token per platform, for the time being.



Campus is a resource representing a campus. This resource is then used on UserRoles.
In order to be used, Campuses require School.has_campus = True. (Also see School API)
Update a Campus
| campus_id required | string |
| name required | string <= 100 characters unique |
{- "name": "string"
}{- "id": 0,
- "name": "string"
}Degree is a resource representing a Degree / a training course form the School. This resource is then used on UserRoles.
Addtional fields section and subsection allow Degrees to be grouped together and will be represented as a tree data structure on your platform.
Degree is always required for Student (3) and Alumni (4). More info on UserRole API.
Create a new Degree. A Degree name must be unique within a school.
| name required | string <= 255 characters unique |
| section | string or null <= 140 characters |
| subsection | string or null <= 140 characters |
{- "name": "string",
- "section": "string",
- "subsection": "string"
}{- "id": 0,
- "name": "string",
- "section": "string",
- "subsection": "string"
}Update a Degree
| degree_id required | string |
| name required | string <= 255 characters unique |
| section | string or null <= 140 characters |
| subsection | string or null <= 140 characters |
{- "name": "string",
- "section": "string",
- "subsection": "string"
}{- "id": 0,
- "name": "string",
- "section": "string",
- "subsection": "string"
}Lists are all the predefined options used in dropdown field on various forms throughout the platform.
Lists are usually available in French (fr) or English (en).
BusinessSector: Represents a business sector. Used on User's WorkExperience.ContractType: Represents a type of work contract. Used on User's WorkExperience.DegreeType: Represents a type of degree. Used on User's WorkExperience.Salary: Represents a salary range. Used on User's WorkExperience.WorkExpOpportunity: Represents the way in which the work opportunity was obtained. Used on User's WorkExperience.List all the predefined options used in dropdown field.
| scope required | string Enum: "BusinessSector" "ContractType" "DegreeType" "Salary" "WorkExpOpportunity" Type of list (please see List API) |
| locale required | string Enum: "fr" "en" Locale : "fr" (French) ; "en" (English) |
[- {
- "ext_id": 0,
- "locale": 1,
- "scope": "BusinessSector",
- "translation": "string"
}
]Profile API refers to items (Educations, Work Experiences, Hobbies) that are listed in User profile:
Education: represents a diploma-awarding academic courseWorkExperience: represents a work experienceHobby: represents a hobbyProfile items (and their IDs) are listed on User data when searching through the User Directory endpoint.
Important: Some Education resources are automatically created with UserRole (Student / Alumni, see UserRole API). In this case, the Education resource is flagged as immutable and cannot be altered.
NB: There is no create (POST) API endpoint for Profile resources. You can only perform moderation actions on User profiles.
{- "city": "string",
- "country": "string",
- "degree_type": 0,
- "description": "string",
- "facility": "string",
- "graduation": 0,
- "graduation_year": 0,
- "id": 0,
- "is_immutable": false,
- "title": "string",
- "user": 0
}Update an Education
Important: An Education resource flagged is_immutable = true cannot be altered. (see UserRole API)
| edu_id required | string |
| city | string or null <= 255 characters |
| country | string or null <= 32 characters |
| degree_type | integer or null
|
| description | string or null |
| facility required | string <= 128 characters |
| graduation | integer or null Enum: 0 1 2
|
| graduation_year | integer or null |
| title required | string <= 128 characters |
{- "city": "string",
- "country": "string",
- "degree_type": 0,
- "description": "string",
- "facility": "string",
- "graduation": 0,
- "graduation_year": 0,
- "title": "string"
}{- "city": "string",
- "country": "string",
- "degree_type": 0,
- "description": "string",
- "facility": "string",
- "graduation": 0,
- "graduation_year": 0,
- "id": 0,
- "is_immutable": false,
- "title": "string",
- "user": 0
}{- "business_sector": 0,
- "city": "string",
- "contract_type": 0,
- "country": "string",
- "current_occupation": false,
- "description": "string",
- "end_date": "2019-08-24",
- "fits_education": false,
- "id": 0,
- "is_executive": false,
- "organisation": "string",
- "salary": 0,
- "start_date": "2019-08-24",
- "title": "string",
- "user": 0,
- "workexp_opportunity": 0
}Update a Work Experience
| exp_id required | string |
| business_sector | integer or null
|
| city | string or null <= 255 characters |
| contract_type | integer or null
|
| country | string or null <= 32 characters |
| current_occupation | boolean Default: false |
| description | string or null |
| end_date | string or null <date> |
| fits_education | boolean Default: false |
| is_executive | boolean Default: false |
| organisation required | string <= 64 characters |
| salary | integer or null
|
| start_date required | string <date> |
| title required | string <= 128 characters |
| workexp_opportunity | integer or null
|
{- "business_sector": 0,
- "city": "string",
- "contract_type": 0,
- "country": "string",
- "current_occupation": false,
- "description": "string",
- "end_date": "2019-08-24",
- "fits_education": false,
- "is_executive": false,
- "organisation": "string",
- "salary": 0,
- "start_date": "2019-08-24",
- "title": "string",
- "workexp_opportunity": 0
}{- "business_sector": 0,
- "city": "string",
- "contract_type": 0,
- "country": "string",
- "current_occupation": false,
- "description": "string",
- "end_date": "2019-08-24",
- "fits_education": false,
- "id": 0,
- "is_executive": false,
- "organisation": "string",
- "salary": 0,
- "start_date": "2019-08-24",
- "title": "string",
- "user": 0,
- "workexp_opportunity": 0
}Update a Hobby
| hobby_id required | string |
| hobby required | string <= 128 characters |
{- "hobby": "string"
}{- "hobby": "string",
- "id": 0,
- "user": 0
}{- "address": "string",
- "currency": "€",
- "has_campus": false,
- "has_filter_blog": false,
- "has_filter_club": true,
- "has_filter_event": true,
- "has_filter_jobads": false,
- "has_public_pages": false,
- "id": 0,
- "mailing_email": "user@example.com",
- "mailing_sender": "<School.name>",
- "name": "string",
- "phone_countries": "string",
- "preferred_locale": 1,
- "primary_color": "#ffb600",
- "secondary_color": "#00a19b",
- "show_external": false
}Update current School data
| address | string or null <= 255 characters |
| cover | string or null <uri> Banner image displayed above navbar |
| currency | string <= 10 characters Default: "€" |
| description_photo | string or null <uri> Image used in School's description |
| has_campus | boolean Default: false Use Campus in UserRole objects |
| has_filter_blog | boolean Default: false Blog articles visibility can be restricted based on Degree or Role |
| has_filter_club | boolean |
| has_filter_event | boolean |
| has_filter_jobads | boolean Default: false Job ads visibility can be restricted based on Degree or Role |
| has_public_pages | Dasboard, About and Blog are accessible to unauthenticated users Default: false |
| icon_pwa | string or null <uri> Custom icon used for Progressive Web App |
| login_photo | string or null <uri> Background image used on login page |
| logo | string or null <uri> School logo |
| mailing_sender | string or null <= 100 characters Default: "<School.name>" Sender displayed on transactionnal emails |
| name required | string <= 255 characters |
| phone_countries | string or null <comma-separated ISO 3166-1 alpha-2> <= 32 characters ^[A-Z]{2}((,[A-Z]{2})+)?$ Country codes to be used as shortcuts on phone-related inputs |
| preferred_locale | integer Default: 1 Enum: 1 2
|
| primary_color | string <hex color> <= 7 characters Default: "#ffb600" |
| secondary_color | string <hex color> <= 7 characters Default: "#00a19b" |
| show_external | boolean Default: false External roles are listed on Directory |
{- "address": "string",
- "currency": "€",
- "has_campus": false,
- "has_filter_blog": false,
- "has_filter_club": true,
- "has_filter_event": true,
- "has_filter_jobads": false,
- "has_public_pages": false,
- "mailing_sender": "<School.name>",
- "name": "string",
- "phone_countries": "string",
- "preferred_locale": 1,
- "primary_color": "#ffb600",
- "secondary_color": "#00a19b",
- "show_external": false
}{- "address": "string",
- "currency": "€",
- "has_campus": false,
- "has_filter_blog": false,
- "has_filter_club": true,
- "has_filter_event": true,
- "has_filter_jobads": false,
- "has_public_pages": false,
- "id": 0,
- "mailing_email": "user@example.com",
- "mailing_sender": "<School.name>",
- "name": "string",
- "phone_countries": "string",
- "preferred_locale": 1,
- "primary_color": "#ffb600",
- "secondary_color": "#00a19b",
- "show_external": false
}User API allow you to manage any active / inactive Users of your platform.
This endpoint also allows you to perform User import.
User Directory.
NB: The following parameters are to be used as query parameters
| limit | integer [ 1 .. 100 ] Default: 12 Number of results to return per page. |
| offset | integer Default: 0 The initial index from which to return the results. |
| activation_date | string <YYYY-MM-DD,YYYY-MM-DD> Filter user based on their account activation date. |
| business_sector | integer <BusinessSector.id> Filter on a BusinessSector.id. (see List API) |
| campus | integer <Campus.id> Filter on a Campus.id. (see Campus API) |
| degree | integer <Degree.id> Filter on a Degree.id. (see Degree API) |
| experience_sharing | boolean Enum: true false User marked himself/herself as available to share his/her experience. |
| ext_ref | string Filter on User external reference.
|
| graduation_year | integer Filter by graduation year. |
| import_date | string <YYYY-MM-DD,YYYY-MM-DD> Filter user based on their account import date. Import date refers to the date on which User was invited. |
| is_active | string Enum: "active" "inactive" "desactive" Filter based on account status. |
| civility | integer Enum: 1 2 3
|
| is_mentor | boolean Enum: true false User has Mentor badge activated. |
| is_ambassador | boolean Enum: true false User has Ambassador flag activated. |
| jury | boolean Enum: true false User has Jury flag activated. |
| jobs_notifications | boolean Enum: true false User has weekly job notifications activated. |
| keyword | string Keyword (within |
| looking_for_mentor | boolean Enum: true false User is looking for a mentor. |
| masschat | boolean Enum: true false User agrees to receive mass chat messages. |
| newsletter | boolean Enum: true false User is subscribed to the platform's newsletter. |
| opportunities_enabled | boolean Enum: true false User has enabled "#READYTOWORK" badge on his/her profile. |
| public_to_recruiters | boolean Enum: true false User allows recruiter to see his/her profile. |
| registration_date | string <YYYY-MM-DD,YYYY-MM-DD> Filter user based on their account registration date. Registration date refers to the date on which User manually registrered. |
| role | integer Enum: 2 3 4 5 6 7 8 Filter on a Role : |
| temporary_lecturer | boolean Enum: true false User marked himself/herself as available to become a lecturer. |
| unsub | boolean Enum: true false User is unsubscribed from platform emails. |
{- "count": 123,
- "results": [
- {
- "birth_name": "string",
- "civility": 1,
- "date_birth": "2019-08-24",
- "educations": [
- {
- "city": "string",
- "country": "string",
- "degree_type": 0,
- "description": "string",
- "facility": "string",
- "graduation": 0,
- "graduation_year": 0,
- "id": 0,
- "is_immutable": false,
- "title": "string",
- "user": 0
}
], - "email": "user@example.com",
- "experiences": [
- {
- "business_sector": 0,
- "city": "string",
- "contract_type": 0,
- "country": "string",
- "current_occupation": false,
- "description": "string",
- "end_date": "2019-08-24",
- "fits_education": false,
- "id": 0,
- "is_executive": false,
- "organisation": "string",
- "salary": 0,
- "start_date": "2019-08-24",
- "title": "string",
- "user": 0,
- "workexp_opportunity": 0
}
], - "ext_ref": "string",
- "first_name": "string",
- "hobbies": [
- {
- "hobby": "string",
- "id": 0,
- "user": 0
}
], - "id": 0,
- "last_name": "string",
- "phone": "string",
- "userroles": [
- {
- "activation_date": "2019-08-24T14:15:22Z",
- "campus": 0,
- "deactivation_date": "2019-08-24T14:15:22Z",
- "degree": 0,
- "graduation_year": 0,
- "id": 0,
- "import_date": "2019-08-24T14:15:22Z",
- "registration_date": "2019-08-24T14:15:22Z",
- "role": 2,
- "user": 0
}
]
}
]
}Create a single User.
NB: A registration email will be sent to the User. This email contains a link allowing the user to finalise the creation of his/her account directly from the platform. The registration link expires after 30 days.
| birth_name | string or null <= 255 characters birth name (differs from the last_name) |
| campus required | integer or null |
| civility required | integer Enum: 1 2 3
|
| degree required | integer or null <Degree.id> Required for roles |
| email required | string <email> <= 255 characters |
| ext_ref required | string or null <= 255 characters Any identifier used in another system to identify this User |
| first_name required | string <= 255 characters |
| graduation_year required | integer or null Required for roles |
| last_name required | string <= 255 characters |
| userrole required | integer Enum: 2 3 4 5 6 7 8
|
{- "birth_name": "string",
- "campus": 0,
- "civility": 1,
- "degree": 0,
- "email": "user@example.com",
- "ext_ref": "string",
- "first_name": "string",
- "graduation_year": 0,
- "last_name": "string",
- "userrole": 2
}{- "email": "user@example.com",
- "ext_ref": "string",
- "first_name": "string",
- "id": 0,
- "last_name": "string",
- "roles": [
- {
- "activation_date": "2019-08-24T14:15:22Z",
- "campus": 0,
- "deactivation_date": "2019-08-24T14:15:22Z",
- "degree": 0,
- "ext_ref": null,
- "graduation_year": 0,
- "id": 0,
- "import_date": "2019-08-24T14:15:22Z",
- "registration_date": "2019-08-24T14:15:22Z",
- "role": 2,
- "user": 0
}
]
}Massively create Users.
⚠️ IMPORTANT: User import is performed asynchronously. This endpoint will return a task ID and a url to track task progress.
A registration email will be sent to each individual User. This email contains a link allowing the user to finalise the creation of his/her account directly from the platform. The registration link expires after 30 days.
| campus | string or null <Campus.name> <= 100 characters |
| degree required | string or null <Degree.name> <= 255 characters Required for roles |
| email required | string <email> <= 255 characters |
| ext_ref | string or null <= 255 characters Any identifier used in another system to identify this User |
| first_name required | string <= 255 characters |
| graduation_year required | integer or null [ 2100 .. 1900 ] Required for roles |
| last_name required | string <= 255 characters |
| userrole required | integer [ 2 .. 8 ] Enum: 2 3 4 5 6 7 8
|
[- {
- "campus": "string",
- "degree": "string",
- "email": "user@example.com",
- "ext_ref": "string",
- "first_name": "string",
- "graduation_year": 2100,
- "last_name": "string",
- "userrole": 2
}
]{- "task": "4879b8a6-fb3e-4a0d-aef8-b0ea469ac85c"
}Update a User
| user_id required | string |
| birth_name | string or null <= 255 characters |
| civility | integer or null Enum: 1 2 3
|
| date_birth | string or null <YYYY-MM-DD> |
| email required | string <email> <= 255 characters |
| ext_ref | string Any identifier used in another system to identify this User |
| first_name required | string <= 255 characters |
| last_name required | string <= 255 characters |
| phone | string or null <E.164> <= 16 characters |
{- "birth_name": "string",
- "civility": 1,
- "date_birth": "string",
- "email": "user@example.com",
- "ext_ref": "string",
- "first_name": "string",
- "last_name": "string",
- "phone": "string"
}{- "birth_name": "string",
- "civility": 1,
- "date_birth": "string",
- "email": "user@example.com",
- "ext_ref": "string",
- "first_name": "string",
- "id": 0,
- "last_name": "string",
- "phone": "string"
}Update User external reference (ext_ref) only.
This endpoint allows updating only the ext_ref field without modifying other user information.
| user_id required | string |
| ext_ref required | string or null <= 255 characters External reference ID from external system (e.g., ERP). Send empty string to delete. |
{- "ext_ref": "string"
}{- "ext_ref": "string"
}Retrieve detailled User profile
| user_id required | string |
{- "birth_name": "string",
- "civility": 1,
- "date_birth": "2019-08-24",
- "educations": [
- {
- "city": "string",
- "country": "string",
- "degree_type": 0,
- "description": "string",
- "facility": "string",
- "graduation": 0,
- "graduation_year": 0,
- "id": 0,
- "is_immutable": false,
- "title": "string",
- "user": 0
}
], - "email": "user@example.com",
- "experiences": [
- {
- "business_sector": 0,
- "city": "string",
- "contract_type": 0,
- "country": "string",
- "current_occupation": false,
- "description": "string",
- "end_date": "2019-08-24",
- "fits_education": false,
- "id": 0,
- "is_executive": false,
- "organisation": "string",
- "salary": 0,
- "start_date": "2019-08-24",
- "title": "string",
- "user": 0,
- "workexp_opportunity": 0
}
], - "ext_ref": "string",
- "first_name": "string",
- "hobbies": [
- {
- "hobby": "string",
- "id": 0,
- "user": 0
}
], - "id": 0,
- "last_name": "string",
- "phone": "string",
- "userroles": [
- {
- "activation_date": "2019-08-24T14:15:22Z",
- "campus": 0,
- "deactivation_date": "2019-08-24T14:15:22Z",
- "degree": 0,
- "graduation_year": 0,
- "id": 0,
- "import_date": "2019-08-24T14:15:22Z",
- "registration_date": "2019-08-24T14:15:22Z",
- "role": 2,
- "user": 0
}
]
}UserRole is the resource that links a User to a School with a given role. Possible roles are:
2 SchoolAdmin: User who manage and animate the alumni platform.3 Student: User that currently study in your School.4 Alumni: User that studied in your School in the past.5 Teacher: User that teaches in your School.6 Staff: User that is part of your School staff.7 External: User with access to your platform, but that are not directly related to your School.8 Prospect: Prospective student that should join your School shortly.NB: Your platform may not strictly follow the above definitions. Please confirm your platform's roles with your account manager.
Important, roles Student (3) and Alumni (4) have specific rules:
degree and graduation_year fields.campus field if `School.has_campus = true.Education automatically created on User profile.Statuses:
UserRole is considered inactive when activation_date = null.UserRole is considered active when activation_date != null.UserRole is considered as refused when deactivation_date != null. This usually represent User that did not pass the account validation.Create a UserRole
| activate | boolean or null Update |
| campus | integer or null <Campus.id> see Campus API |
| deactivate | boolean or null Update |
| degree | integer or null <Degree.id> see Degree API |
| graduation_year | integer or null |
| role required | integer Enum: 2 3 4 5 6 7 8
|
| user required | integer <User.id> see User API |
{- "activate": true,
- "campus": 0,
- "deactivate": true,
- "degree": 0,
- "graduation_year": 0,
- "role": 2,
- "user": 0
}{- "activation_date": "2019-08-24T14:15:22Z",
- "campus": 0,
- "deactivation_date": "2019-08-24T14:15:22Z",
- "degree": 0,
- "graduation_year": 0,
- "id": 0,
- "import_date": "2019-08-24T14:15:22Z",
- "registration_date": "2019-08-24T14:15:22Z",
- "role": 2,
- "user": 0
}{- "activation_date": "2019-08-24T14:15:22Z",
- "campus": 0,
- "deactivation_date": "2019-08-24T14:15:22Z",
- "degree": 0,
- "graduation_year": 0,
- "id": 0,
- "import_date": "2019-08-24T14:15:22Z",
- "registration_date": "2019-08-24T14:15:22Z",
- "role": 2,
- "user": 0
}Update a UserRole
| userrole_id required | string |
| activate | boolean or null Update |
| campus | integer or null <Campus.id> see Campus API |
| deactivate | boolean or null Update |
| degree | integer or null <Degree.id> see Degree API |
| graduation_year | integer or null |
| role required | integer Enum: 2 3 4 5 6 7 8
|
| user required | integer <User.id> see User API |
{- "activate": true,
- "campus": 0,
- "deactivate": true,
- "degree": 0,
- "graduation_year": 0,
- "role": 2,
- "user": 0
}{- "activation_date": "2019-08-24T14:15:22Z",
- "campus": 0,
- "deactivation_date": "2019-08-24T14:15:22Z",
- "degree": 0,
- "graduation_year": 0,
- "id": 0,
- "import_date": "2019-08-24T14:15:22Z",
- "registration_date": "2019-08-24T14:15:22Z",
- "role": 2,
- "user": 0
}