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. Client Authentication

8.1. Get OTP

Get One-Time Password

8.1.1. Request

Parameter Contraint Default Description

id

Required

The account id

8.1.2. Response

{
    "AccountOTP": "qxmg2qmbvr24ox7q"
}
Name Datatype(lenght) Description

AccountOTP

string(16)

One-Time password

9. JobPublisher™

9.1. Get all job advertisements (simple)

Get all job advertisements belonging to requested publication channel

9.1.1. Request

Parameter Contraint Default Description

channel

Required

The hash of publication channel

language

Required

The language code eg. DE

9.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

9.2. Get content of a HTML document

Get HTML document content of a job advertisement

9.2.1. Request

Parameter Contraint Default Description

id

Required

The id of HTML document

9.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)

9.3. Get all job advertisements (aggregated)

Get all job advertisements data and HTML content belonging to requested publication channel

9.3.1. Request

Parameter Contraint Default Description

channel

Required

The hash of publication channel

language

Required

The language code eg. DE

9.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)

10. Jobs

10.1. Create job

Create new job

10.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

10.1.2. Response

{
    "JobID": 13176
}
Name Datatype(lenght) Description

JobID

integer

Id of created job

11. Applications

11.1. Create application

Create new application

11.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

Email

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)

11.1.2. Response

See HTTP response status codes

12. Publication stats

12.1. Create publication stats

Create stats for a publications

12.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)

12.1.2. Response

See HTTP response status codes