Traffit
API Endpoint
https://www.<your_traffit_name>.traffit.comSign up for API updates email newsletter - Sign up
Overview ¶
In Traffit we are sharing two types of API.
1. Public API
2. Integration API
Public API which are unauthorized endpoints that are safe to expose (like published job posts).
Integration API where you need to provide access-token
Public API ¶
Get job posts published ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/public/job_posts/published' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1' \
-H 'X-Request-Filter: {"job_post_id": {"value": "3", "comparison": "="}}' \
-H 'X-Request-Sort: {"sort_by":"id", "direction": "ASC"}'
Headers
Content-Type: application/json
X-Request-Page-Size: 2
X-Request-Current-Page: 1
X-Request-Sort: {"sort_by":id", "direction": "ASC"}
X-Request-Filter: {"job_post_id": { "value": "3", "comparison": "="} }
Headers
Content-Type: application/json
Body
[
{
"id": 2,
"advert": {
"id": 11,
"values": [
{
"field_id": "description",
"value": "<p>Some description</p>"
},
{
"field_id": "geolocation",
"value": "{\"latitude\":\"40.703870\",\"longitude\":\"-74.013854\",\"locality\":\"New York\",\"iso\":\"us\",\"region1\":\"New York\",\"postcode\":\"10004\",\"country\":\"United States\"}"
}
],
"name": "Dr. Drake Ramoray vol.2",
"recruitment": {
"client_id": 15,
"workflow_id": 1,
"id": 13,
"nr_ref": "/33/07/2020/NfT"
},
"language": "en"
},
"url": "http://<your_traffit_name>.traffit.com/public/an/NVRnPQ==",
"valid_start": "2021-05-18 09:30:00",
"valid_end": "2021-06-17 09:30:00",
"awarded": false,
"options": {
"job_type": "Temporary",
"job_location": "{\"latitude\":\"40.703870\",\"longitude\":\"-74.013854\",\"locality\":\"New York\",\"iso\":\"us\",\"region1\":\"New York\",\"postcode\":\"10004\",\"country\":\"United States\"}",
"branches": "Arts",
"emp_number": "1",
"recruitment_deadline": "2021/05/31",
"note": "some note from recruiter",
"job_type.translation": "Job type",
"job_location.translation": "Job location",
"branches.translation": "Industry",
"emp_number.translation": "Number of vacancies",
"recruitment_deadline.translation": "Deadline",
"note.translation": "Notes"
},
"huntoo_link": null
},
{
"id": 1,
"advert": {
"id": 9,
"values": [
{
"field_id": "description",
"value": "<p>Some description about second work</p>"
},
{
"field_id": "geolocation",
"value": "{\"latitude\":\"40.703870\",\"longitude\":\"-74.013854\",\"iso\":\"us\",\"locality\":\"New York\",\"region1\":\"New York\",\"postcode\":\"10004\",\"country\":\"United States\"}"
},
{
"field_id": "requirements",
"name": "Requirements",
"value": "<ul><li>complete some form of study in media, performing or visual arts would be very welcome</li><li>acting experience preferably in soap operas</li><li>great appearance and athletic figure</li></ul>"
},
{
"field_id": "responsibilities",
"name": "Responsibilities",
"value": "<ul><li>memorising lines and rehearsing</li><li>research or undertake activities to help prepare for a part</li><li>discuss interpretation and delivery with other members of the company and the director</li><li>looking good</li></ul><p><br></p>"
},
{
"field_id": "what_we_offer",
"name": "What we offer?",
"value": "<ul><li>great payment</li><li>contract for at least 10 episodes</li><li>appearance on tv on a daily basis</li><li>we basically make you a soap opera star </li></ul>"
}
],
"name": "Dr. Drake Ramoray vol.2",
"recruitment": {
"client_id": 15,
"workflow_id": 1,
"id": 13,
"nr_ref": "/33/07/2020/NfT"
},
"language": "en"
},
"url": "http://<your_traffit_name>.traffit.com/public/an/N1E9PQ==",
"valid_start": "2021-05-18 09:50:00",
"valid_end": "2021-06-17 09:50:00",
"awarded": true,
"options": {
"job_type": "Internship",
"remote": "1",
"job_location": "{\"latitude\":\"40.703870\",\"longitude\":\"-74.013854\",\"locality\":\"New York\",\"iso\":\"us\",\"region1\":\"New York\",\"postcode\":\"10004\",\"country\":\"United States\"}",
"branches": "Arts",
"emp_number": "1",
"recruitment_deadline": "2021/05/19",
"note": "some note from hiring manager",
"job_type.translation": "Job type",
"remote.translation": "Remote job",
"job_location.translation": "Job location",
"branches.translation": "Industry",
"emp_number.translation": "Number of vacancies",
"recruitment_deadline.translation": "Deadline",
"note.translation": "Notes"
},
"huntoo_link": null
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Get job posts publishedGET/public/job_posts/published
Get job posts published.
Supported headers:
X-Request-Page-Size,
X-Request-Current-Page,
Filter example:
X-Request-Filter: {"id":{"value":"5521","comparison":"="}}
Sort example:
X-Request-Sort: {"sort_by":"awarded","direction":"DESC"}
Sort by id DESC is applied by default. When sorting by other field is provided, sort by id DESC is added as a second sorting condition.
Supported comparators for sorting and filtering by system fields:
System field name | Available comparators |
---|---|
id (job_post_published_id) | = , != , <= , >= |
job_post_id (advert_id) | = , != , <= , >= |
job_id | = , != , <= , >= |
language | = , != |
awarded | = , != |
Integration API Introduction ¶
For integration with Traffit API you need to do two things:
-
Add the API client
-
Generate an access token.
Adding new API client
In Traffit we use OAuth 2 for integration. The first thing you need to do is to add an integration client.
-
Go to the Settings–> Integration with the Traffit API and click “+Add client”.
-
Write a name of your client (you can use only Latin alphabet and numbers) and press Enter. The final name of your client will be in <your_instance_name>_<your_client_name> format.
-
After that, you can choose scopes which will be allowed to be used for generating access tokens. Each scope allows to use some API endpoints connected to it. For example, the employee scope allows you to create, update and retrieve your candidates data.
What is ‘Do you use API V1?’ switch ?
In Traffit we have two versions of API. We strongly recommend you to use API V2 as we no longer support API V1 . One client can be used only for one API version. This tutorial is for API V2.
-
The ‘Generate Client Secret’ button will show up after you choose at least scope. Click on it.
-
A newly created client will show up in the summary with your unique Client Secret generated by Traffit.
Generating access token ¶
Example CURL:
curl -X POST
https://<your_traffit_name>.traffit.com/oauth2/token
-F client_id=<your_client_name>
-F client_secret=<your_client_secret>
-F grant_type=client_credentials
-F scope=employee
Headers
Content-Type: application/json
Body
{
"client_id": "<your_client_name>",
"client_secret": "<your_client_secret",
"grant_type": "client_credentials",
"scope": <scopes>
}
Headers
Content-Type: application/json
Body
{
"access_token": "<your_access_token>",
"expires_in": 2592000,
"token_type": "Bearer",
"scope": "employee"
}
Headers
Content-Type: application/json
Body
{
"error": "<oauth2_error_type>",
"error_description": "<oauth2_error_message>"
}
Generating access tokenPOST/oauth2/token
Generate OAuth token. Generated token is valid for 30 days.
Required parameters:
client_id:
It’s your client name which you have created before.
client_secret:
It’s a client secret generated by Traffit for a client which you have created before.
grant_type:
Grant type always will be client_credentials
.
scope:
One or many of the scopes which you chose for a client separated by space.
Webhooks ¶
Traffit supports various of webhook types. In order to add webhooks to your instance you can register them manually via integration API.
Currently available webhooks
Type | Description | Body |
---|---|---|
candidate_created | Candidate has been created | View body |
candidate_deleted | Candidate has been deleted | View body |
candidate_soft_deleted | Candidate has been anonymized | View body |
candidate_merged | Candidates have been merged | View body |
candidate_talent_created | Candidate has been added to talent pool | View body |
candidate_activity_deleted | Candidate activity has been deleted (only manually added activities can be deleted) | View body |
candidate_consents_created | Candidate received new consent | |
candidate_consent_withdrawal | Candidate consent has been deactivated or deleted | |
candidate_applied | Candidate applied to job via application form | View body |
candidate_added_to_job | Candidate has been added to job (manually by recruiter) | View body |
candidate_moved_in_job | Candidate has been moved in job workflow | View body |
candidate_removed_from_job | Candidate application has been deleted from job (manually by recruiter, will not be triggered when job has been deleted) | View body |
candidate_hired | Candidate has been moved to the hired stage | |
job_created | Job has been created | View body |
job_updated | Job has been updated | View body |
job_deleted | Job has been deleted | View body |
job_post_created | Job post has been created | View body |
job_post_published | Job post publish has been created | View body |
job_post_edited | Job post publish has been edited (DEPRECATED! use job_post_publish_edited instead) | |
job_post_publish_edited | Job post publish has been edited | View body |
crm_person_created | CRM person has been created | |
crm_person_updated | CRM person has been updated | |
crm_activity_deleted | CRM activity has been deleted | |
user_deactivated | User has been deactivated |
After webhook is registered, you will receive POST request on specified URL. Request will contain webhook type in headers and JSON in body with webhook related data.
For example: webhooks related to candidate will contain candidate as employee_id:
[
'employee_id' => <Candidate ID>,
'source_id' => <Source ID>
]
Headers:
X-Traffit-Event: candidate_created
Webhook body structure
{
"employee_id": "<Candidate ID>",
"source_id": "<Source ID>"
}
{
"employee_id": "<Candidate ID>"
}
{
"employee_id": "<Candidate ID>"
}
{
"main_employee_id": "<Candidate ID>",
"merged_employee_id": "<Candidate ID>"
}
{
"employee_id": "<Candidate ID>",
"talent_id": "<Talent ID>"
}
{
"employee_id": "<Candidate ID>",
"activity_id": "<Activity ID>",
"type": {
"id": "<Activity type ID>",
"value": "<Activity type name>"
}
}
{
"employee": "<Candidate ID>",
"recruitment": "<Job ID>"
}
{
"employee": "<Candidate ID>",
"recruitment": "<Job ID>"
}
{
"employee_id": "<Candidate ID>",
"recruitment_id": "<Job ID>",
"current_workflow_state": {
"id": "<Stage ID>",
"sid": "<Stage SID>",
"type": "<Stage type>"
},
"last_workflow_state": {
"id": "<Stage ID>",
"sid": "<Stage SID>"
},
"changed_by": {
"id": "<User ID>"
}
}
{
"employee_id": "<Candidate ID>",
"recruitment_id": "<Job ID>",
"employee_application_id": "<Candidate application ID>",
"deleted_by": {
"id": "<User ID>"
}
}
{
"recruitment_id": "<Job ID>"
}
{
"recruitment_id": "<Job ID>"
}
{
"recruitment_id": "<Job ID>"
}
{
"job_post_id": "<Job post ID>"
}
{
"advert_publish_id": "<Job post publish ID>"
}
{
"advert_publish_id": "<Job post publish ID>"
}
Register webhook ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/webhooks/" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
-d "{ \"type\": \"candidate_created\", \"url\": \"https://example.com/webhook\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"type": "candidate_created",
"url": "https://example.com/webhook"
}
Headers
Content-Type: application/json
Body
{
"id": 9,
"url": "https://example.com/webhook"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Remove webhook ¶
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Response-Metadata: true
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Webhook not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get webhook types ¶
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Response-Metadata: true
Headers
Content-Type: application/json
Body
[
"advert_published",
"advert_publish_edited",
"candidate_created",
"candidate_deleted",
"candidate_soft_deleted",
"candidate_merged",
"candidate_talent_created",
"candidate_activity_deleted",
"candidate_consents_created",
"candidate_consent_withdrawal",
"candidate_applied",
"candidate_added_to_job",
"candidate_moved_in_job",
"candidate_removed_from_job",
"candidate_hired",
"job_created",
"job_updated",
"job_deleted",
"crm_person_created",
"crm_person_updated",
"crm_activity_deleted",
"user_deactivated"
]
Additional fields in API ¶
What is custom field in Traffit?
In Traffit you have possibility to add your own fields to configurate entities data (candidate, job, contact person etc.). These fields can be available in the API. As for now, we don’t support File, Files and Location custom fields in API.
How can I make my custom field visible in API?
-
Go to Settings–>Fields Configuration and choose which entity fields you want to configure.
-
Select field you want to edit. In order to show it up in API you need to do two things:
- add SID value to the field
- turn on ‘Field available via integration’ switch
Fields with SIDs show up in API with ‘_’ prefix. For example if in the candidate data there is a custom field with SID available_from it will be available via API as _available_from. From now on, this field:
-
is returned in the candidate data via API (and can be used for filtering/sorting),
-
is available for POST/PATCH/PUT requests.
Example, any single candidate’s response in API with GET request with additional Available from field will look like this:
{
"id": 2288876,
"name": "Test",
"lastname": "Candidate",
"status": "active",
"files": [],
"email": "testemail@test.com",
"created_at": "2013-12-13 11:19:45",
"updated_at": "2020-02-25 08:33:08",
"updated_by": {
"id": 1794
},
"_available_from": "2020-02-29",
}
Default system fields in API
These fields are always available via API and cannot be removed from fields configuration.
Namespace | Field | SID |
---|---|---|
Candidate | First name | firstName |
Candidate | Last name | lastName |
Candidate | ||
Job | Job title | name |
Contact | Name | name |
Contact | Last name | lastname |
Contact | ||
Client | Company name | name |
User | Username | username |
User | ||
User | Permission group | permission_group |
User | Password | password |
System fields not visible by default in API
These fields are not visible via API by default. If you want to retrieve these fields via API you need to have them in fields configuration and turned on ‘Field available via integration’ switch. If the switch is not available - this field will be available via integration automatically.
System fields do not have ’_’ prefix.
Namespace | Field | SID |
---|---|---|
Candidate | Mobile phone | mobile |
Candidate | Location | location |
Candidate | Status | status |
Candidate | Candidate source | source |
Candidate | Sex | sex |
Candidate | ||
Candidate | GoldenLine | goldenline |
Candidate | ||
Candidate | Financial expectations | finance |
Candidate | Candidate about himself/herself | candidate_about |
Candidate | Availability | availability |
Candidate | Languages (besides native) | candidate_languages |
Candidate | Responsible person | owner |
Job | Job status | status |
Job | Branch | branches |
Job | Number of vacancies | emp_number |
Job | Notes | note |
Job | Job type | job_type |
Job | Remote job | remote |
Job | Deadline | recruitment_deadline |
Job | Localization | job_location |
Job | Client | client |
Job | Contact person | person |
Job | Region | regions |
Job | Reference number | nrRef |
Job | Image | image |
Client | City | city |
Client | Country | country |
Client | ||
Client | Note | note |
Client | Mobile phone | phone |
Client | Postal code | postal_code |
Client | Status | status |
Client | Street | street |
Client | TAX Number | vat_number |
Client | Company website address | www |
Client | Responsible people | owners |
Contact | Phone | phone |
Contact | Position | position |
Contact | Disabled | activityState |
User | First name | firstName |
User | Last name | lastName |
User | Photo | photo |
User | Mobile phone | phone |
Headers ¶
Available request headers
Authorization
Needed for an authorization - it should be sent in “Bearer <your_token>” format
X-Request-Page-Size
Defines how many records will be returned. Sending request without header will return maximum 10 records.
X-Request-Current-Page
Defines which page of a records will be returned. For example - if X-Request-Page-Size=10 and X-Request-Current-Page=1 the request will return first 10 records. When X-Request-Current-Page=2 - the request will return the next 10 records (on places 11-20)
X-Request-Filter
How can I filter records via API?
X-Request-Sort
How can I sort records via API?
X-Response-Metadata
If sent, the response returns information which data and in which format will be returned via API endpoint
X-Request-Metadata
If sent, the response returns information which data and in which format can be sent via API endpoint.
Available response headers
X-Result-Count
Returns how many results were returned with request
X-Result-Current-Page
Returns current page of results (same as sent via X-Request-Current-Page)
X-Result-Page-Size
Returns how much records were returned (same as sent via X-Request-Page-Size)
X-Result-Total-Count
Returns total number of records which can be retrieved via API
X-Result-Total-Pages
Returns the maximum number pages which will return not-empty response.
Filtering results
In order to filter records via API you need to use X-Request-Filter header.
As a value it accepts a JSON in format:
{
"<filter_field_1>": {
"value": "<filtered_value>",
"comparison": "<comparator>"
},
"<filter_field_2>": {
"value": "<filtered_value>",
"comparison": "<comparator>"
}
}
<filter_field_1> and <filter_field_2> are field names by which you want to filter. Each entity type (candidate, client, job etc.) has its own filter fields. Additionally you can add custom fields to the API .
For each filter field you need to define value and comparator. Between filter fields there is AND conjunction.
If you filter by phrases with special characters - you need to send their unicode: For example, instead of sending ‘café’ you need to send ‘caf\u00e9’
Available comparators:
‘=’ comparator:
Equals comparator. When used, it searches for the records with given value. Example:
{
"value": "Test",
"comparison": "="
}
‘!=’ comparator:
Not-equals comparator. When used, it searches for the records without given value. (including empty values) Example:
{
"value": "Test",
"comparison": "!="
}
‘<=’ comparator: Less/equal than comparator. When used, it searches for the records with value less/equal than/to the given one
It’s available for Date/Date and time/Number custom fields and system fields which have date or date and time. Example:
{
"value": "2020-02-29",
"comparison": "<="
}
‘>=’ comparator:
Greater/equal than comparator. When used, it searches for the records with value greater/equal than/to the given one.
It’s available for Date/Date and time/Number custom fields and system fields which have date or date and time.
Example:
{
"value": "2020-02-29",
"comparison": ">="
}
‘in’ comparator:
In comparator. When used, it searches for the records with given value. It’s available for Select multiple custom fields. It works similar to ‘=’ comparator, but for fields which can have multiple values. Example:
{
"value": "a",
"comparison": "in"
}
‘like’ comparator:
Like comparator. When used, it searches for the records with occurrence of a value. It’s available for text fields.
Example:
{
"value": "developer",
"comparison": "like"
}
It would return records with value ‘Software developer’ as also ‘Developer with 2-year experience’.
Sorting results
In order to sort records via API you need to use X-Request-Sort header.
As a value it accepts a JSON in format:
{
"<sort_field_1>": "DESC",
"<sort_field_2>": "ASC"
}
<sort_field_1> and <sort_field_2> are the field names by which you want to sort. Each entity type (candidate, client, job, etc.) has its own filter fields.
Additionally, you can add custom fields to API , by which you can sort (except Choice/Multi-choice with dictionary values and location values).
Each sort field accepts one of two values:
DESC
Sort in descending order
ASC
Sort in ascending order
The order of the sorts is based on an order of the sort fields sent in the header.
X-Request-Sort example:
This example will first sort records by name in descending order and then by the last name in ascending order.
{
"name": "DESC",
"lastname": "ASC"
}
Candidate ¶
Create new candidate ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"name\": \"New\", \"lastname\": \"Candidate\", \"email\": \"new@candidate.com\", \"guid\": null, \"source\": \"Advert\", \"synchro_time\": \"2020-08-27 09:01:15\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"name": "New",
"lastname": "Candidate",
"email": "new@candidate.com",
"guid": null,
"owner": 1,
"source": "Advert",
"synchro_time": "2020-08-27 09:01:15",
"_additional_custom_field": "Custom value"
}
Headers
Content-Type: application/json
Body
{
"id": 124
}
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Update candidate ¶
Example CURL:
curl -X PUT "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"name\": \"New\", \"lastname\": \"Candidate\", \"email\": \"new@candidate.com\", \"guid\": null, \"source\": \"Advert\", \"synchro_time\": \"2020-08-27 09:01:15\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"name": "New",
"lastname": "Candidate",
"email": "new@candidate.com",
"guid": null,
"owner": 1,
"source": "Advert",
"synchro_time": "2020-08-27 09:01:15",
"_additional_custom_field": "Custom value"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Update single fields on the candidate ¶
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"email": "new@candidate.com",
"synchro_time": "2020-08-27 09:01:15",
"_additional_custom_field": "Custom value"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get single candidate ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"id": 123,
"name": "Rachel",
"lastname": "Green",
"status": "active",
"files": [
{
"filename": "rachel_cv.pdf",
"file_uploaded": "2020-08-23 13:24:29"
}
],
"email": "rachel@ralphlaurenfriends.com",
"source": {
"id": 260,
"value": "Advert"
},
"owner": {
"id": 24
},
"created_at": "2003-10-28 07:42:59",
"updated_at": "2020-08-23 16:12:39",
"created_by": {
"id": 28
},
"updated_by": {
"id": 24
}
}
Schema
{
"id": {
"type": "integer",
"description": "Candidate id"
},
"name": {
"type": "text",
"description": "Candidate first name"
},
"lastname": {
"type": "text",
"description": "Candidate last name"
},
"files": {
"type": "array",
"description": "Informations about candidate files"
},
"source": {
"type": "object",
"description": "Source of candidate. Returns two values: name and source id"
},
"email": {
"type": "email",
"description": "Candidate email"
},
"status": {
"type": "text",
"description": "Candidate status. It's always 'active'"
},
"linkedin_id": {
"type": "text",
"description": "Candidate linkedin url"
},
"created_at": {
"type": "datetime",
"format": "yyyy-MM-dd HH:mm:ss",
"description": "Last update of candidate data"
},
"updated_at": {
"type": "datetime",
"format": "yyyy-MM-dd HH:mm:ss",
"description": "Date of the candidate last data update"
},
"created_by": {
"type": "integer",
"description": "ID of the user who created the candidate"
},
"updated_by": {
"type": "integer",
"description": "ID of the user who recently updated the candidate"
},
"guid": {
"type": "text",
"description": "Guid of the candidate. Not returned in response if is null."
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss",
"description": "Date, which can be set by client via API. Can be used for own tracking "
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "X-Get-Find-By-Guid: true"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Get-Find-By-Guid: true
Headers
Content-Type: application/json
Body
{
"id": 123,
"name": "Rachel",
"lastname": "Green",
"status": "active",
"files": [
{
"filename": "rachel_cv.pdf",
"file_uploaded": "2020-08-23 13:24:29"
}
],
"email": "rachel@ralphlaurenfriends.com",
"source": {
"id": 260,
"value": "Advert"
},
"owner": {
"id": 24
},
"created_at": "2003-10-28 07:42:59",
"updated_at": "2020-08-23 16:12:39",
"created_by": {
"id": 28
},
"updated_by": {
"id": 24
}
}
Schema
{
"id": {
"type": "integer",
"description": "Candidate id"
},
"name": {
"type": "text",
"description": "Candidate first name"
},
"lastname": {
"type": "text",
"description": "Candidate last name"
},
"files": {
"type": "array",
"description": "Informations about candidate files"
},
"source": {
"type": "object",
"description": "Source of candidate. Returns two values: name and source id"
},
"email": {
"type": "email",
"description": "Candidate email"
},
"status": {
"type": "text",
"description": "Candidate status. It's always 'active'"
},
"linkedin_id": {
"type": "text",
"description": "Candidate linkedin url"
},
"created_at": {
"type": "datetime",
"format": "yyyy-MM-dd HH:mm:ss",
"description": "Last update of candidate data"
},
"updated_at": {
"type": "datetime",
"format": "yyyy-MM-dd HH:mm:ss",
"description": "Date of the candidate last data update"
},
"created_by": {
"type": "integer",
"description": "ID of the user who created the candidate"
},
"updated_by": {
"type": "integer",
"description": "ID of the user who recently updated the candidate"
},
"guid": {
"type": "text",
"description": "Guid of the candidate. Not returned in response if is null."
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss",
"description": "Date, which can be set by client via API. Can be used for own tracking "
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Response-Metadata: true
Headers
Content-Type: application/json
Body
{
"id": 123,
"name": "Rachel",
"lastname": "Green",
"status": "active",
"files": [
{
"filename": "rachel_cv.pdf",
"file_uploaded": "2020-08-23 13:24:29"
}
],
"email": "rachel@ralphlaurenfriends.com",
"source": {
"id": 260,
"value": "Advert"
},
"owner": {
"id": 24
},
"created_at": "2003-10-28 07:42:59",
"updated_at": "2020-08-23 16:12:39",
"created_by": {
"id": 28
},
"updated_by": {
"id": 24
}
}
Schema
{
"id": {
"type": "integer",
"description": "Candidate id"
},
"name": {
"type": "text",
"description": "Candidate first name"
},
"lastname": {
"type": "text",
"description": "Candidate last name"
},
"files": {
"type": "array",
"description": "Informations about candidate files"
},
"source": {
"type": "object",
"description": "Source of candidate. Returns two values: name and source id"
},
"email": {
"type": "email",
"description": "Candidate email"
},
"status": {
"type": "text",
"description": "Candidate status. It's always 'active'"
},
"linkedin_id": {
"type": "text",
"description": "Candidate linkedin url"
},
"created_at": {
"type": "datetime",
"format": "yyyy-MM-dd HH:mm:ss",
"description": "Last update of candidate data"
},
"updated_at": {
"type": "datetime",
"format": "yyyy-MM-dd HH:mm:ss",
"description": "Date of the candidate last data update"
},
"created_by": {
"type": "integer",
"description": "ID of the user who created the candidate"
},
"updated_by": {
"type": "integer",
"description": "ID of the user who recently updated the candidate"
},
"guid": {
"type": "text",
"description": "Guid of the candidate. Not returned in response if is null."
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss",
"description": "Date, which can be set by client via API. Can be used for own tracking "
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/tags" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 28,
"name": "first_tag"
},
{
"id": 29,
"name": "second_tag"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"tags": [
"tag_name1",
"tag_name2"
]
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Bad request",
"errors": "<list_of_errors>"
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Tag not found
Headers
Content-Type: application/json
Body
[
"Tag not found"
]
Add file and assign it to the candidate ¶
Example CURL:
curl -X POST "https://www.<your_traffit_name>.traffit.com/api/integration/v2/employees/123/files/"
-H "accept: application/json"
-H "Authorization: Bearer abcdef1234"
-H "Content-Type: multipart/form-data"
-F "file[file]=@test.pdf;type=application/pdf"
-F "dictionary_file_type=CV"
-F "file[isPublic]=1"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"id": 124
}
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Could not upload file"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Add file and assign it to the candidatePOST/api/integration/v2/employees/{employee_id}/files/
Add file and assign it to the candidate
Parameter name | Example values | Description |
---|---|---|
file[file] | @file_name.jpg;type=image/jpeg |
Filename with filepath |
file[isPublic] | 0 , 1 |
Should file be public |
dictionary_file_type | CV |
File dictionary type |
- employee_id
int
(required) Example: 123Employee ID
Reject candidate in job ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/recruitments/22/states/_move_to_reject_state" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"rejection_id\": \"2\" }"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"rejection_id": "2"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Candidate or job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Reject candidate in jobPOST/api/integration/v2/employees/{employee_id}/recruitments/{recruitment_id}/states/_move_to_reject_state
- employee_id
int
(required) Example: 123Employee ID
- recruitment_id
int
(required) Example: 351Job ID
Move candidate in job to next state ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/recruitments/22/states/_move_to_next_state" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
**No transition for action**
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Candidate or job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Move candidate in job to next statePOST/api/integration/v2/employees/{employee_id}/recruitments/{recruitment_id}/states/_move_to_next_state
- employee_id
int
(required) Example: 123Employee ID
- recruitment_id
int
(required) Example: 351Job ID
Move candidate in job to state ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/recruitments/22/states/8/_move" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
**No transition for action**
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Candidate or job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Move candidate in job to statePOST/api/integration/v2/employees/{employee_id}/recruitments/{recruitment_id}/states/{state_id}/_move
- employee_id
int
(required) Example: 123Employee ID
- recruitment_id
int
(required) Example: 351Job ID
- state_id
int
(required) Example: 8State ID
Add provision to the candidate ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/provisions/321" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"recruitment\": \"111\", \"agreement_date\": \"2021-01-04\" }"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"recruitment": "111",
"agreement_date": "2021-01-04"
}
Headers
Content-Type: application/json
Body
{
"recruitment": null,
"agreement_date": "2021-01-04"
}
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate or file not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Employee is not in the recruitment"
}
Headers
Content-Type: application/json
Body
{
"error": "Cannot assign not within recruitment type provision with recruitment!"
}
Add provision to the candidatePOST/api/integration/v2/employees/{employee_id}/provisions/{provision_id}
- employee_id
int
(required) Example: 123Employee ID
- provision_id
int
(required) Example: 22Provision ID
Add many provisions to the candidate ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/provisions" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "[ { \"recruitment\": \"138\", \"provision\": \"1\", \"agreement_date\": \"2021-01-04\" }, \\
{ \"recruitment\": \"139\", \"provision\": \"2\", \"agreement_date\": \"2020-11-14\" }, \\
{ \"recruitment\": \"122\", \"provision\": \"13\", \"agreement_date\": \"2021-01-08\" }]"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
[
{
"recruitment": null,
"provision": 1,
"agreement_date": "2021-01-04"
},
{
"recruitment": 139,
"provision": 2,
"agreement_date": "2020-11-14"
},
{
"recruitment": 122,
"provision": 13,
"agreement_date": "2021-01-08"
}
]
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate or file not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Employee is not in the recruitment"
}
Headers
Content-Type: application/json
Body
{
"error": "Cannot assign not within recruitment type provision with recruitment!"
}
Get candidate jobs ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/recruitments" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Body
[
{
"recruitment": {
"id": 151,
"name": "first job"
}
},
{
"recruitment": {
"id": 102,
"name": "second job"
}
},
{
"recruitment": {
"id": 150,
"name": "third job"
}
}
]
With employee_recruitments_states
module
Body
[
{
"recruitment": {
"id": 151,
"name": "first job"
}
},
{
"recruitment": {
"id": 102,
"name": "second job"
}
},
{
"recruitment": {
"id": 150,
"name": "third job"
}
},
{
"extras": {
"employee_recruitments_states": [
{
"state": "Video call",
"recruitment_id": 102
},
{
"state": "Video call",
"recruitment_id": 102
},
{
"state": "Video call",
"recruitment_id": 102
},
{
"state": "Video call",
"recruitment_id": 150
},
{
"state": "Hired",
"recruitment_id": 151
}
]
}
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/recruitments" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "X-Additional-Modules: employee_recruitments_states"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Additional-Modules: employee_recruitments_states
Body
[
{
"recruitment": {
"id": 151,
"name": "first job"
}
},
{
"recruitment": {
"id": 102,
"name": "second job"
}
},
{
"recruitment": {
"id": 150,
"name": "third job"
}
}
]
With employee_recruitments_states
module
Body
[
{
"recruitment": {
"id": 151,
"name": "first job"
}
},
{
"recruitment": {
"id": 102,
"name": "second job"
}
},
{
"recruitment": {
"id": 150,
"name": "third job"
}
},
{
"extras": {
"employee_recruitments_states": [
{
"state": "Video call",
"recruitment_id": 102
},
{
"state": "Video call",
"recruitment_id": 102
},
{
"state": "Video call",
"recruitment_id": 102
},
{
"state": "Video call",
"recruitment_id": 150
},
{
"state": "Hired",
"recruitment_id": 151
}
]
}
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get candidate jobsGET/api/integration/v2/employees/{employee_id}/recruitments
Get candidate jobs by ID.
Required scope of authorization token: employee
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
X-Additional-Modules
- employee_id
int
(required) Example: 123Employee ID
Get candidate activities ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/activities" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 187,
"activity_date": "2020-04-27 11:16:16",
"type": {
"id": 15,
"value": "Note"
},
"content": "<p>some note</p>",
"created_by": {
"id": 18
},
"created_at": "2020-04-27 11:16:17",
"updated_at": "2020-04-27 11:16:17"
},
{
"id": 198,
"activity_date": "2020-10-28 07:48:21",
"type": {
"id": 411,
"value": "Stage in recruitment"
},
"recruitment": {
"id": 51
},
"content": {
"content": "<div><p>Comment after phone interview</p></div>",
"state": {
"id": 5,
"name": "Phone interview"
}
},
"created_by": {
"id": 28
},
"created_at": "2020-10-28 07:48:21",
"updated_at": "2020-10-28 07:48:21"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Bad comparison used."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate or file not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/activities?created_at=2020-11-01&created_at_comparison=>=" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 187,
"activity_date": "2020-04-27 11:16:16",
"type": {
"id": 15,
"value": "Note"
},
"content": "<p>some note</p>",
"created_by": {
"id": 18
},
"created_at": "2020-04-27 11:16:17",
"updated_at": "2020-04-27 11:16:17"
},
{
"id": 198,
"activity_date": "2020-10-28 07:48:21",
"type": {
"id": 411,
"value": "Stage in recruitment"
},
"recruitment": {
"id": 51
},
"content": {
"content": "<div><p>Comment after phone interview</p></div>",
"state": {
"id": 5,
"name": "Phone interview"
}
},
"created_by": {
"id": 28
},
"created_at": "2020-10-28 07:48:21",
"updated_at": "2020-10-28 07:48:21"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Bad comparison used."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate or file not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/activities?updated_at=2020-11-01&updated_at_comparison=>=&sort_by=created_at&sort_by_direction=ASC" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 187,
"activity_date": "2020-04-27 11:16:16",
"type": {
"id": 15,
"value": "Note"
},
"content": "<p>some note</p>",
"created_by": {
"id": 18
},
"created_at": "2020-04-27 11:16:17",
"updated_at": "2020-04-27 11:16:17"
},
{
"id": 198,
"activity_date": "2020-10-28 07:48:21",
"type": {
"id": 411,
"value": "Stage in recruitment"
},
"recruitment": {
"id": 51
},
"content": {
"content": "<div><p>Comment after phone interview</p></div>",
"state": {
"id": 5,
"name": "Phone interview"
}
},
"created_by": {
"id": 28
},
"created_at": "2020-10-28 07:48:21",
"updated_at": "2020-10-28 07:48:21"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Bad comparison used."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate or file not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get candidate activitiesGET/api/integration/v2/employees/{employee_id}/activities
Get candidate activities.
Required scope of authorization token: employee
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
Supported query field for filtering:
Query field name | Example values | Required comparison field | Available comparators |
---|---|---|---|
created_at | 2020-11-01 , 2021-01-04 12:10:00 |
created_at_comparison | = , != , >= , <= |
updated_at | 2020-11-01 , 2021-01-04 12:10:00 |
updated_at_comparison | = , != , >= , <= |
id | 3 |
id_comparison | = , != , >= , <= |
sort_by | created_at , updated_at |
sort_by_direction | ASC , DESC |
type | 15 (id of type in Traffit) |
type_comparison | = , != |
activity_date | 2020-11-01 , 2021-01-04 12:10:00 |
updated_at_comparison | = , != , >= , <= |
created_by_id | 1 |
created_by_id_comparison | = , != |
- employee_id
int
(required) Example: 123Employee ID
Get candidates list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/employees/' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1' \
-H 'X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="}}' \
-H 'X-Request-Sort: {"id" : "ASC"}'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
X-Request-Sort: {"id" : "ASC"}
X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="} }
Headers
Content-Type: application/json
Body
[
{
"id": 2226874,
"name": "Test",
"lastname": "Candidate",
"status": "active",
"files": [],
"email": "test111@test.com",
"created_at": "2014-08-29 16:58:27",
"updated_at": "2017-03-31 19:24:49"
},
{
"id": 2359010,
"name": "Test 2",
"lastname": "Candidate",
"status": "active",
"files": [],
"email": "test112@test.com",
"created_at": "2012-05-30 14:15:40",
"updated_at": "2012-05-30 14:16:35"
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get candidates listGET/api/integration/v2/employees/
Retrieve all your candidates
Required scope of authorization token: employee
Supported headers:
Authorization ,
X-Request-Page-Size,
X-Request-Current-Page,
X-Response-Metadata
Supported comparators for filtering by system fields:
System field name | Available comparators |
---|---|
id | = , != , <= , >= |
name | = , != , like |
lastname | = , != , like |
guid | = , != , like |
= , != , like |
|
created_at | = , != , <= , >= |
updated_at | = , != , <= , >= |
synchro_time | = , != , <= , >= |
Get candidates activities ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/activities" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 105,
"employee": {
"id": 136,
"string_represent": "John Doe"
},
"activity_date": "2020-01-21 10:53:36",
"type": {
"id": 411,
"value": "Stage in recruitment"
},
"recruitment": {
"id": 53
},
"content": {
"content": "<div><p>Comment after phone interview</p></div>",
"state": {
"id": 5,
"name": "Phone interview"
}
},
"created_by": {
"id": 18
},
"created_at": "2020-01-21 10:53:36",
"updated_at": "2020-01-21 10:53:36"
},
{
"id": 191,
"employee": {
"id": 136,
"string_represent": "John Doe"
},
"activity_date": "2020-09-15 16:00:51",
"type": {
"id": 411,
"value": "Stage in recruitment"
},
"recruitment": {
"id": 55
},
"content": {
"content": "<div><p>Second comment after phone interview</p></div>",
"state": {
"id": 5,
"name": "Phone interview"
}
},
"created_by": {
"id": 9
},
"created_at": "2020-09-15 16:00:51",
"updated_at": "2020-09-15 16:00:51"
},
{
"id": 195,
"employee": {
"id": 232,
"string_represent": "Joe Novak"
},
"activity_date": "2020-10-28 07:48:18",
"type": {
"id": 15,
"value": "Note"
},
"created_by": {
"id": 28
},
"created_at": "2020-10-28 07:48:19",
"updated_at": "2020-10-28 07:48:19"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Bad comparison used."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/activities?created_at=2020-11-01&created_at_comparison=>=" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 105,
"employee": {
"id": 136,
"string_represent": "John Doe"
},
"activity_date": "2020-01-21 10:53:36",
"type": {
"id": 411,
"value": "Stage in recruitment"
},
"recruitment": {
"id": 53
},
"content": {
"content": "<div><p>Comment after phone interview</p></div>",
"state": {
"id": 5,
"name": "Phone interview"
}
},
"created_by": {
"id": 18
},
"created_at": "2020-01-21 10:53:36",
"updated_at": "2020-01-21 10:53:36"
},
{
"id": 191,
"employee": {
"id": 136,
"string_represent": "John Doe"
},
"activity_date": "2020-09-15 16:00:51",
"type": {
"id": 411,
"value": "Stage in recruitment"
},
"recruitment": {
"id": 55
},
"content": {
"content": "<div><p>Second comment after phone interview</p></div>",
"state": {
"id": 5,
"name": "Phone interview"
}
},
"created_by": {
"id": 9
},
"created_at": "2020-09-15 16:00:51",
"updated_at": "2020-09-15 16:00:51"
},
{
"id": 195,
"employee": {
"id": 232,
"string_represent": "Joe Novak"
},
"activity_date": "2020-10-28 07:48:18",
"type": {
"id": 15,
"value": "Note"
},
"created_by": {
"id": 28
},
"created_at": "2020-10-28 07:48:19",
"updated_at": "2020-10-28 07:48:19"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Bad comparison used."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/activities?updated_at=2020-11-01&updated_at_comparison=>=&sort_by=created_at&sort_by_direction=ASC" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 105,
"employee": {
"id": 136,
"string_represent": "John Doe"
},
"activity_date": "2020-01-21 10:53:36",
"type": {
"id": 411,
"value": "Stage in recruitment"
},
"recruitment": {
"id": 53
},
"content": {
"content": "<div><p>Comment after phone interview</p></div>",
"state": {
"id": 5,
"name": "Phone interview"
}
},
"created_by": {
"id": 18
},
"created_at": "2020-01-21 10:53:36",
"updated_at": "2020-01-21 10:53:36"
},
{
"id": 191,
"employee": {
"id": 136,
"string_represent": "John Doe"
},
"activity_date": "2020-09-15 16:00:51",
"type": {
"id": 411,
"value": "Stage in recruitment"
},
"recruitment": {
"id": 55
},
"content": {
"content": "<div><p>Second comment after phone interview</p></div>",
"state": {
"id": 5,
"name": "Phone interview"
}
},
"created_by": {
"id": 9
},
"created_at": "2020-09-15 16:00:51",
"updated_at": "2020-09-15 16:00:51"
},
{
"id": 195,
"employee": {
"id": 232,
"string_represent": "Joe Novak"
},
"activity_date": "2020-10-28 07:48:18",
"type": {
"id": 15,
"value": "Note"
},
"created_by": {
"id": 28
},
"created_at": "2020-10-28 07:48:19",
"updated_at": "2020-10-28 07:48:19"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Bad comparison used."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get candidates activitiesGET/api/integration/v2/employees/activities
Get candidates activities.
Required scope of authorization token: employee
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
Supported query field for filtering:
Query field name | Example values | Required comparison field | Available comparators |
---|---|---|---|
created_at | 2020-11-01 , 2021-01-04 12:10:00 |
created_at_comparison | = , != , >= , <= |
updated_at | 2020-11-01 , 2021-01-04 12:10:00 |
updated_at_comparison | = , != , >= , <= |
id | 3 |
id_comparison | = , != , >= , <= |
sort_by | created_at , updated_at |
sort_by_direction | ASC , DESC |
type | 15 (id of type in Traffit) |
type_comparison | = , != |
activity_date | 2020-11-01 , 2021-01-04 12:10:00 |
updated_at_comparison | = , != , >= , <= |
employee_id | 231 |
employee_id_comparison | = , != |
created_by_id | 1 |
created_by_id_comparison | = , != |
Get candidates jobs history ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/recruitment_history" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 396,
"employee": {
"id": 137
},
"recruitment": {
"id": 131
},
"workflow_state": {
"id": 1,
"name": "New",
"sid": "Nowy"
},
"created_at": "2020-01-21 10:47:33",
"updated_at": "2020-01-21 10:47:33"
},
{
"id": 397,
"employee": {
"id": 136
},
"recruitment": {
"id": 128
},
"workflow_state": {
"id": 1,
"name": "New",
"sid": "Nowy"
},
"created_at": "2020-01-21 10:53:36",
"updated_at": "2020-01-21 10:53:36",
"created_by": {
"id": 18
},
"updated_by": {
"id": 18
}
}
]
Headers
Content-Type: application/json
Body
{
"error": "Bad comparison used."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/recruitment_history?created_at=2020-11-01&created_at_comparison=>=" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 396,
"employee": {
"id": 137
},
"recruitment": {
"id": 131
},
"workflow_state": {
"id": 1,
"name": "New",
"sid": "Nowy"
},
"created_at": "2020-01-21 10:47:33",
"updated_at": "2020-01-21 10:47:33"
},
{
"id": 397,
"employee": {
"id": 136
},
"recruitment": {
"id": 128
},
"workflow_state": {
"id": 1,
"name": "New",
"sid": "Nowy"
},
"created_at": "2020-01-21 10:53:36",
"updated_at": "2020-01-21 10:53:36",
"created_by": {
"id": 18
},
"updated_by": {
"id": 18
}
}
]
Headers
Content-Type: application/json
Body
{
"error": "Bad comparison used."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/recruitment_history?updated_at=2020-11-01&updated_at_comparison=>=&sort_by=created_at&sort_by_direction=ASC" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 396,
"employee": {
"id": 137
},
"recruitment": {
"id": 131
},
"workflow_state": {
"id": 1,
"name": "New",
"sid": "Nowy"
},
"created_at": "2020-01-21 10:47:33",
"updated_at": "2020-01-21 10:47:33"
},
{
"id": 397,
"employee": {
"id": 136
},
"recruitment": {
"id": 128
},
"workflow_state": {
"id": 1,
"name": "New",
"sid": "Nowy"
},
"created_at": "2020-01-21 10:53:36",
"updated_at": "2020-01-21 10:53:36",
"created_by": {
"id": 18
},
"updated_by": {
"id": 18
}
}
]
Headers
Content-Type: application/json
Body
{
"error": "Bad comparison used."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get candidates jobs historyGET/api/integration/v2/employees/recruitment_history
Get candidates jobs history.
Required scope of authorization token: employee
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
Supported query field for filtering:
Query field name | Example values | Required comparison field | Available comparators |
---|---|---|---|
created_at | 2020-11-01 , 2021-01-04 12:10:00 |
created_at_comparison | = , != , >= , <= |
updated_at | 2020-11-01 , 2021-01-04 12:10:00 |
updated_at_comparison | = , != , >= , <= |
id | 3 |
id_comparison | = , != , >= , <= |
sort_by | created_at , updated_at |
sort_by_direction | ASC , DESC |
employee_id | 3 |
- | = |
recruitment_id | 13 |
- | = |
workflow_state_type | start |
- | = |
workflow_state_id | 2 |
- | = |
Add note to the candidate ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/notes" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"title\": \"string\", \"content\": \"string\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"title": "string",
"content": "string"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Add note to the candidatePOST/api/integration/v2/employees/{employee_id}/notes
- employee_id
int
(required) Example: 123Employee ID
Get candidate talents ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/talents" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"name": "Sales managerowie",
"public": 1
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get candidate files ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/files/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
[
{
"id": 44,
"name": "rachel_cv.pdf",
"type": "employee_file_last_cv"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
File not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/123/files/123/content" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
Headers
Authorization: Bearer abcdef1234
Headers
Content-Type: Content-Type
File not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: Content-Type
File not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get candidate provisions ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/202/provisions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"communication_channels": [
"email",
"phone",
"sms"
],
"id": 352,
"provision": {
"id": 11
},
"advert": {
"id": 24
},
"recruitment": {
"id": 56
},
"withdraw_date": "2023-01-26 09:42:04",
"content": "I agree.",
"created_at": "2021-01-26 09:42:04"
},
{
"communication_channels": [
"email",
"phone",
"sms"
],
"id": 353,
"provision": {
"id": 12
},
"advert": {
"id": 24
},
"recruitment": {
"id": 56
},
"withdraw_date": "2021-02-16 12:50:24",
"content": "I agree for this also.",
"created_at": "2021-01-26 09:42:04"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/202/provisions?provision_id=11" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"communication_channels": [
"email",
"phone",
"sms"
],
"id": 352,
"provision": {
"id": 11
},
"advert": {
"id": 24
},
"recruitment": {
"id": 56
},
"withdraw_date": "2023-01-26 09:42:04",
"content": "I agree.",
"created_at": "2021-01-26 09:42:04"
},
{
"communication_channels": [
"email",
"phone",
"sms"
],
"id": 353,
"provision": {
"id": 12
},
"advert": {
"id": 24
},
"recruitment": {
"id": 56
},
"withdraw_date": "2021-02-16 12:50:24",
"content": "I agree for this also.",
"created_at": "2021-01-26 09:42:04"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/202/provisions?recruitment_id=5&provision_id=11" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12'
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"communication_channels": [
"email",
"phone",
"sms"
],
"id": 352,
"provision": {
"id": 11
},
"advert": {
"id": 24
},
"recruitment": {
"id": 56
},
"withdraw_date": "2023-01-26 09:42:04",
"content": "I agree.",
"created_at": "2021-01-26 09:42:04"
},
{
"communication_channels": [
"email",
"phone",
"sms"
],
"id": 353,
"provision": {
"id": 12
},
"advert": {
"id": 24
},
"recruitment": {
"id": 56
},
"withdraw_date": "2021-02-16 12:50:24",
"content": "I agree for this also.",
"created_at": "2021-01-26 09:42:04"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get candidate provisionsGET/api/integration/v2/employees/{employee_id}/provisions
Get candidate provisions by ID.
Required scope of authorization token: employee
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
Supported query field for filtering:
Query field name | Example values |
---|---|
advert_id | 3 |
recruitment_id | 231 |
provision_id | 33 |
- employee_id
int
(required) Example: 123Employee ID
Get candidates provisions ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/provisions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"communication_channels": [
"email",
"phone",
"sms"
],
"id": 26,
"employee": {
"id": 26
},
"provision": {
"id": 1
},
"advert": {
"id": 23
},
"withdraw_date": "2024-07-28 07:23:02",
"content": "I agree.",
"created_at": "2022-07-28 07:23:02",
"updated_at": "2022-07-28 07:23:02"
},
{
"communication_channels": [
"email",
"phone",
"sms"
],
"id": 22,
"employee": {
"id": 22
},
"provision": {
"id": 1
},
"recruitment": {
"id": 13
},
"withdraw_date": "2024-07-28 02:25:09",
"content": "I agree for this also.",
"created_at": "2022-07-28 02:25:09",
"updated_at": "2022-07-28 02:25:09"
}
]
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/provisions?sort_by=updated_at&sort_by_direction=ASC" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"communication_channels": [
"email",
"phone",
"sms"
],
"id": 26,
"employee": {
"id": 26
},
"provision": {
"id": 1
},
"advert": {
"id": 23
},
"withdraw_date": "2024-07-28 07:23:02",
"content": "I agree.",
"created_at": "2022-07-28 07:23:02",
"updated_at": "2022-07-28 07:23:02"
},
{
"communication_channels": [
"email",
"phone",
"sms"
],
"id": 22,
"employee": {
"id": 22
},
"provision": {
"id": 1
},
"recruitment": {
"id": 13
},
"withdraw_date": "2024-07-28 02:25:09",
"content": "I agree for this also.",
"created_at": "2022-07-28 02:25:09",
"updated_at": "2022-07-28 02:25:09"
}
]
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get candidates provisionsGET/api/integration/v2/employees/provisions
Get candidates provisions.
Required scope of authorization token: employee
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
Supported query field for sorting:
Query field name | Supported values | Required comparison field | Available comparators |
---|---|---|---|
sort_by | id , created_at , updated_at |
sort_by_direction | ASC , DESC |
Get candidate sources ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/sources/employees/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 12' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 12
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"domain": "Reference",
"url": "Reference",
"dictionary_item": {
"id": 168
},
"employee_application": {
"recruitment": {
"id": 1
}
}
},
{
"id": 2,
"domain": "Reference",
"url": "Reference",
"dictionary_item": {
"id": 168
},
"employee_application": {
"recruitment": {
"id": 2
}
}
},
{
"id": 5,
"domain": "Reference",
"url": "Reference",
"dictionary_item": {
"id": 168
},
"employee_application": {
"recruitment": {
"id": 3
}
}
}
]
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Job ¶
Create new job ¶
Example CURL:
curl -X PUT "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"name\": \"new recruitment\", \"guid\": \"some hash\", \"synchro_time\": \"2021-01-06 07:46:39\", \"client\": \"1\", \"workflow\": \"1\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"name": "new recruitment",
"guid": "some hash",
"synchro_time": "2021-01-06 07:46:39",
"client": "1",
"workflow": "1"
}
Headers
Content-Type: application/json
Body
{
"id": 163
}
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Update job ¶
Example CURL:
curl -X PUT "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"name\": \"new recruitment\", \"guid\": \"some hash\", \"synchro_time\": \"2021-01-06 07:46:39\", \"client\": \"1\", \"workflow\": \"1\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"name": "new recruitment",
"guid": "some hash",
"synchro_time": "2021-01-06 07:46:39",
"client": "1",
"workflow": "1"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Update single fields on the job ¶
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"name": "new job name",
"synchro_time": "2020-08-27 09:01:15",
"_additional_custom_field": "Custom value"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get single job ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"workflow_id": 3,
"id": 138,
"status": "active",
"name": "Name of recruitment",
"client": {
"id": 5,
"name": "New client"
},
"responsible_person": [
{
"id": 1,
"email": "test@example.com"
},
{
"id": 12,
"email": "test2@example.com"
}
],
"created_by": {
"id": 18
},
"updated_by": {
"id": 18
},
"created_at": "2020-02-10 08:49:39",
"updated_at": "2020-04-27 11:15:40",
"is_closed": false
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"status": {
"type": "text",
"required": false
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"guid": {
"type": "text",
"required": false
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
},
"client": {
"type": "client_entity",
"required": true,
"structure": [
"id",
"name"
]
},
"responsible_person": {
"type": "user_entity",
"required": false,
"structure": [
"id",
"email"
]
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "X-Get-Find-By-Guid: true"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Get-Find-By-Guid: true
Headers
Content-Type: application/json
Body
{
"workflow_id": 3,
"id": 138,
"status": "active",
"name": "Name of recruitment",
"client": {
"id": 5,
"name": "New client"
},
"responsible_person": [
{
"id": 1,
"email": "test@example.com"
},
{
"id": 12,
"email": "test2@example.com"
}
],
"created_by": {
"id": 18
},
"updated_by": {
"id": 18
},
"created_at": "2020-02-10 08:49:39",
"updated_at": "2020-04-27 11:15:40",
"is_closed": false
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"status": {
"type": "text",
"required": false
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"guid": {
"type": "text",
"required": false
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
},
"client": {
"type": "client_entity",
"required": true,
"structure": [
"id",
"name"
]
},
"responsible_person": {
"type": "user_entity",
"required": false,
"structure": [
"id",
"email"
]
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Response-Metadata: true
Headers
Content-Type: application/json
Body
{
"workflow_id": 3,
"id": 138,
"status": "active",
"name": "Name of recruitment",
"client": {
"id": 5,
"name": "New client"
},
"responsible_person": [
{
"id": 1,
"email": "test@example.com"
},
{
"id": 12,
"email": "test2@example.com"
}
],
"created_by": {
"id": 18
},
"updated_by": {
"id": 18
},
"created_at": "2020-02-10 08:49:39",
"updated_at": "2020-04-27 11:15:40",
"is_closed": false
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"status": {
"type": "text",
"required": false
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"guid": {
"type": "text",
"required": false
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
},
"client": {
"type": "client_entity",
"required": true,
"structure": [
"id",
"name"
]
},
"responsible_person": {
"type": "user_entity",
"required": false,
"structure": [
"id",
"email"
]
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get jobs list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1' \
-H 'X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="}}' \
-H 'X-Request-Sort: {"id" : "ASC"}'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
X-Request-Sort: {"id" : "ASC"}
X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="} }
Headers
Content-Type: application/json
Body
[
{
"id": 120,
"status": "active",
"name": "New job",
"client": {
"id": 5,
"name": "New client"
},
"created_by": {
"id": 1
},
"updated_by": {
"id": 1
},
"created_at": "2019-01-22 14:57:33",
"updated_at": "2019-01-22 14:58:13",
"is_closed": false
},
{
"id": 132,
"status": "active",
"name": "New second job",
"client": {
"id": 2,
"name": "New second client"
},
"created_by": {
"id": 18
},
"created_at": "2020-01-21 15:04:52",
"updated_at": "2020-01-22 10:08:38",
"is_closed": true,
"closing_date": "2021-06-29 08:56:17"
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get jobs listGET/api/integration/v2/recruitments/
Retrieve all your jobs
Required scope of authorization token: recruitment
Supported headers:
Authorization ,
X-Request-Page-Size,
X-Request-Current-Page,
X-Response-Metadata
Supported comparators for sorting by system fields:
System field name | Available comparators |
---|---|
id | = , != , <= , >= |
name | = , != , like |
status | = , != , like |
guid | = , != , like |
created_at | = , != , <= , >= |
updated_at | = , != , <= , >= |
Get candidates from job ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/222/employees' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1' \
-H 'X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="}}' \
-H 'X-Request-Sort: {"id": "ASC"}'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
X-Request-Sort: {"id" : "ASC"}
X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="}}
Headers
Content-Type: application/json
Body
[
{
"id": 2226874,
"name": "Test",
"lastname": "Candidate",
"status": "active",
"files": [],
"email": "test111@test.com",
"created_at": "2014-08-29 16:58:27",
"updated_at": "2017-03-31 19:24:49"
},
{
"id": 2359010,
"name": "Test 2",
"lastname": "Candidate",
"status": "active",
"files": [],
"email": "test112@test.com",
"created_at": "2012-05-30 14:15:40",
"updated_at": "2012-05-30 14:16:35"
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get candidates from jobGET/api/integration/v2/recruitments/{recruitment_id}/employees
Get candidates from the specific job
Required scope of authorization token: recruitment
Supported headers:
Authorization ,
X-Request-Page-Size,
X-Request-Current-Page,
X-Response-Metadata
Supported comparators for filtering by system fields:
System field name | Available comparators |
---|---|
id | = , != , <= , >= |
name | = , != , like |
lastname | = , != , like |
guid | = , != , like |
= , != , like |
|
created_at | = , != , <= , >= |
updated_at | = , != , <= , >= |
synchro_time | = , != , <= , >= |
- recruitment_id
int
(required) Example: 222Job ID
Add candidate to the recruitment ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/222/employees/123" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-F 'source_dictionary_item_id="381"' \
-F 'utm_source="my source"' \
-F 'utm_medium="my medium"' \
-F 'utm_campaign="my campaign"'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"source_dictionary_item_id": 89, //optional, system value is set by default
"utm_source": "my source", //optional, empty by default
"utm_medium": "my medium", //optional, empty by default
"utm_campaign": "my campaign" //optional, empty by default
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": {
"children": {
"source_dictionary_item_id": {
"errors": "<list_of_errors>"
}
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job or candidate not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Body
[
"Employee in recruitment!"
]
Add candidate to the recruitmentPOST/api/integration/v2/recruitments/{recruitment_id}/employees/{employee_id}
- recruitment_id
int
(required) Example: 222Job ID
- employee_id
int
(required) Example: 123Employee ID
Get job states ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123/states" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"name": "New",
"sid": "Nowy",
"type": "start",
"workflow": {
"id": 1
},
"time_limit": 1,
"order": 0
},
{
"id": 3,
"name": "Video call",
"workflow": {
"id": 1
},
"time_limit": 4,
"order": 1
},
{
"id": 4,
"name": "Meeting at the office",
"workflow": {
"id": 1
},
"order": 2
},
{
"id": 5,
"name": "Offer",
"workflow": {
"id": 1
},
"order": 3
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get candidates from job state ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123/states/3/employees" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 22,
"name": "Mona",
"lastname": "TheGirlfriend",
"status": "active",
"email": "mona@rossesgrlf.com"
},
{
"id": 7,
"name": "Gunther",
"lastname": "Centralperk",
"status": "active",
"email": "gunther@centralperktraffit.com",
"source": {
"id": 200,
"value": "linkedin.com"
}
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job or stage in job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get candidates from job stateGET/api/integration/v2/recruitments/{recruitment_id}/states/{state_id}/employees
Get candidates from the job on the specific state.
Required scope of authorization token: recruitment
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
- recruitment_id
int
(required) Example: 123Job ID
- state_id
int
(required) Example: 3State ID
Get job states counter ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123/states/counter" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"stateCount": "1",
"state": "1"
},
{
"stateCount": "1",
"state": "3"
},
{
"stateCount": "2",
"state": "5"
},
{
"stateCount": "1",
"state": "6"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get job states counterGET/api/integration/v2/recruitments/{recruitment_id}/states/counter
Get job states counter.
Required scope of authorization token: recruitment
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
- recruitment_id
int
(required) Example: 123Job ID
Get all job rejections ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123/rejections" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"state_type": "end-bad",
"id": 1,
"name": "Candidate refused to offer"
},
{
"state_type": "end-bad",
"id": 2,
"name": "No contact"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get all job rejectionsGET/api/integration/v2/recruitments/{recruitment_id}/rejections
Get all job rejection states.
Required scope of authorization token: recruitment
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
- recruitment_id
int
(required) Example: 123Job ID
Get job pending rejections ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123/rejections/wait" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"state_type": "wait",
"id": 14,
"name": "looks indecisive"
},
{
"state_type": "wait",
"id": 15,
"name": "high financial expectations"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get job pending rejectionsGET/api/integration/v2/recruitments/{recruitment_id}/rejections/wait
Get job pending rejection states.
Required scope of authorization token: recruitment
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
- recruitment_id
int
(required) Example: 123Job ID
Get job rejections ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123/rejections/end-bad" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"state_type": "end-bad",
"id": 4,
"name": "Refused"
},
{
"state_type": "end-bad",
"id": 5,
"name": "Has better offer"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get job rejectionsGET/api/integration/v2/recruitments/{recruitment_id}/rejections/end-bad
Get job rejection states.
Required scope of authorization token: recruitment
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
- recruitment_id
int
(required) Example: 123Job ID
Advert apply ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/adverts/11/_apply" \
-H "accept: application/json" \
-H "X-Request-Metadata: true" \
-H "Authorization: Bearer 1234" \
-H "Content-Type: application/json"
Headers
Content-Type: multipart/form-data
Authorization: Bearer abcdef1234
X-Request-Metadata: true
Headers
Content-Type: application/json
Body
{
"fields": {
"72": {
"type": "text",
"required": true,
"structure": [],
"name": "First name"
},
"77": {
"type": "traffit_choices_type",
"required": false,
"structure": [],
"multiple": true,
"choices": {
"Italian": 26,
"Polish": 42
},
"name": "What languages do you know? (besides native):"
},
"78": {
"type": "file",
"required": true,
"structure": [],
"name": "CV"
},
"provisions": {
"type": "",
"required": true,
"structure": []
}
}
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": {
"errors": [
"This form should not contain extra fields."
]
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/adverts/11/_apply" \
-H "accept: application/json" \
-H "Authorization: Bearer 1234" \
-H "Content-Type: multipart/form-data" \
-F '78=@"/path/to/file"' \
-F 'provisions[1]="1"' \
-F '72="Peter"
Headers
Content-Type: multipart/form-data
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"fields": {
"72": {
"type": "text",
"required": true,
"structure": [],
"name": "First name"
},
"77": {
"type": "traffit_choices_type",
"required": false,
"structure": [],
"multiple": true,
"choices": {
"Italian": 26,
"Polish": 42
},
"name": "What languages do you know? (besides native):"
},
"78": {
"type": "file",
"required": true,
"structure": [],
"name": "CV"
},
"provisions": {
"type": "",
"required": true,
"structure": []
}
}
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": {
"errors": [
"This form should not contain extra fields."
]
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Advert applyPOST/api/integration/v2/adverts/{advert_id}/_apply?utm_source={utm_source}&utm_campaign={utm_campaign}&utm_medium={utm_medium}
Apply
Required scope of authorization token: advert
Supported headers:
Authorization,
X-Request-Metadata (get advert structure)
- advert_id
int
(required) Example: 123- utm_source
string
(optional) Example: my_source- utm_campaign
string
(optional) Example: my_campaign- utm_medium
string
(optional) Example: my_medium
Get all job posts ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123/job_posts" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 9,
"name": "Test recruitment",
"language": "pl",
"multiposting": [],
"publications": [
{
"id": 1,
"nr_ref": "/33/07/2020/NfT",
"url": "http://traffit.local/public/an/edc9PQ==",
"valid_start": "2022-04-03 23:05:00",
"valid_end": "2022-04-03 21:38:15"
},
{
"id": 2,
"nr_ref": "/33/07/2020/NfT",
"url": "http://traffit.local/public/an/ec9PQ==",
"valid_start": "2022-04-03 23:35:00",
"valid_end": "2022-05-03 23:35:00"
}
]
},
{
"id": 10,
"name": "Test job 2",
"language": "pl",
"multiposting": [],
"publications": [
{
"id": 1,
"nr_ref": "/33/07/2020/NfT",
"url": "http://traffit.local/public/an/emAc9PQ==",
"valid_start": "2022-04-03 23:05:00",
"valid_end": "2022-04-03 21:38:15"
},
{
"id": 2,
"nr_ref": "/33/07/2020/NfT",
"url": "http://traffit.local5/public/an/emc9dPQ==",
"valid_start": "2022-04-03 23:35:00",
"valid_end": "2022-05-03 23:35:00"
}
]
}
]
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get single job posts ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/123/job_posts/9" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
{
"id": 9,
"name": "Test job post",
"language": "pl",
"url": "http://traffit.local:1025/app_dev.php/public/an/emc9PQ==",
"multiposting": [],
"publications": [
{
"id": 1,
"nr_ref": "/33/07/2020/NfT",
"url": "http://traffit.local:1025/public/an/emc9PQ==",
"valid_start": "2022-04-03 23:05:00",
"valid_end": "2022-04-03 21:38:15"
},
{
"id": 2,
"nr_ref": "/33/07/2020/NfT",
"url": "http://traffit.local:1025/public/an/emc9PQ==",
"valid_start": "2022-04-03 23:35:00",
"valid_end": "2022-05-03 23:35:00"
}
]
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Job post not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get single job postsGET/api/integration/v2/recruitments/{recruitment_id}/job_posts/{job_post_id}
Get single job posts
Required scope of authorization token: recruitment
Supported headers:
Authorization
- recruitment_id
int
(required) Example: 123Job ID
- job_post_id
int
(required) Example: 123Job post ID
Add owner/responsible person to the recruitment ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/222/owners/123" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job or user not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Body
{
"error": "User is already owner of this recruitment"
}
Add owner/responsible person to the recruitmentPOST/api/integration/v2/recruitments/{recruitment_id}/owners/{user_id}
- recruitment_id
int
(required) Example: 222Job ID
- user_id
int
(required) Example: 123User ID
Remove owner/responsible person from the recruitment ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/recruitments/222/owners/123" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 403,
"message": "Forbidden"
}
}
Job or user not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Body
{
"error": "User is not owner of this recruitment"
}
Remove owner/responsible person from the recruitmentDELETE/api/integration/v2/recruitments/{recruitment_id}/owners/{user_id}
- recruitment_id
int
(required) Example: 222Job ID
- user_id
int
(required) Example: 123User ID
Client ¶
Create new client ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/clients/" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"guid\": \"Some unique hash\", \"synchro_time\": \"2020-08-27 09:01:15\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"guid": "Some unique hash",
"synchro_time": "2020-08-27 09:01:15"
}
Headers
Content-Type: application/json
Body
{
"id": 122
}
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Update client ¶
Example CURL:
curl -X PUT "https://<your_traffit_name>.traffit.com/api/integration/v2/clients/123" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"guid\": \"Some other unique hash\", \"synchro_time\": \"2020-08-27 09:01:15\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"guid": "Some other unique hash",
"synchro_time": "2020-08-27 09:01:15"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Client not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Update single fields on the client ¶
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"synchro_time": "2020-08-27 09:01:15",
"_additional_custom_field": "Custom value"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Client not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get single client ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/clients/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"id": 5,
"created_by": {
"id": 13
},
"updated_by": {
"id": 13
},
"created_at": "2018-12-04 14:09:19",
"updated_at": "2018-12-04 14:09:19"
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"name": {
"type": "text",
"required": false
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"guid": {
"type": "text",
"required": false
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Client not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/clients/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "X-Get-Find-By-Guid: true"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Get-Find-By-Guid: true
Headers
Content-Type: application/json
Body
{
"id": 5,
"created_by": {
"id": 13
},
"updated_by": {
"id": 13
},
"created_at": "2018-12-04 14:09:19",
"updated_at": "2018-12-04 14:09:19"
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"name": {
"type": "text",
"required": false
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"guid": {
"type": "text",
"required": false
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Client not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Response-Metadata: true
Headers
Content-Type: application/json
Body
{
"id": 5,
"created_by": {
"id": 13
},
"updated_by": {
"id": 13
},
"created_at": "2018-12-04 14:09:19",
"updated_at": "2018-12-04 14:09:19"
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"name": {
"type": "text",
"required": false
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"guid": {
"type": "text",
"required": false
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Client not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get clients list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/clients/' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1' \
-H 'X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="}}' \
-H 'X-Request-Sort: {"id" : "ASC"}'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
X-Request-Sort: {"id" : "ASC"}
X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="} }
Headers
Content-Type: application/json
Body
[
{
"id": 5,
"created_by": {
"id": 13
},
"updated_by": {
"id": 13
},
"created_at": "2018-12-04 14:09:19",
"updated_at": "2018-12-04 14:09:19"
},
{
"id": 2,
"created_by": {
"id": 1
},
"updated_by": {
"id": 1
},
"created_at": "2018-04-18 21:57:13",
"updated_at": "2018-04-18 21:57:13"
},
{
"id": 6,
"created_by": {
"id": 27
},
"updated_by": {
"id": 27
},
"created_at": "2020-01-19 15:17:42",
"updated_at": "2020-01-19 15:17:42"
},
{
"id": 1,
"created_by": {
"id": 1
},
"updated_by": {
"id": 1
},
"created_at": "2018-04-03 13:29:02",
"updated_at": "2018-04-03 13:29:02"
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get clients listGET/api/integration/v2/clients/
Retrieve all your clients
Required scope of authorization token: client
Supported headers:
Authorization ,
X-Request-Page-Size,
X-Request-Current-Page,
X-Response-Metadata
Supported comparators for sorting by system fields:
System field name | Available comparators |
---|---|
id | = , != , <= , >= |
created_at | = , != , <= , >= |
updated_at | = , != , <= , >= |
synchro_time | = , != , <= , >= |
Crm_person ¶
Create new crm_person ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/crm_persons/" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"name\": \"John\", \"lastname\": \"Doe\", \"email\": \"john.doe@email.com\", \"guid\": \"some_guid\", \"synchro_time\": \"2021-01-05 12:16:19\", \"client\": 123}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"name": "John",
"lastname": "Doe",
"email": "john.doe@email.com",
"guid": "some_guid",
"synchro_time": "2021-01-05 12:16:19",
"client": 123
}
Headers
Content-Type: application/json
Body
{
"id": 7
}
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Update crm_person ¶
Example CURL:
curl -X PUT "https://<your_traffit_name>.traffit.com/api/integration/v2/crm_persons/123" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"name\": \"John\", \"lastname\": \"Doe\", \"email\": \"john.doe@email.com\", \"guid\": \"some_guid\", \"synchro_time\": \"2021-01-05 12:16:19\", \"client\": 123}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"name": "John",
"lastname": "Doe",
"email": "john.doe@email.com",
"guid": "some_guid",
"synchro_time": "2021-01-05 12:16:19",
"client": 123
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Crm_person not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Update single fields on the crm_person ¶
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"lastname": "Doe",
"email": "john.doe@email.com"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Crm_person not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Update single fields on the crm_personPATCH/api/integration/v2/crm_person/{crm_person_id}
Update selected fields on the crm_person.
Required scope of authorization token: crm_person
Supported headers:
Authorization,
X-Request-Metadata
- crm_person_id
int
(required) Example: 123Crm_person ID
Get single crm_person ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/crm_persons/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"id": 5,
"name": "John",
"lastname": "Doe",
"email": "john@doe.com",
"created_by": {
"id": 2
},
"updated_by": {
"id": 2
},
"created_at": "2018-09-04 14:03:28",
"updated_at": "2018-09-04 14:03:28",
"client": {
"id": 1
}
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"name": {
"type": "text",
"required": false
},
"lastname": {
"type": "text",
"required": true
},
"email": {
"type": "email",
"required": false
},
"status": {
"type": "text",
"required": false
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"guid": {
"type": "text",
"required": false
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
},
"client": {
"type": "entity",
"required": true,
"structure": []
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Crm_person not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/crm_persons/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "X-Get-Find-By-Guid: true"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Get-Find-By-Guid: true
Headers
Content-Type: application/json
Body
{
"id": 5,
"name": "John",
"lastname": "Doe",
"email": "john@doe.com",
"created_by": {
"id": 2
},
"updated_by": {
"id": 2
},
"created_at": "2018-09-04 14:03:28",
"updated_at": "2018-09-04 14:03:28",
"client": {
"id": 1
}
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"name": {
"type": "text",
"required": false
},
"lastname": {
"type": "text",
"required": true
},
"email": {
"type": "email",
"required": false
},
"status": {
"type": "text",
"required": false
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"guid": {
"type": "text",
"required": false
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
},
"client": {
"type": "entity",
"required": true,
"structure": []
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Crm_person not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Response-Metadata: true
Headers
Content-Type: application/json
Body
{
"id": 5,
"name": "John",
"lastname": "Doe",
"email": "john@doe.com",
"created_by": {
"id": 2
},
"updated_by": {
"id": 2
},
"created_at": "2018-09-04 14:03:28",
"updated_at": "2018-09-04 14:03:28",
"client": {
"id": 1
}
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"name": {
"type": "text",
"required": false
},
"lastname": {
"type": "text",
"required": true
},
"email": {
"type": "email",
"required": false
},
"status": {
"type": "text",
"required": false
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"guid": {
"type": "text",
"required": false
},
"synchro_time": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
},
"client": {
"type": "entity",
"required": true,
"structure": []
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Crm_person not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get single crm_personGET/api/integration/v2/crm_persons/{crm_person_id}
Get a single crm_person by ID or guid.
Required scope of authorization token: crm_person
Supported headers:
Authorization,
X-Get-Find-By-Guid,
X-Response-Metadata
- crm_person_id
int
(required) Example: 123Crm_person ID
Get crm_persons list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/crm_persons/' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1' \
-H 'X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="}}' \
-H 'X-Request-Sort: {"id" : "ASC"}'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
X-Request-Sort: {"id" : "ASC"}
X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="} }
Headers
Content-Type: application/json
Body
[
{
"id": 5,
"name": "John",
"lastname": "Doe",
"email": "john@doe.com",
"created_by": {
"id": 2
},
"updated_by": {
"id": 2
},
"created_at": "2018-09-04 14:03:28",
"updated_at": "2018-09-04 14:03:28",
"client": {
"id": 1
}
},
{
"id": 2,
"name": "Jack",
"lastname": "Martins",
"email": "jack@martins.com",
"created_by": {
"id": 1
},
"updated_by": {
"id": 1
},
"created_at": "2018-04-03 13:30:34",
"updated_at": "2018-04-03 13:30:34",
"client": {
"id": 1
}
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get crm_persons listGET/api/integration/v2/crm_persons/
Retrieve all your crm_persons
Required scope of authorization token: crm_persons
Supported headers:
Authorization ,
X-Request-Page-Size,
X-Request-Current-Page,
X-Response-Metadata
Supported comparators for sorting by system fields:
System field name | Available comparators |
---|---|
id | = , != , <= , >= |
created_at | = , != , <= , >= |
updated_at | = , != , <= , >= |
synchro_time | = , != , <= , >= |
name | = , != , like |
lastname | = , != , like |
guid | = , != , like |
= , != , like |
File ¶
Upload file ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/employees/" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: multipart/form-data"
-F "file=@file_name.jpg;type=image/jpeg" -F "name=myfile" -F "isPublic=0"
Headers
Content-Type: multipart/form-data
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"id": 124
}
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": "Request Entity Too Large."
}
Job post ¶
Get single job post ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/adverts_publish/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"advert_id": 96,
"id": 17,
"nr_ref": "/2/10/2020/WT",
"url": "https://your_traffit_name.traffit.com/public/an/hash",
"valid_start": "2020-11-16 07:50:00",
"valid_end": "2020-12-16 07:50:00",
"awarded": false
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"advert_id": {
"type": "integer",
"required": true
},
"nr_ref": {
"type": "text",
"required": false
},
"name": {
"type": "text",
"required": true
},
"url": {
"type": "text",
"required": true
},
"description": {
"type": "text",
"required": false
},
"valid_start": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
},
"valid_end": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
},
"awarded": {
"type": "bool",
"required": true,
"choices": [
true,
false
]
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Job post not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Response-Metadata: true
Headers
Content-Type: application/json
Body
{
"advert_id": 96,
"id": 17,
"nr_ref": "/2/10/2020/WT",
"url": "https://your_traffit_name.traffit.com/public/an/hash",
"valid_start": "2020-11-16 07:50:00",
"valid_end": "2020-12-16 07:50:00",
"awarded": false
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"advert_id": {
"type": "integer",
"required": true
},
"nr_ref": {
"type": "text",
"required": false
},
"name": {
"type": "text",
"required": true
},
"url": {
"type": "text",
"required": true
},
"description": {
"type": "text",
"required": false
},
"valid_start": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
},
"valid_end": {
"type": "datetime",
"required": false,
"format": "yyyy-MM-dd HH:mm:ss"
},
"awarded": {
"type": "bool",
"required": true,
"choices": [
true,
false
]
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Job post not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Form ¶
Get application form ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/form/fields/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
[
{
"required_fields": {
"44": {
"properties": {
"45": {
"115": {
"id": 115,
"name": "Name",
"sid": "firstName",
"required": true,
"type": "structure_virtual",
"order": 0,
"required_Fields": "n/a"
},
"116": {
"id": 116,
"name": "Surname",
"sid": "lastName",
"required": true,
"type": "structure_virtual",
"order": 1,
"required_Fields": "n/a"
}
},
"46": []
},
"provisions": [
{
"id": 1,
"required": true,
"name": "First consent",
"content": "Some consent content"
},
{
"id": 2,
"required": true,
"name": "Second consent",
"content": "Some consent content"
}
]
}
}
},
{
"example": {
"dynamic_form[properties][45][115]": "Name",
"dynamic_form[properties][45][116]": "Surname",
"dynamic_form[provisions][1]": "true/false",
"dynamic_form[provisions][2]": "true/false",
}
}
]
Headers
Content-Type: application/json
Body
{
"error": "Application form is not created"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Advert not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
User ¶
Create new user ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/users/" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"username\": \"john@doe.com\", \"permission_group\": \"1\", \"email\": \"john@doe.com\", \"password\": { \"first\": \"passwordThatIsHardToHack\", \"second\": \"passwordThatIsHardToHack\" }, \"group_id\": 1}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"username": "john@doe.com",
"permission_group": 1,
"email": "john@doe.com",
"password": {
"first": "passwordThatIsHardToHack",
"second": "passwordThatIsHardToHack"
},
"group_id": 3
}
Headers
Content-Type: application/json
Body
{
"id": 124
}
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Update user ¶
Example CURL:
curl -X PATCH "https://<your_traffit_name>.traffit.com/api/integration/v2/users/{user_id}" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"username\": \"john@doe.com\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"username": "john@doe.com"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": "You cannot modify sample user"
}
Get single user ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/users/35" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"username": "john@doe.com",
"email": "john@doe.com",
"created_by": {
"id": 19
},
"updated_by": {
"id": 19
},
"id": 35,
"user_group": {
"id": 1,
"name": "foo"
},
"permission_group": {
"id": 1,
"name": "Administrator"
},
"updated_at": "2022-08-03 13:25:14",
"is_active": true
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"username": {
"type": "text",
"required": true
},
"permission_group": {
"type": "text",
"required": false
},
"email": {
"type": "email",
"required": true
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"is_active": {
"type": "bool",
"required": true,
"choices": [
true,
false
]
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
User not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Response-Metadata: true
Headers
Content-Type: application/json
Body
{
"username": "john@doe.com",
"email": "john@doe.com",
"created_by": {
"id": 19
},
"updated_by": {
"id": 19
},
"id": 35,
"user_group": {
"id": 1,
"name": "foo"
},
"permission_group": {
"id": 1,
"name": "Administrator"
},
"updated_at": "2022-08-03 13:25:14",
"is_active": true
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"username": {
"type": "text",
"required": true
},
"permission_group": {
"type": "text",
"required": false
},
"email": {
"type": "email",
"required": true
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"is_active": {
"type": "bool",
"required": true,
"choices": [
true,
false
]
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
User not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get users list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/users/' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1' \
-H 'X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="}}' \
-H 'X-Request-Sort: {"id" : "ASC"}'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
X-Request-Sort: {"id" : "ASC"}
X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="} }
Headers
Content-Type: application/json
Body
[
{
"username": "john.doe@traffit.com",
"email": "john.doe@traffit.com",
"updated_by": {
"id": 19
},
"id": 19,
"user_group": {
"id": 1,
"name": "foo"
},
"permission_group": {
"id": 9,
"name": "Administrator"
},
"updated_at": "2022-08-03 13:25:14",
"is_active": false
},
{
"username": "nicole.doe@traffit.com",
"email": "nicole.doe@traffit.com",
"id": 22,
"user_group": {
"id": 1,
"name": "foo"
},
"permission_group": {
"id": 1,
"name": "Administrator"
},
"updated_at": "2022-05-03 13:25:14",
"is_active": true
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get users listGET/api/integration/v2/users/
Retrieve all your users
Required scope of authorization token: user
Supported headers:
Authorization ,
X-Request-Page-Size,
X-Request-Current-Page,
X-Response-Metadata
Supported comparators for sorting by system fields:
System field name | Available comparators |
---|---|
id | = , != , <= , >= |
username | = , != , like |
= , != , like |
Enable user ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/users/{user_id}/_enable" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error": "User is already enabled."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Headers
Content-Type: application/json
Body
{
"error": "Limit has been reached!"
}
Disable user ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/users/{user_id}/_disable" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error": "User is already disabled."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get user groups list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/users/groups/' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1' \
-H 'X-Request-Sort: {"name" : "ASC"}'
-H 'X-Request-Filter: {"name": {"value": "fo", "comparison": "like"}, "external_id": {"value": "111", "comparison": "like"}}' \
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
X-Request-Sort: {"name" : "ASC"}
X-Request-Filter: {"name": {"value": "fo", "comparison": "like"}, "external_id": {"value": "111", "comparison": "like"}}
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"name": "foo",
"status": "active",
"external_id": "111111"
},
{
"id": 2,
"name": "bar",
"status": "active",
"external_id": "111112"
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get user groups listGET/api/integration/v2/users/groups/
Retrieve all your user groups
Required scope of authorization token: user
Supported headers:
Authorization ,
X-Request-Page-Size,
X-Request-Current-Page,
Supported comparators for sorting by system fields:
System field name | Available comparators |
---|---|
name | = , != , like |
external_id | = , != , like |
Add user to a group ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/users/{user_id}/groups/{group_id}" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error": "User is already in this group."
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get user permission groups list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/users/permission_groups/' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1' \
-H 'X-Request-Sort: {"name" : "ASC"}'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
X-Request-Sort: {"name" : "ASC"}
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"name": "Administrators",
"description": "This is group of administrators. All permissions."
},
{
"id": 2,
"name": "Recruiters",
"description": "This is group of recruiters. Permissions to jobs only."
},
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Crm_activity ¶
Get single crm_activity ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/crm_activities/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"id": 123,
"client": {
"id": 1
},
"created_at": "2018-09-04 14:04:34",
"updated_at": "2018-09-04 14:04:34",
"created_by": {
"id": 2
},
"updated_by": {
"id": 2
}
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"client": {
"type": "client_entity",
"required": true,
"structure": [
"id"
]
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Crm_activity not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Response-Metadata: true
Headers
Content-Type: application/json
Body
{
"id": 123,
"client": {
"id": 1
},
"created_at": "2018-09-04 14:04:34",
"updated_at": "2018-09-04 14:04:34",
"created_by": {
"id": 2
},
"updated_by": {
"id": 2
}
}
Schema
{
"fields": {
"id": {
"type": "integer",
"required": true
},
"client": {
"type": "client_entity",
"required": true,
"structure": [
"id"
]
},
"created_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"updated_by": {
"type": "user_entity",
"required": true,
"structure": [
"id"
]
},
"created_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "datetime",
"required": true,
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Crm_activity not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get crm_activities list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/crm_activities/' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1' \
-H 'X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="}}' \
-H 'X-Request-Sort: {"id" : "ASC"}'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
X-Request-Sort: {"id" : "ASC"}
X-Request-Filter: {"created_at": {"value": "2020-01-02", "comparison": "<="} }
Headers
Content-Type: application/json
Body
[
{
"id": 5,
"client": {
"id": 1
},
"created_at": "2018-09-04 14:04:34",
"updated_at": "2018-09-04 14:04:34",
"created_by": {
"id": 2
},
"updated_by": {
"id": 2
}
},
{
"id": 8,
"client": {
"id": 5
},
"created_at": "2019-01-21 14:35:05",
"updated_at": "2019-01-21 14:35:05",
"created_by": {
"id": 1
},
"updated_by": {
"id": 1
}
},
{
"id": 9,
"client": {
"id": 5
},
"created_at": "2019-12-10 08:30:31",
"updated_at": "2019-12-10 08:30:31",
"created_by": {
"id": 18
},
"updated_by": {
"id": 18
}
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get crm_activities listGET/api/integration/v2/crm_activities/
Retrieve all your crm_activities
Required scope of authorization token: crm_activity
Supported headers:
Authorization ,
X-Request-Page-Size,
X-Request-Current-Page,
X-Response-Metadata
Supported comparators for sorting by system fields:
System field name | Available comparators |
---|---|
id | = , != , <= , >= |
created_at | = , != , <= , >= |
updated_at | = , != , <= , >= |
Provision ¶
Get provisions list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/provisions' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"name": "Consent name",
"start_date": "2018-04-02 00:00:00",
"closing_date": "2020-03-29 00:00:00",
"content": "Consent text.",
"is_active": true,
"language": "pl",
"type": {
"id": 14,
"sys_name": "provision_e",
"value": "Dictionary value name"
},
"updated_at": "2022-07-01 13:09:21"
},
{
"id": 2,
"name": "Second Consent name",
"start_date": "2018-04-02 00:00:00",
"closing_date": "2030-12-31 00:00:00",
"content": "Second consent text.",
"is_active": false,
"language": "pl",
"type": {
"id": 10,
"sys_name": "provision_a",
"value": "Dictionary value name"
},
"updated_at": "2022-05-01 13:09:21"
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/provisions?is_active=1' \
-H 'Authorization: Bearer abcdef1234'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"name": "Consent name",
"start_date": "2018-04-02 00:00:00",
"closing_date": "2020-03-29 00:00:00",
"content": "Consent text.",
"is_active": true,
"language": "pl",
"type": {
"id": 14,
"sys_name": "provision_e",
"value": "Dictionary value name"
},
"updated_at": "2022-07-01 13:09:21"
},
{
"id": 2,
"name": "Second Consent name",
"start_date": "2018-04-02 00:00:00",
"closing_date": "2030-12-31 00:00:00",
"content": "Second consent text.",
"is_active": false,
"language": "pl",
"type": {
"id": 10,
"sys_name": "provision_a",
"value": "Dictionary value name"
},
"updated_at": "2022-05-01 13:09:21"
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get provisions listGET/api/integration/v2/provisions
Retrieve all your provisions
Required scope of authorization token: provision
Supported headers:
Authorization ,
X-Request-Page-Size,
X-Request-Current-Page,
Supported query field for filtering:
Query field name | Example values | Description |
---|---|---|
language | en , pl |
Provision language |
is_active | 1 , 0 |
Is provision still active |
type | 14 , 10 |
Type identifier from Traffit |
Get provision types ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/provisions/types' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 10,
"sys_name": "provision_a",
"value": "Consent as part of the current recruitment"
},
{
"id": 13,
"sys_name": "provision_d",
"value": "Marketing agreement"
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Talent ¶
Add many candidates to talent ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/talents/{talent_id}/employees:batchAdd" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"employees\": [ 140,141 ]}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"employees": [
140,
141
]
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Talent not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Add many candidates to talentPOST/api/integration/v2/talents/{talent_id}/employees:batchAdd
- talent_id
int
(required) Example: 123Talent ID
Remove many candidates from talent ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/talents/{talent_id}/employees:batchDelete" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"employees\": [ 140,141 ]}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"employees": [
140,
141
]
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Talent not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Remove many candidates from talentPOST/api/integration/v2/talents/{talent_id}/employees:batchDelete
- talent_id
int
(required) Example: 123Talent ID
Get talents list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/talents' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"name": "Sales managerowie"
},
{
"id": 2,
"name": "Jr Frontend developerzy"
},
{
"id": 4,
"name": "talent01"
},
{
"id": 5,
"name": "dsds"
},
{
"extras": {
"talent_employees_counter": [
{
"employees": "2",
"id": 1
},
{
"employees": "0",
"id": 2
},
{
"employees": "0",
"id": 4
},
{
"employees": "1",
"id": 5
}
]
}
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/talents?id=5' \
-H 'Authorization: Bearer abcdef1234'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"name": "Sales managerowie"
},
{
"id": 2,
"name": "Jr Frontend developerzy"
},
{
"id": 4,
"name": "talent01"
},
{
"id": 5,
"name": "dsds"
},
{
"extras": {
"talent_employees_counter": [
{
"employees": "2",
"id": 1
},
{
"employees": "0",
"id": 2
},
{
"employees": "0",
"id": 4
},
{
"employees": "1",
"id": 5
}
]
}
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/talents" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "X-Additional-Modules: talent_employees_counter"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Additional-Modules: talent_employees_counter
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"name": "Sales managerowie"
},
{
"id": 2,
"name": "Jr Frontend developerzy"
},
{
"id": 4,
"name": "talent01"
},
{
"id": 5,
"name": "dsds"
},
{
"extras": {
"talent_employees_counter": [
{
"employees": "2",
"id": 1
},
{
"employees": "0",
"id": 2
},
{
"employees": "0",
"id": 4
},
{
"employees": "1",
"id": 5
}
]
}
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get talents listGET/api/integration/v2/talents
Retrieve all your talents
Required scope of authorization token: talent
Supported headers:
Authorization ,
X-Request-Page-Size,
X-Request-Current-Page,
X-Additional-Modules
Supported query field for filtering:
Query field name | Example values |
---|---|
id | 3 |
name | talent_nr_1 , talent_name_2 |
Create talent ¶
Example CURL:
curl -X POST "https://<your_traffit_name>.traffit.com/api/integration/v2/talents/" \
-H "accept: application/json" \
-H "Authorization: token" \
-H "Content-Type: application/json" \
-d "{ \"name\": \"talent_name\", \"public\": 1, \"description\": \"some description\", \"colour\": \"blue-grey\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"name": "talent_name",
"public": 1,
"description": "some description",
"colour": "blue-grey"
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Source ¶
Get single source ¶
Example CURL:
curl -X GET "https://<your_traffit_name>.traffit.com/api/integration/v2/sources/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"id": 1,
"domain": "traffit",
"url": "http://traffit.com",
"dictionaryItem": {
"id" => 1
},
"externalId": "abc12333",
"employee": {
"id" => 1
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Source not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get sources list ¶
Example CURL:
curl -X GET 'https://<your_traffit_name>.traffit.com/api/integration/v2/sources' \
-H 'Authorization: Bearer abcdef1234' \
-H 'X-Request-Page-Size: 2' \
-H 'X-Request-Current-Page: 1'
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
X-Request-Page-Size: 2
X-Request-Current-Page: 1
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"domain": "traffit",
"url": "http://traffit.com",
"dictionaryItem": {
"id" => 1
},
"externalId": "abc12333",
"employee": {
"id" => 1
}
},
{
"id": 2,
"domain": "traffit",
"url": "http://traffit.com",
"dictionaryItem": {
"id" => 1
},
"externalId": "abc12333",
"employee": {
"id" => 1
}
}
]
Headers
Content-Type: application/json
Body
{
"error": {
"code": 400,
"message": "Bad Request"
}
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Get sources listGET/api/integration/v2/sources
Retrieve all your sources
Required scope of authorization token: source
Supported headers:
Authorization,
X-Request-Page-Size,
X-Request-Current-Page,
Supported comparators for sorting by system fields:
System field name | Available comparators |
---|---|
id | = , != , <= , >= |
domain | = , != , like |
url | = , != , like |
Update source ¶
Example CURL:
curl -X PUT "https://<your_traffit_name>.traffit.com/api/integration/v2/sources/123" \
-H "accept: application/json" \
-H "Authorization: Bearer abcdef1234" \
-H "Content-Type: application/json" \
-d "{ \"domain\": \"traffit\", \"url\": \"http://traffit.com\"}"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Body
{
"domain": "traffit",
"url": "http://traffit.com",
"external_id": "abc123",
"dictionary_item_id": 1
}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"code": 400,
"message": "Validation Failed",
"errors": "<list_of_errors>"
}
Headers
Content-Type: application/json
Body
{
"error": "Authorization key is invalid."
}
Source not found
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Workflow ¶
Get workflow states stats ¶
Example CURL:
curl -X GET "https://www.<your_traffit_name>.traffit.com/api/integration/v2/workflows/123/states/counter"
-H "accept: application/json"
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
[
{
"state_id": 1,
"state_name": "Nowy",
"state_sid": "s1s0",
"candidates_count": "1"
},
{
"state_id": 3,
"state_name": "Odrzucenie",
"state_sid": "s1s2",
"candidates_count": "2"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Invalid scope"
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get workflow states statsGET/api/integration/v2/workflows/{workflow_id}/states/counter
- workflow_id
int
(required) Example: 123Workflow ID
Get workflow with states details ¶
Example CURL:
curl -X GET "https://www.<your_traffit_name>.traffit.com/api/integration/v2/workflows/{workflow_id}"
-H "accept: application/json"
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
{
"id": 1,
"name": "Proces rekrutacyjny",
"states": [
{
"id": 1,
"name": "New",
"type": "start",
"sid": "start",
"time_limit": 1,
"order": 0
},
{
"id": 2,
"name": "Qualified",
"type": "qualified",
"time_limit": 5,
"order": 1
},
{
"id": 3,
"name": "Phone interview",
"type": "phone_interview",
"order": 2
},
{
"id": 4,
"name": "Interview",
"type": "interview",
"order": 3
},
{
"id": 5,
"name": "Offer",
"type": "offer",
"order": 4
},
{
"id": 6,
"name": "Hired",
"type": "end-good",
"order": 9999997
},
{
"id": 7,
"name": "Rejected",
"type": "end-bad",
"order": 9999998
},
{
"id": 8,
"name": "Waiting list",
"type": "wait",
"order": 9999999
}
]
}
Headers
Content-Type: application/json
Body
{
"error": "Invalid scope"
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get workflow with states detailsGET/api/integration/v2/workflows/{workflow_id}
- workflow_id
int
(required) Example: 123Workflow ID
Get workflows ¶
Example CURL:
curl -X GET "https://www.<your_traffit_name>.traffit.com/api/integration/v2/workflows"
-H "accept: application/json"
-H "Authorization: Bearer abcdef1234"
Headers
Content-Type: application/json
Authorization: Bearer abcdef1234
Headers
Content-Type: application/json
Body
[
{
"id": 1,
"name": "Recruitment workflow",
"active": 1,
"updated_at": "2022-07-01 13:09:21"
},
{
"id": 2,
"name": "IT Recruitment workflow",
"active": 1,
"updated_at": "2022-05-01 13:09:21"
}
]
Headers
Content-Type: application/json
Body
{
"error": "Invalid scope"
}
Headers
Content-Type: application/json
Body
{
"error": {
"code": 404,
"message": "Not Found"
}
}
Get workflowsGET/api/integration/v2/workflows
- workflow_id
int
(required) Example: 123Workflow ID
Generated by aglio on 14 Aug 2024