1. Introduction
The Ostendis Customer API provides an open standard interface to integrate with Ostendis E-Recruiting system and use data stored in Ostendis in any system
2. General
Companies that wish to use the Ostendis Customer API will need to request access credentials.
For technical questions regarding the Ostendis Customer API, use the contact address above. Please provide the name of the company and a technical contact person.
3. Ostendis Customer API
Ostendis Customer API exposes a simple way to exchange data. It follows RESTful standards like:
-
Actions on resources are performed through HTTP methods
-
Resources are exposed with JSON format
-
API key authentication with HTTP header
-
Explicit HTTP status codes
The following chapters explain more precisely some of these concepts and provide examples in how to use this API.
4. HTTP verbs
The following verbs are fully supported :
Verb | Description |
---|---|
GET |
Used for retrieving resources, either a single object or a collection. |
POST |
Used for creating a single resource. |
5. HTTP response status codes
Status codes in HTTP responses follow REST standards.
The following table describes examples and precisions specific to Ostendis External API:
Status code | Name | Description |
---|---|---|
200 |
OK |
Success using GET for retrieving resources. |
201 |
Created |
Success using POST for creating a resource. |
400 |
Bad Request |
The server cannot or will not process the request due to something that is perceived to be a client error (e.g. wrong parameter). |
401 |
Unauthorized |
Occurs when accessing to a protected resource with bad credentials. |
500 |
Internal Server Error |
Server encountered an internal error. |
6. Headers
The following headers have to be set for some requests in order to use the API:
Header name | Value | When to use? |
---|---|---|
Accept |
application/json;charset=UTF-8 |
Every request |
Content-Type |
application/json;charset=UTF-8 |
Every request |
X-API-KEY |
<Your API key> |
Every request |
7. Request Authentication
Every request to the API must have a header X-API-KEY with your requested access creditials.
8. JobPublisher™
8.1. Get all job advertisements (simple)
Get all job advertisements belonging to requested publication channel
8.1.1. Request
Parameter | Contraint | Default | Description |
---|---|---|---|
channel |
Required |
The hash of publication channel |
|
language |
Required |
The language code eg. DE |
8.1.2. Response
[
{
"CompanyName": "Ostendis LLC",
"JobID": 12018,
"JobTitle": "Sachbearbeiter/in Finanzen 80-100%",
"JobPensumMin": 0,
"JobPensumMax": 100,
"JobType": "Festanstellung",
"JobPosition": "Fachmitarbeiter/-in mit Berufserfahrung",
"JobOccupation1": null,
"JobOccupation2": "Audit/Revision/Wirtschaftsprüfung",
"JobEducation": "Eidg. Diplom, Fachausweis, Berufsprüfung (Tertiärstufe B)",
"JobYouSwitch": 1,
"JobAccepptApplicationsFromJobServices": 0,
"JobClosingDate": {
"date": "2022-02-28 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Zurich"
},
"JobStartOfEmployment": {
"date": "2022-05-02 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Zurich"
},
"JobOwnerName": "Lara Nimble",
"JobOwnerEmail": "dr.nimble@ostendis.com",
"JobAdCompany": null,
"JobAdDepartment": null,
"JobZIPplaceOfWork": "5706",
"JobCityPlaceWork": "Boniswil",
"JobCountryCode": "CH",
"JobCountry": "Schweiz",
"JobAdTitle": "Sachbearbeiter/in Finanzen 80-100%",
"JobAdLangCode": "DE",
"JobAdPublicationDate": {
"date": "2020-12-18 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Zurich"
},
"JobAdPubPublishedFromDate": {
"date": "2022-01-18 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Zurich"
},
"JobAdPubPublishedToDate": {
"date": "2022-02-28 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Zurich"
},
"JobAdLink": "https://stage-link.ostendis.com/publication/sachbearbeiter-in-finanzen/1v6rtzvcgohwvfv3thritq57bv4djdyd5mwy202allzcdx8aybr4vmxpci5rafx7",
"JobAdApplyLink": "https://link.ostendis.com/cvdropper/6e689912dcc74085840a7fa0aac1629b/DE?src=1v6rtzvcgohwvfv3thritq57bv4djdyd5mwy202allzcdx8aybr4vmxpci5rafx7",
"JobAdApplyMailTo": "mailto:dr.nimble@ostendis.com?subject=JobID:%2012018%20-%20Sachbearbeiter/in%20Finanzen%2080-100%25",
"HTMLdocID": 1101
}
]
Name | Datatype(lenght) | Description |
---|---|---|
CompanyName |
string(100) |
Name of your company as registered by Ostendis |
JobID |
integer |
Ostendis JobID (unique) |
JobTitle |
string(100) |
Job title (can be different from job ad title) |
JobPensumMin |
integer |
Percent value between 0 and 100 |
JobPensumMax |
integer |
Percent value between 0 and 100 |
JobType |
string(50) |
Employment type |
JobPosition |
string(50) |
Employment postion |
JobOccupation1 |
string(100) |
1st Occupation (category / name) |
JobOccupation2 |
string(100) |
2nd occupation (category / name) |
JobEducation |
string(70) |
Expceted education |
JobYouSwitch |
bit |
0 = Sie / 1 = Du |
JobAccepptApplicationsFromJobServices |
bit |
0 = we don’t accept applications from job services / 1 = we accept applications from job services |
JobClosingDate |
date |
Info for applicant until when applications will be accepted (not a technical date) |
JobStartOfEmployment |
date |
planed start date of emplyoment (empty = "as soon as posible" / "by agreement" |
JobOwnerName |
string(100) |
Name of the person responsible for this job |
JobOwnerEmail |
string(100) |
Email address of the person responsible for this job |
JobAdCompany |
string(100) |
Name of the company in the job ad |
JobAdDepartment |
string(50) |
Name of the department in the job ad |
JobZIPplaceOfWork |
string(15) |
ZIP code of the work place |
JobCityPlaceWork |
string(50) |
City of the work place |
JobCountryCode |
string(2) |
2-digit country code (alpha-2 code ISO 3166) |
JobCountry |
string(50) |
Country of the work place |
JobAdTitle |
string(100) |
Title of the job ad (can be different from job title!) |
JobAdLangCode |
string(2) |
2-digit lanugage code of the job ad language |
JobAdPublicationDate |
date |
Publication date published in the job ad |
JobAdPubPublishedFromDate |
date |
Job ad will be published after / on this technical date |
JobAdPubPublishedToDate |
date |
Job ad will be published before / on this technical date |
JobAdLink |
string(2048) |
Link to the Ostendis job ad |
JobAdApplyLink |
string(2048) |
Link to the Ostendis Cvdropper™ (application form) |
JobAdApplyMailTo |
string(2048) |
Mailto string to email address of the job owner (see above JobOwnerEmail field) |
HTMLdocID |
integer |
Ostendis HTML ad unique ID |
8.2. Get content of a HTML document
Get HTML document content of a job advertisement
8.2.1. Request
Parameter | Contraint | Default | Description |
---|---|---|---|
id |
Required |
The id of HTML document |
8.2.2. Response
[
{
"HTMLdocID": "1101",
"HTMLdocOrganisationHeading": null,
"HTMLdocOrganisation": "",
"HTMLdocIntroductionHeading": null,
"HTMLdocIntroduction": "",
"HTMLdocDescriptionHeading": null,
"HTMLdocDescription": "",
"HTMLdocTasksHeading": null,
"HTMLdocTasks": "",
"HTMLdocRequirementsHeading": null,
"HTMLdocRequirements": "",
"HTMLdocBenefitsHeading": null,
"HTMLdocBenefits": "",
"HTMLdocContactHeading": null,
"HTMLdocContact": "",
"HTMLdocCallToAction": "",
"HTMLdocLogoPicURL": null,
"HTMLdocHeaderPic1URL": null,
"HTMLdocHeaderPic2URL": null,
"HTMLdocHeaderPic3URL": null,
"HTMLdocFooterPic1URL": null,
"HTMLdocFooterPic2URL": null,
"HTMLdocFooterPic3URL": null,
"HTMLdocAdditionalPic1URL": null,
"HTMLdocAdditionalPic2URL": null,
"HTMLdocAdditionalPic3URL": null,
"HTMLdocVideoURL": null
}
]
Name | Datatype(lenght) | Description |
---|---|---|
HTMLdocID |
integer |
Ostendis HTML ad unique ID |
HTMLdocOrganisationHeading |
string(200) |
(for later use) |
HTMLdocOrganisation |
string |
Description of the organisation / company in the job ad |
HTMLdocIntroductionHeading |
string(200) |
(for later use) |
HTMLdocIntroduction |
string |
Introduction text |
HTMLdocDescriptionHeading |
string(200) |
(for later use) |
HTMLdocDescription |
string |
Description of the job in the job ad |
HTMLdocTasksHeading |
string(200) |
(for later use) |
HTMLdocTasks |
string |
Description of the tasks in the job ad |
HTMLdocRequirementsHeading |
string(200) |
(for later use) |
HTMLdocRequirements |
string |
Description of the requirements in the job ad |
HTMLdocBenefitsHeading |
string(200) |
(for later use) |
HTMLdocBenefits |
string |
Description of the benefits in the job ad |
HTMLdocContactHeading |
string(200) |
(for later use) |
HTMLdocContact |
string |
Contact informations |
HTMLdocCallToAction |
string |
Call to action text |
HTMLdocLogoPicURL |
string(2048) |
(for later use) |
HTMLdocHeaderPic1URL |
string(2048) |
(for later use) |
HTMLdocHeaderPic2URL |
string(2048) |
(for later use) |
HTMLdocHeaderPic3URL |
string(2048) |
(for later use) |
HTMLdocFooterPic1URL |
string(2048) |
(for later use) |
HTMLdocFooterPic2URL |
string(2048) |
(for later use) |
HTMLdocFooterPic3URL |
string(2048) |
(for later use) |
HTMLdocAdditionalPic1URL |
string(2048) |
(for later use) |
HTMLdocAdditionalPic2URL |
string(2048) |
(for later use) |
HTMLdocAdditionalPic3URL |
string(2048) |
(for later use) |
HTMLdocVideoURL |
string(2048) |
(for later use) |
8.3. Get all job advertisements (aggregated)
Get all job advertisements data and HTML content belonging to requested publication channel
8.3.1. Request
Parameter | Contraint | Default | Description |
---|---|---|---|
channel |
Required |
The hash of publication channel |
|
language |
Required |
The language code eg. DE |
8.3.2. Response
[
{
"CompanyName": "Ostendis LLC",
"JobID": 12018,
"JobTitle": "Sachbearbeiter/in Finanzen 80-100%",
"JobPensumMin": 0,
"JobPensumMax": 100,
"JobType": "Festanstellung",
"JobPosition": "Fachmitarbeiter/-in mit Berufserfahrung",
"JobOccupation1": null,
"JobOccupation2": "Audit/Revision/Wirtschaftsprüfung",
"JobEducation": "Eidg. Diplom, Fachausweis, Berufsprüfung (Tertiärstufe B)",
"JobYouSwitch": 1,
"JobAccepptApplicationsFromJobServices": 0,
"JobClosingDate": {
"date": "2022-02-28 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Zurich"
},
"JobStartOfEmployment": {
"date": "2022-05-02 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Zurich"
},
"JobOwnerName": "Lara Nimble",
"JobOwnerEmail": "dr.nimble@ostendis.com",
"JobAdCompany": null,
"JobAdDepartment": null,
"JobZIPplaceOfWork": "5706",
"JobCityPlaceWork": "Boniswil",
"JobCountryCode": "CH",
"JobCountry": "Schweiz",
"JobAdTitle": "Sachbearbeiter/in Finanzen 80-100%",
"JobAdLangCode": "DE",
"JobAdPublicationDate": {
"date": "2020-12-18 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Zurich"
},
"JobAdPubPublishedFromDate": {
"date": "2022-01-18 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Zurich"
},
"JobAdPubPublishedToDate": {
"date": "2022-02-28 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Zurich"
},
"JobAdLink": "https://stage-link.ostendis.com/publication/sachbearbeiter-in-finanzen/1v6rtzvcgohwvfv3thritq57bv4djdyd5mwy202allzcdx8aybr4vmxpci5rafx7",
"JobAdApplyLink": "https://link.ostendis.com/cvdropper/6e689912dcc74085840a7fa0aac1629b/DE?src=1v6rtzvcgohwvfv3thritq57bv4djdyd5mwy202allzcdx8aybr4vmxpci5rafx7",
"JobAdApplyMailTo": "mailto:dr.nimble@ostendis.com?subject=JobID:%2012018%20-%20Sachbearbeiter/in%20Finanzen%2080-100%25",
"HTMLdocID": 1101,
"HTMLdocOrganisationHeading": null,
"HTMLdocOrganisation": "",
"HTMLdocIntroductionHeading": null,
"HTMLdocIntroduction": "",
"HTMLdocDescriptionHeading": null,
"HTMLdocDescription": "",
"HTMLdocTasksHeading": null,
"HTMLdocTasks": "",
"HTMLdocRequirementsHeading": null,
"HTMLdocRequirements": "",
"HTMLdocBenefitsHeading": null,
"HTMLdocBenefits": "",
"HTMLdocContactHeading": null,
"HTMLdocContact": "",
"HTMLdocCallToAction": "",
"HTMLdocLogoPicURL": null,
"HTMLdocHeaderPic1URL": null,
"HTMLdocHeaderPic2URL": null,
"HTMLdocHeaderPic3URL": null,
"HTMLdocFooterPic1URL": null,
"HTMLdocFooterPic2URL": null,
"HTMLdocFooterPic3URL": null,
"HTMLdocAdditionalPic1URL": null,
"HTMLdocAdditionalPic2URL": null,
"HTMLdocAdditionalPic3URL": null,
"HTMLdocVideoURL": null
}
]
Name | Datatype(lenght) | Description |
---|---|---|
CompanyName |
string(100) |
Name of your company as registered by Ostendis |
JobID |
integer |
Ostendis JobID (unique) |
JobTitle |
string(100) |
Job title (can be different from job ad title) |
JobPensumMin |
integer |
Percent value between 0 and 100 |
JobPensumMax |
integer |
Percent value between 0 and 100 |
JobType |
string(50) |
Employment type |
JobPosition |
string(50) |
Employment postion |
JobOccupation1 |
string(100) |
1st Occupation (category / name) |
JobOccupation2 |
string(100) |
2nd occupation (category / name) |
JobEducation |
string(70) |
Expceted education |
JobYouSwitch |
bit |
0 = Sie / 1 = Du |
JobAccepptApplicationsFromJobServices |
bit |
0 = we don’t accept applications from job services / 1 = we accept applications from job services |
JobClosingDate |
date |
Info for applicant until when applications will be accepted (not a technical date) |
JobStartOfEmployment |
date |
planed start date of emplyoment (empty = "as soon as posible" / "by agreement" |
JobOwnerName |
string(100) |
Name of the person responsible for this job |
JobOwnerEmail |
string(100) |
Email address of the person responsible for this job |
JobAdCompany |
string(100) |
Name of the company in the job ad |
JobAdDepartment |
string(50) |
Name of the department in the job ad |
JobZIPplaceOfWork |
string(15) |
ZIP code of the work place |
JobCityPlaceWork |
string(50) |
City of the work place |
JobCountryCode |
string(2) |
2-digit country code (alpha-2 code ISO 3166) |
JobCountry |
string(50) |
Country of the work place |
JobAdTitle |
string(100) |
Title of the job ad (can be different from job title!) |
JobAdLangCode |
string(2) |
2-digit lanugage code of the job ad language |
JobAdPublicationDate |
date |
Publication date published in the job ad |
JobAdPubPublishedFromDate |
date |
Job ad will be published after / on this technical date |
JobAdPubPublishedToDate |
date |
Job ad will be published before / on this technical date |
JobAdLink |
string(2048) |
Link to the Ostendis job ad |
JobAdApplyLink |
string(2048) |
Link to the Ostendis Cvdropper™ (application form) |
JobAdApplyMailTo |
string(2048) |
Mailto string to email address of the job owner (see above JobOwnerEmail field) |
HTMLdocID |
integer |
Ostendis HTML ad unique ID |
HTMLdocOrganisationHeading |
string(200) |
(for later use) |
HTMLdocOrganisation |
string |
Description of the organisation / company in the job ad |
HTMLdocIntroductionHeading |
string(200) |
(for later use) |
HTMLdocIntroduction |
string |
Introduction text |
HTMLdocDescriptionHeading |
string(200) |
(for later use) |
HTMLdocDescription |
string |
Description of the job in the job ad |
HTMLdocTasksHeading |
string(200) |
(for later use) |
HTMLdocTasks |
string |
Description of the tasks in the job ad |
HTMLdocRequirementsHeading |
string(200) |
(for later use) |
HTMLdocRequirements |
string |
Description of the requirements in the job ad |
HTMLdocBenefitsHeading |
string(200) |
(for later use) |
HTMLdocBenefits |
string |
Description of the benefits in the job ad |
HTMLdocContactHeading |
string(200) |
(for later use) |
HTMLdocContact |
string |
Contact informations |
HTMLdocCallToAction |
string |
Call to action text |
HTMLdocLogoPicURL |
string(2048) |
(for later use) |
HTMLdocHeaderPic1URL |
string(2048) |
(for later use) |
HTMLdocHeaderPic2URL |
string(2048) |
(for later use) |
HTMLdocHeaderPic3URL |
string(2048) |
(for later use) |
HTMLdocFooterPic1URL |
string(2048) |
(for later use) |
HTMLdocFooterPic2URL |
string(2048) |
(for later use) |
HTMLdocFooterPic3URL |
string(2048) |
(for later use) |
HTMLdocAdditionalPic1URL |
string(2048) |
(for later use) |
HTMLdocAdditionalPic2URL |
string(2048) |
(for later use) |
HTMLdocAdditionalPic3URL |
string(2048) |
(for later use) |
HTMLdocVideoURL |
string(2048) |
(for later use) |
9. Jobs
9.1. Create job
Create new job
9.1.1. Request
Payload
{
"AccountID": 101414,
"AccountLangCode": "DE",
"JobTitle": "SQL-Chef 66"
}
Parameter | Contraint | Datatype(lenght) | Description |
---|---|---|---|
AccountID |
Required |
integer |
The account id |
AccountLangCode |
Required |
string(2) |
The language code eg. DE |
JobTitle |
Required |
string(100) |
The job title |
9.1.2. Response
{
"JobID": 13176
}
Name | Datatype(lenght) | Description |
---|---|---|
JobID |
integer |
Id of created job |
10. Applications
10.1. Create application
Create new application
10.1.1. Request
Header
Content-Type: multipart/form-data
Body
Parameter | Contraint | Datatype(lenght) | Description |
---|---|---|---|
JobID |
Required |
integer |
The job id |
SexID |
Optional |
integer |
Applicant sex id (0 - divers, 1 - female, 2 - male) |
FirstName |
Optional |
string(50) |
Applicant first name |
LastName |
Optional |
string(50) |
Applicant last name |
Required |
string(100) |
Applicant email address |
|
Phone |
Optional |
string(50) |
Applicant phone number |
Comment |
Optional |
string(3500) |
Applicant comment |
File |
Required |
array of files |
Application files (max. 10 Files, max. 250MB) |
10.1.2. Response
See HTTP response status codes
11. Publication stats
11.1. Create publication stats
Create stats for a publications
11.1.1. Request
Header
Content-Type: multipart/form-data
Body
Parameter | Contraint | Datatype(lenght) | Description |
---|---|---|---|
TrackingHash |
Required |
integer |
Tracking hash of publication |
TypeID |
Required |
integer |
Tracking type (1 - view publication, 2 - view application form, 3 - send application form) |
11.1.2. Response
See HTTP response status codes