Jobs
Job Sync enables the user to manage jobs (view, create, update and delete jobs) in the Phenom database.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/jobs-api/v1/jobs
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /jobs-api/v1/jobs
This API retrieves a list of jobs based on search.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | query | string | false |
| locale | query | string | false |
| category | query | string | false |
| siteType | query | string | false |
| offset | query | string | false |
| limit | query | string | false |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobsListSuccessResponse |
| 201 | OK | JobsListSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/jobs-api/v1/jobs
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs
This API creates a Job in Phenom that reflects in their respective career site.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"job": {
"JobRequestDTO": {
"required": {
"0": "description",
"1": "jobId",
"2": "reqId",
"3": "title"
},
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
}
}
}
},
"postings": {
"type": "array",
"items": {
"PostingDTO": {
"type": "object",
"required": {
"0": "locale",
"1": "siteType"
},
"properties": {
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"siteType": {
"type": "string",
"description": "SiteType of the job."
},
"category": {
"type": "string",
"description": "Category of the job."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"description": {
"type": "string",
"description": "Description of the job."
},
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
}
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | JobVariantsRequestDTO |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobsListSuccessResponse |
| 201 | OK | JobsListSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/jobs-api/v1/jobs/{referenceId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /jobs-api/v1/jobs/{referenceId}
This API retrieves all the details of a job using its unique reference ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| referenceId | path | string | true |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"errorCode": {
"type": "string",
"description": "Error Code."
},
"errorDesc": {
"type": "string",
"description": "Error Description."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobSuccessResponse |
| 201 | OK | JobSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | CustomError |
delete
copied!# You can also use wgetcurl -X DELETE https://api-qa.phenompro.com/jobs-api/v1/jobs/{referenceId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'DELETE /jobs-api/v1/jobs/{referenceId}
This API is used to delete a job using its unique reference ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| referenceId | path | string | true |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobSuccessResponse |
| 201 | OK | JobSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/jobs-api/v1/jobs/{referenceId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'PATCH /jobs-api/v1/jobs/{referenceId}
This API is used to update a job using its unique reference ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"description": {
"type": "string",
"description": "ATS job description."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| referenceId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | JobPostingRequestDTO |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"errorCode": {
"type": "string",
"description": "Error Code."
},
"errorDesc": {
"type": "string",
"description": "Error Description."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobSuccessResponse |
| 201 | OK | JobSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | CustomError |
delete
copied!# You can also use wgetcurl -X DELETE https://api-qa.phenompro.com/jobs-api/v1/jobs/variants/{jobId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'DELETE /jobs-api/v1/jobs/variants/{jobId}
This API is used to delete all job variants for a given job ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | path | string | true |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status code of the response."
},
"message": {
"type": "string",
"description": "Response message."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status code of the response."
},
"message": {
"type": "string",
"description": "Response message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status code of the response."
},
"message": {
"type": "string",
"description": "Response message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | StandardApiResponse |
| 400 | Bad Request | StandardErrorResponse |
| 500 | Internal Server Error | StandardErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/jobs-api/v1/closedJobs
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /jobs-api/v1/closedJobs
This API retrieves a list of closed jobs based on search or query parameters like locale, site type, job ID, and category.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | query | string | false |
| locale | query | string | false |
| category | query | string | false |
| siteType | query | string | false |
| offset | query | string | false |
| limit | query | string | false |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobsListSuccessResponse |
| 201 | OK | JobsListSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/jobs-api/v1/jobs/multiple-variants
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'PATCH /jobs-api/v1/jobs/multiple-variants
This API is used to update multiple job variants based on the request body.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{}
]Request Parameters
| Type | Name |
|---|---|
| application/json | JobPostingRequestDTO |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status code of the response."
},
"message": {
"type": "string",
"description": "Response message."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"ats": {
"type": "string",
"description": "Ats of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"multiHiringManager": {
"type": "array",
"description": "Additional hiring managers beyond the primary hiringManagerName/hiringManagerEmail, each with optional role.",
"items": {
"HiringManager": {
"required": {
"0": "hiringManagerEmail",
"1": "hiringManagerName"
},
"type": "object",
"properties": {
"hiringManagerName": {
"type": "string",
"description": "Name of the hiring manager."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of the hiring manager."
},
"role": {
"type": "string",
"description": "Optional. When omitted or blank, the service defaults to Hiring Manager. When present, must be one of: Interviewer, Hiring Manager, Recruiter, Sourcer."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"isPrivateJob": {
"type": "boolean",
"description": "This will be true if the job is private and not visible to the public."
},
"isConfidentialJob": {
"type": "boolean",
"description": "This will be true if the job is confidential and not visible to the public."
},
"postedDate": {
"type": "string",
"description": "Date when the job was posted."
},
"createdDate": {
"type": "string",
"description": "Date when the job was created in phenom."
},
"updatedDate": {
"type": "string",
"description": "Date when the job was updated."
},
"descriptionTeaser": {
"type": "string",
"description": "Description teaser of the job."
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status code of the response."
},
"message": {
"type": "string",
"description": "Response message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status code of the response."
},
"message": {
"type": "string",
"description": "Response message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | StandardApiResponse |
| 400 | Bad Request | StandardErrorResponse |
| 500 | Internal Server Error | StandardErrorResponse |
Search
These APIs helps to find relevant job listings matching specific keywords.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/jobs-api/v1/jobs/search/
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs/search/
This API assist in discovering job listings that align with particular keywords or search terms.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request to Search Jobs.",
"properties": {
"keywords": {
"type": "string",
"description": "Keyword to search."
},
"from": {
"type": "integer",
"description": "Starting point from which the data should be retrieved."
},
"size": {
"type": "integer",
"description": "Size of the response."
},
"booleanOperator": {
"type": "string",
"description": "Search operator accepts \"and\" / \"or\"."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"description": "Persona Value - Example: Internal, External."
},
"userType": {
"type": "string",
"description": "Type of the user - Internal or External User."
},
"orderBy": {
"type": "string",
"description": "Resultant order of jobs."
},
"facets": {
"type": "object",
"description": "Attributes and it's corresponding values to filter jobs.",
"properties": {
"city": {
"type": "array",
"items": {
"type": "string"
},
"description": "City filter will be applied based on the values present in the list."
},
"state": {
"type": "array",
"items": {
"type": "string"
},
"description": "State filter will be applied based on the values present in the list."
},
"country": {
"type": "array",
"items": {
"type": "string"
},
"description": "Country filter will be applied based on the values present in the list."
},
"category": {
"type": "array",
"items": {
"type": "string"
},
"description": "Category filter will be applied based on the values present in the list."
}
}
},
"ip": {
"type": "string",
"description": "User IP Address."
},
"locationData": {
"LocationData": {
"type": "object",
"properties": {
"latlong": {
"type": "string",
"description": "Latitude, Longitude of the location."
},
"location": {
"type": "string",
"description": "Location Value."
},
"radius": {
"type": "integer",
"description": "Radius to consider from the entered location."
},
"radiusUnit": {
"type": "string",
"description": "Radius unit to consider."
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | JobSearchRequest |
Response
Returns filtered jobs.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status returned by the API."
},
"data": {
"type": "object",
"description": "Job Search Response data.",
"properties": {
"jobs": {
"type": "array",
"items": {
"JobNode": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the Job."
},
"jobId": {
"type": "string",
"description": "Job ID - unique field to identify the job."
},
"city": {
"type": "string",
"description": "City value where the job is posted."
},
"state": {
"type": "string",
"description": "State value where the job is posted."
},
"country": {
"type": "string",
"description": "Country value where the job is posted."
},
"location": {
"type": "string",
"description": "Location of the job posted."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"description": "Persona Value - Example: Internal, External."
},
"jobUpdatedDate": {
"type": "string",
"description": "Timestamp where the latest update was pushed to the job."
},
"createdDate": {
"type": "string",
"description": "Timestamp when the job was created."
},
"category": {
"type": "string",
"description": "Job Category."
},
"multiCategory": {
"type": "array",
"description": "List of categories where the job is posted to.",
"items": {
"type": "string",
"description": "category where the job is posted to."
}
},
"multiLocation": {
"type": "array",
"description": "List of locations where the job is posted.",
"items": {
"type": "string",
"description": "locations where the job is posted."
}
}
}
}
}
}
}
}
}
}
]Bad Request.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Server Error.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Returns filtered jobs. | JobSearchResponse |
| 400 | Bad Request. | BadRequest |
| 500 | Server Error. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/jobs-api/v1/jobs/search/suggestions
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /jobs-api/v1/jobs/search/suggestions
This API offers automatic suggestions for job titles based on entered keywords or search terms.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| searchBy | query | string | true |
| limit | query | string | false |
| prefix | query | string | true |
Response
Typeahead results filtered based on input prefix.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status returned by the API."
},
"data": {
"type": "object",
"description": "Response.",
"properties": {
"titles": {
"type": "array",
"description": "List of Titles.",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the job."
},
"jobId": {
"type": "string",
"description": "Job ID - Unique Identifier of the job."
},
"titleHtml": {
"type": "string",
"description": "Title of the job with highlighted tags."
}
}
}
}
}
}
}
}
]Bad Request.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Server Error.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Typeahead results filtered based on input prefix. | JobTitlesResponse |
| 400 | Bad Request. | BadRequest |
| 500 | Server Error. | ErrorResponse |
Recommendations
These APIs provide job suggestions based on your profile, akin job listings, and nearby job opportunities tailored to your qualifications.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/jobs-api/v1/jobs/recommendation/profile-matched
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs/recommendation/profile-matched
This API provides job recommendations for a profile.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"default": "external",
"description": "Persona Value - Example: Internal, External."
},
"userType": {
"type": "string",
"default": "external",
"description": "Type of the user - Internal or External User."
},
"userId": {
"type": "string",
"description": "Unique identified for a user."
},
"userProfile": {
"UserProfile": {
"type": "object",
"properties": {
"categories": {
"type": "array",
"items": {
"type": "string",
"description": "List of categories from which the recommendations should be provided."
}
},
"skills": {
"type": "array",
"items": {
"type": "string",
"description": "Skill set of the user."
}
},
"title": {
"type": "string",
"description": "Recent designation of the user."
},
"yearsOfExperience": {
"type": "string",
"example": "0-5",
"description": "Total number of years of experience of the user."
},
"preferredLocations": {
"type": "array",
"items": {
"PreferredLocations": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Preferred location of the user."
},
"latlong": {
"type": "object",
"properties": {
"lon": {
"type": "number",
"format": "double",
"description": "Longitude of the preferred location provided by user."
},
"lan": {
"type": "number",
"format": "double",
"description": "Latitude of the preferred location provided by user."
}
}
}
}
}
}
}
}
}
},
"maxRecommendationSize": {
"type": "integer",
"description": "Maximum recommendations to be provided in response."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | JobRecommendation |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"default": "200",
"description": "HTTP Status code determining the response status."
},
"totalCount": {
"type": "integer",
"description": "Total recommendations identified by the service."
},
"jobs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the recommended job."
},
"category": {
"type": "string",
"description": "Category to which the recommended job belongs to."
},
"jobId": {
"type": "string",
"description": "Unique identifier for a job."
},
"city": {
"type": "string",
"description": "Primary city of the job's location."
},
"state": {
"type": "string",
"description": "Primary state of the job's location."
},
"country": {
"type": "string",
"description": "Primary country of the job's location."
},
"applyUrl": {
"type": "string",
"description": "Apply url for the job."
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | ProfileMatchingResponse |
| 400 | Bad Request | BadRequest |
| 500 | Server Error | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/jobs-api/v1/jobs/recommendation/similarjobs
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs/recommendation/similarjobs
This API provides similar jobs to the given job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"description": "Persona Value - Example: Internal, External."
},
"userType": {
"type": "string",
"description": "Type of the user - Internal or External User."
},
"size": {
"type": "integer",
"description": "Size of the response."
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | query | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | SimilarJobsRequest |
Response
found the api
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "HTTP Status code determining the response status."
},
"hits": {
"type": "integer",
"description": "No of hits."
},
"data": {
"type": "object",
"properties": {
"similarJobs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the recommended job."
},
"jobId": {
"type": "string",
"description": "Job ID - unique field to identify the job."
},
"category": {
"type": "string",
"description": "Category to which the job belongs to."
},
"city": {
"type": "string",
"description": "City of the Location to which the job belongs to."
},
"state": {
"type": "string",
"description": "State of the Location to which the job belongs to."
},
"country": {
"type": "string",
"description": "Country of the Location to which the job belongs to."
},
"applyUrl": {
"type": "string",
"description": "Apply Url of the job."
}
}
}
}
}
}
}
}
]Some exception occured while extracting features.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | found the api | SimilarJobsResponse |
| 400 | Some exception occured while extracting features. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/jobs-api/v1/jobs/recommendation/nearby
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /jobs-api/v1/jobs/recommendation/nearby
This API provides job listings nearby, using location as a parameter for the search.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| latitude | query | number | true |
| longitude | query | number | true |
| radius | query | integer |
Response
Returns Locations matching with given keyword.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "HTTP Status code determining the response status."
},
"data": {
"type": "object",
"description": "Near By Jobs Response data.",
"properties": {
"nearbyjobs": {
"type": "array",
"items": {
"JobNode": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the Job."
},
"jobId": {
"type": "string",
"description": "Job ID - unique field to identify the job."
},
"city": {
"type": "string",
"description": "City value where the job is posted."
},
"state": {
"type": "string",
"description": "State value where the job is posted."
},
"country": {
"type": "string",
"description": "Country value where the job is posted."
},
"location": {
"type": "string",
"description": "Location of the job posted."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"description": "Persona Value - Example: Internal, External."
},
"jobUpdatedDate": {
"type": "string",
"description": "Timestamp where the latest update was pushed to the job."
},
"createdDate": {
"type": "string",
"description": "Timestamp when the job was created."
},
"category": {
"type": "string",
"description": "Job Category."
},
"multiCategory": {
"type": "array",
"description": "List of categories where the job is posted to.",
"items": {
"type": "string",
"description": "category where the job is posted to."
}
},
"multiLocation": {
"type": "array",
"description": "List of locations where the job is posted.",
"items": {
"type": "string",
"description": "locations where the job is posted."
}
}
}
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Returns Locations matching with given keyword. | NearByJobsResponse |
| 400 | Bad Request | BadRequest |
| 500 | Server Error | ErrorResponse |
Candidates
These Candidate APIs allow you to add, update and delete candidates.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/v2/candidates
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v2/candidates
The Get Candidate Details API is used to fetch candidate details based on candidateId, email, atsId or linkedInProfileUrl.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | query | string | false |
| query | string | false | |
| atsId | query | string | false |
| linkedInProfileUrl | query | string | false |
Response
Successfully fetched the candidate details.
copied![
{
"type": "object",
"description": "An object representing candidate-related information.",
"properties": {
"data": {
"type": "object",
"description": "An object containing candidate data.",
"properties": {
"middleName": {
"type": "string",
"description": "The middle name of the candidate."
},
"candidateId": {
"type": "string",
"description": "Unique identifier for the user or candidate."
},
"employeeId": {
"type": "string",
"description": "Employee profile ID associated with the candidate."
},
"linkedInProfileURL": {
"type": "string",
"description": "URL to the candidate's LinkedIn profile."
},
"firstName": {
"type": "string",
"description": "First name of the candidate."
},
"company": {
"type": "string",
"description": "The name of the company associated with the candidate."
},
"createdDate": {
"type": "number",
"description": "Timestamp indicating when the profile was created."
},
"updatedDate": {
"type": "number",
"description": "The date when the information was last updated."
},
"emailList": {
"type": "array",
"description": "An array representing an email list.",
"items": {
"EmailDetail": {
"type": "object",
"description": "An object representing details of an email entry.",
"properties": {
"email": {
"type": "string",
"description": "The email address."
},
"type": {
"type": "string",
"description": "The type of email entry."
},
"status": {
"type": "string",
"description": "The status of the email entry."
}
}
}
}
},
"contacts": {
"type": "array",
"description": "An array representing contact information.",
"items": {
"ContactDetail": {
"type": "object",
"description": "An object containing details of a contact entry.",
"properties": {
"phoneNumber": {
"type": "string",
"description": "The phone number."
},
"countryCode": {
"type": "string",
"description": "The country code."
},
"status": {
"type": "string",
"description": "The status of the contact entry."
},
"type": {
"type": "string",
"description": "The type of contact entry."
}
}
}
}
},
"lastName": {
"type": "string",
"description": "Last name of the individual."
},
"internal": {
"type": "boolean",
"description": "Indicates whether the individual is internal."
},
"atsId": {
"type": "string",
"description": "Unique identifier associated with the ATS."
},
"firstProfileSourceList": {
"type": "array",
"description": "Array representing the first source of the candidate's profile.",
"items": {
"type": "string"
}
},
"profileSourceList": {
"type": "array",
"description": "Array representing all the sources of the candidate's profile.",
"items": {
"type": "string"
}
},
"linkedInUrnId": {
"type": "string",
"description": "LinkedIn URN ID of the candidate."
},
"linkedInSyncStatus": {
"type": "string",
"description": "Status of LinkedIn sync."
},
"linkedInLastSyncDate": {
"type": "integer",
"description": "When the candidate profile was synced with LinkedIn."
},
"location": {
"description": "Primary address associated with the candidate.",
"LocationDetail": {
"type": "object",
"description": "An object representing a geographic location.",
"properties": {
"city": {
"type": "string",
"description": "The city."
},
"state": {
"type": "string",
"description": "The state."
},
"country": {
"type": "string",
"description": "The country."
},
"zipCode": {
"type": "string",
"description": "The zipcode."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"status": {
"type": "integer",
"description": "Status code of the request."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Could not find candidate for given identifier.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the candidate details. | Candidate |
| 400 | Wrong request format or parameters missing. | ErrorResponse |
| 404 | Could not find candidate for given identifier. | ErrorResponse |
| 500 | Exception occurred. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/candidates-api/v2/candidates
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'POST /candidates-api/v2/candidates
The create candidate profile API creates a new profile record in the system.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"required": {
"0": "firstName",
"1": "lastName",
"2": "profileSources"
},
"properties": {
"firstName": {
"type": "string",
"description": "The first name of the candidate."
},
"lastName": {
"type": "string",
"description": "The last name of the candidate."
},
"middleName": {
"type": "string",
"description": "The middle name of the candidate."
},
"linkedInProfileURL": {
"type": "string",
"description": "The LinkedIn profile URL of the candidate."
},
"internal": {
"type": "boolean",
"description": "Indicates whether the candidate is internal."
},
"profileSources": {
"type": "array",
"description": "Array of profile sources associated with the candidate.",
"items": {
"type": "string"
}
},
"languagePreference": {
"type": "string",
"description": "The language preference of the candidate."
},
"languageKnown": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of languages known by the candidate."
},
"createdDate": {
"type": "string",
"format": "date-time",
"description": "The date and time when the candidate was created in the ATS."
},
"updatedDate": {
"type": "string",
"format": "date-time",
"description": "The date and time when the candidate record was last updated in the ATS."
},
"emailList": {
"type": "array",
"description": "Array of email addresses associated with the candidate.",
"items": {
"type": "object",
"description": "Email details for the candidate.",
"required": {
"0": "email",
"1": "type",
"2": "status"
},
"properties": {
"email": {
"type": "string",
"description": "The email address of the candidate. (Example: xyz@gmail.com)"
},
"type": {
"type": "string",
"description": "The type of email (e.g., 'Primary' or 'Secondary')."
},
"status": {
"type": "string",
"description": "The status of the email (e.g., 'Primary' or 'Secondary').",
"enum": {
"0": "Primary",
"1": "Secondary"
}
}
}
}
},
"contacts": {
"type": "array",
"description": "Array of contact details associated with the candidate.",
"items": {
"type": "object",
"description": "Contact details for the candidate.",
"required": {
"0": "type",
"1": "phoneNumber",
"2": "status",
"3": "countryCode"
},
"properties": {
"type": {
"type": "string",
"description": "The type of contact (e.g., 'Primary' or 'Secondary')."
},
"phoneNumber": {
"type": "string",
"description": "The phone number of the contact."
},
"status": {
"type": "string",
"description": "The status of the contact (e.g., 'Primary' or 'Secondary').",
"enum": {
"0": "Primary",
"1": "Secondary"
}
},
"countryCode": {
"type": "string",
"description": "The country code associated with the contact."
}
}
}
},
"atsId": {
"type": "string",
"description": "The ATS (Applicant Tracking System) identifier associated with the candidate."
},
"employeeId": {
"type": "string",
"description": "The employee identifier associated with the candidate."
}
},
"anyOf": {
"0": {
"required": {
"0": "emailList"
}
},
"1": {
"required": {
"0": "contacts"
}
},
"2": {
"required": {
"0": "linkedInProfileURL"
}
},
"3": {
"required": {
"0": "employeeId"
}
}
},
"description": "Schema defining the structure of the request body for creating a candidate profile.<br/><br/><b>Validation Rules:</b><ul><li><code>firstName</code>, <code>lastName</code>, and <code>profileSources</code> are always mandatory.</li><li>You must also provide <b>at least one</b> of the following: <code>emailList</code>, <code>contacts</code>, <code>linkedInProfileURL</code>, or <code>employeeId</code>.</li></ul>"
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CreateCandidateRequest |
Response
Candidate profile created successfully.
copied![
{
"type": "object",
"description": "An object representing the response after creating a candidate.",
"properties": {
"data": {
"type": "object",
"description": "An object containing data related to the created candidate.",
"properties": {
"candidateId": {
"type": "string",
"description": "The unique identifier for the created candidate."
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "integer",
"description": "An integer representing the status of the response."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Candidate profile already exists with given identifier.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 201 | Candidate profile created successfully. | CreateCandidateResponse |
| 400 | Wrong request format or parameters missing. | ErrorResponse |
| 409 | Candidate profile already exists with given identifier. | ErrorResponse |
| 500 | Exception occurred. | ErrorResponse |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}
This API updates the profile data for a given candidate Id.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "The first name of the candidate."
},
"lastName": {
"type": "string",
"description": "The last name of the candidate."
},
"middleName": {
"type": "string",
"description": "The middle name of the candidate."
},
"emailList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The email address of the candidate."
},
"type": {
"type": "string",
"description": "The type of email (e.g., 'Primary' or 'Secondary')."
},
"status": {
"type": "string",
"description": "The status of the email (e.g., 'Primary' or 'Secondary')."
}
}
},
"description": "Array of email addresses associated with the candidate."
},
"contacts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of contact (e.g., 'Primary' or 'Secondary')."
},
"phoneNumber": {
"type": "string",
"description": "The phone number of the contact."
},
"status": {
"type": "string",
"description": "The status of the contact (e.g., 'Primary' or 'Secondary')."
},
"countryCode": {
"type": "string",
"description": "The country code associated with the contact."
}
}
},
"description": "Array of contact details associated with the candidate."
},
"linkedInProfileURL": {
"type": "string",
"description": "The LinkedIn profile URL of the candidate."
},
"atsId": {
"type": "string",
"description": "The ATS (Applicant Tracking System) identifier associated with the candidate."
},
"employeeId": {
"type": "string",
"description": "The employee identifier associated with the candidate."
},
"internal": {
"type": "boolean",
"description": "Indicates whether the candidate is internal."
},
"profileSources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of profile sources associated with the candidate."
},
"createdDate": {
"type": "string",
"description": "The date and time when the candidate was created in the ATS."
},
"updatedDate": {
"type": "string",
"description": "The date and time when the candidate record was last updated in the ATS."
},
"languagePreference": {
"type": "string",
"description": "The language preference of the candidate."
},
"languageKnown": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of languages known by the candidate."
},
"gender": {
"type": "string",
"description": "The gender of the candidate."
},
"designation": {
"type": "string",
"description": "The designation or job title of the candidate."
},
"race": {
"type": "string",
"description": "The race or ethnicity of the candidate."
},
"veteran": {
"type": "string",
"description": "Indicates whether the candidate is a veteran."
},
"disability": {
"type": "string",
"description": "The disability status of the candidate."
},
"ethnicity": {
"type": "string",
"description": "The ethnicity of the candidate."
}
},
"description": "Schema defining the structure of the request body for updating a candidate profile."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateCandidateRequest |
Response
Successfully updated candidate profile
copied![
{
"type": "object",
"description": "An object representing the response after creating a candidate.",
"properties": {
"data": {
"type": "object",
"description": "An object containing data related to the created candidate.",
"properties": {
"candidateId": {
"type": "string",
"description": "The unique identifier for the created candidate."
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "An string representing the status of the response, indicating success, failure, or another state."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 201 | Successfully updated candidate profile | CandidateCreateResponse |
| 400 | Wrong request format or parameters missing. | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
delete
copied!# You can also use wgetcurl -X DELETE https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'x-ph-userId: string'
-H 'Authorization: string'DELETE /candidates-api/v1/candidates/{candidateId}
This API deletes the profile of a given candidate id.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| x-ph-userId | header | string | true |
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully deleted the candidate
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully deleted the candidate | CandidateDetailsUpdateResponse |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/experiences
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/experiences
The experiences API is used to fetch experiences on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the experience details for given candidate
copied![
{
"type": "object",
"description": "Schema defining the structure of the experience data for a candidate.",
"properties": {
"data": {
"type": "object",
"description": "Object containing experience-related data.",
"properties": {
"experiences": {
"type": "array",
"description": "List of experience objects.",
"items": {
"type": "object",
"description": "Object representing an individual experience.",
"properties": {
"company": {
"type": "string",
"description": "A string representing the name of the company."
},
"jobTitle": {
"type": "string",
"description": "A string representing the job title."
},
"industry": {
"type": "string",
"description": "A string representing the industry associated with the experience."
},
"role": {
"type": "string",
"description": "A string representing the role in the experience."
},
"jobLocation": {
"type": "string",
"description": "A string representing the location of the job."
},
"startDate": {
"type": "number",
"description": "A number representing the start date of the experience."
},
"endDate": {
"type": "number",
"description": "A number representing the end date of the experience."
},
"isCurrent": {
"type": "boolean",
"description": "A boolean indicating whether the experience is current."
},
"companyUrl": {
"type": "string",
"description": "A string representing the URL of the company."
},
"jobSummary": {
"type": "string",
"description": "A string representing a summary of the job experience."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Message or additional information related to the experience data."
},
"status": {
"type": "string",
"description": "Status of the experience data, indicating success or failure."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the experience details for given candidate | Experience |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/experiences
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/experiences
The experiences API is used to update experiences on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing existing resource.Accepted values are replace and merge"
},
"experience": {
"type": "array",
"items": {
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "The name of the company where the candidate gained experience."
},
"isCurrent": {
"type": "boolean",
"description": "Indicates whether the candidate is currently employed in this position."
},
"jobTitle": {
"type": "string",
"description": "The job title or position held by the candidate."
},
"jobSummary": {
"type": "string",
"description": "A summary or description of the candidate's job responsibilities."
},
"startMonth": {
"type": "integer",
"description": "The starting month of the candidate's employment."
},
"startYear": {
"type": "integer",
"description": "The starting year of the candidate's employment."
},
"endMonth": {
"type": "integer",
"description": "The ending month of the candidate's employment, if applicable."
},
"endYear": {
"type": "integer",
"description": "The ending year of the candidate's employment, if applicable."
},
"industry": {
"type": "string",
"description": "The industry or sector associated with the candidate's experience."
},
"type": {
"type": "string",
"description": "The type of experience (e.g., 'Full-time', 'Part-time')."
},
"designation": {
"type": "string",
"description": "The designation or role associated with the candidate's experience."
},
"role": {
"type": "string",
"description": "The specific role or function performed by the candidate."
},
"jobLocation": {
"type": "string",
"description": "The location of the job or work associated with the experience."
},
"country": {
"type": "string",
"description": "The country where the candidate gained experience."
},
"state": {
"type": "string",
"description": "The state or region where the candidate gained experience."
},
"city": {
"type": "string",
"description": "The city where the candidate gained experience."
}
}
},
"description": "Array of experiences to be added or updated for the candidate."
}
},
"description": "Schema defining the structure of the request body for adding or updating candidate experiences."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | AddOrUpdateExperienceRequest |
Response
Successfully added experiences to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added experiences to candidates | CandidateDetailsUpdateResponse |
| 400 | wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/educations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'x-ph-userId: string'
-H 'Authorization: string'GET /candidates-api/v1/candidates/{candidateId}/educations
This API is used to fetch education on candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| x-ph-userId | header | string | true |
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the education for given candidate
copied![
{
"type": "object",
"description": "Object representing education details.",
"properties": {
"data": {
"type": "object",
"description": "Object containing education data.",
"properties": {
"educations": {
"type": "array",
"description": "Array of education items.",
"items": {
"type": "object",
"properties": {
"degree": {
"type": "string",
"description": "The degree obtained by the candidate in their educational background."
},
"fieldOfStudy": {
"type": "string",
"description": "The field of study or major in the candidate's educational background."
},
"schoolName": {
"type": "string",
"description": "The name of the school associated with the candidate's educational background."
},
"schoolAndUniversity": {
"type": "string",
"description": "Combined name of the school and university associated with the candidate's educational background."
},
"state": {
"type": "string",
"description": "The state where the educational institution is located."
},
"country": {
"type": "string",
"description": "The country where the educational institution is located."
},
"startDate": {
"type": "number",
"description": "The start date of the educational program."
},
"endDate": {
"type": "number",
"description": "The end date of the educational program."
},
"isHighEducation": {
"type": "boolean",
"description": "Boolean indicating whether the education is considered high education or not."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the education for given candidate | Education |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/educations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/educations
This API is used to update education on candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing of existing resource.Accepted values are replace and merge"
},
"education": {
"type": "array",
"description": "List of education details to be added or updated for the candidate.",
"items": {
"type": "object",
"properties": {
"degree": {
"type": "string",
"description": "Degree or qualification obtained in the education."
},
"fieldOfStudy": {
"type": "string",
"description": "Field of study or major in the education."
},
"schoolName": {
"type": "string",
"description": "Name of the educational institution or school."
},
"startMonth": {
"type": "integer",
"description": "Start month of the education (numeric value)."
},
"startYear": {
"type": "integer",
"description": "Start year of the education (numeric value)."
},
"endMonth": {
"type": "integer",
"description": "End month of the education (numeric value)."
},
"endYear": {
"type": "integer",
"description": "End year of the education (numeric value)."
},
"isHighEducation": {
"type": "boolean",
"description": "Boolean indicating whether the education is a high education level."
},
"city": {
"type": "string",
"description": "City where the educational institution is located."
},
"state": {
"type": "string",
"description": "State or region where the educational institution is located."
},
"country": {
"type": "string",
"description": "Country where the educational institution is located."
},
"universityName": {
"type": "string",
"description": "Name of the university associated with the education."
}
}
}
}
},
"description": "Schema defining the structure of the request body for adding or updating education details for a candidate."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | AddOrUpdateEducationRequest |
Response
Successfully added education to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added education to candidates | CandidateDetailsUpdateResponse |
| 400 | Wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/skills
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/skills
This API is used to fetch skills on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the skills of a candidate
copied![
{
"type": "object",
"description": "Object representing skills.",
"properties": {
"data": {
"type": "object",
"description": "Object containing skills data.",
"properties": {
"skills": {
"type": "array",
"description": "Array of skill items.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The skill value."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the skills of a candidate | Skills |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/skills
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/v1/candidates/{candidateId}/skills
The skills API is used to update skills on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing of existing resource.Accepted values are replace and merge"
},
"skillList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The skill value or name to be added to the candidate's skill list."
}
}
},
"description": "Array of skills to be added to the candidate's skill list."
}
},
"description": "Schema defining the structure of the request body for adding skills to a candidate."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | AddSkillsRequest |
Response
Successfully added skills to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added skills to candidates | CandidateDetailsUpdateResponse |
| 400 | wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/awards
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/awards
This API is used to fetch awards on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the awards of a candidate
copied![
{
"type": "object",
"description": "Object representing awards.",
"properties": {
"data": {
"type": "object",
"description": "Object containing awards data.",
"properties": {
"awards": {
"type": "array",
"description": "Array of award items.",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Description of the award."
},
"title": {
"type": "string",
"description": "Title of the award."
},
"awardedOn": {
"type": "object",
"description": "Object representing the date when the award was awarded.",
"properties": {
"year": {
"type": "number",
"description": "Year of the award."
},
"month": {
"type": "number",
"description": "Month of the award."
},
"day": {
"type": "number",
"description": "Day of the award."
}
}
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the awards of a candidate | Award |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/awards
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/awards
This API is used to update awards on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing of existing resource.Accepted values are replace and merge"
},
"awards": {
"type": "array",
"description": "List of awards to be updated or added to the candidate's profile.",
"items": {
"type": "object",
"properties": {
"awardedOn": {
"type": "object",
"description": "Date when the award was received.",
"properties": {
"year": {
"type": "integer",
"description": "The year when the award was issued."
},
"month": {
"type": "integer",
"description": "The month when the award was issued."
}
}
},
"title": {
"type": "string",
"description": "Title of the award."
},
"description": {
"type": "string",
"description": "Description or details of the award."
}
}
}
}
},
"description": "Schema defining the structure of the request body for updating or adding awards to a candidate's profile."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateAwardsRequest |
Response
Successfully added awards to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added awards to candidates | CandidateDetailsUpdateResponse |
| 400 | Wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/certifications
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/certifications
This API is used to fetch certifications on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the certifications of a candidate
copied![
{
"type": "object",
"description": "Object representing certifications.",
"properties": {
"data": {
"type": "object",
"description": "Object containing certifications data.",
"properties": {
"certifications": {
"type": "array",
"description": "Array of certification items.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the certification."
},
"certificationNumber": {
"type": "string",
"description": "The unique certification number."
},
"institute": {
"type": "string",
"description": "The institution or organization that issued the certification."
},
"startDate": {
"type": "number",
"description": "The numeric representation of the certification start date."
},
"issuedDate": {
"type": "object",
"properties": {
"year": {
"type": "number",
"description": "The year when the certification was issued."
},
"month": {
"type": "number",
"description": "The month when the certification was issued."
},
"day": {
"type": "number",
"description": "The day when the certification was issued."
}
},
"description": "The date when the certification was officially issued."
},
"expiryDate": {
"type": "object",
"properties": {
"year": {
"type": "number",
"description": "The year when the certification expires."
},
"month": {
"type": "number",
"description": "The month when the certification expires."
},
"day": {
"type": "number",
"description": "The day when the certification expires."
}
},
"description": "The date when the certification expires."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the certifications of a candidate | Certification |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/certifications
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/certifications
This API is used to update certifications on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing of existing resource.Accepted values are replace and merge"
},
"certifications": {
"type": "array",
"description": "List of certifications to be updated or added to the candidate's profile.",
"items": {
"type": "object",
"properties": {
"certificationNumber": {
"type": "string",
"description": "Unique identifier or number associated with the certification."
},
"name": {
"type": "string",
"description": "Name or title of the certification."
},
"institute": {
"type": "string",
"description": "Institute or organization that issued the certification."
},
"description": {
"type": "string",
"description": "Description or details of the certification."
},
"state": {
"type": "string",
"description": "State or location where the certification was issued."
},
"issuedDate": {
"type": "object",
"description": "Date when the certification was issued.",
"properties": {
"year": {
"type": "integer",
"description": "The year when the certification was issued."
},
"month": {
"type": "integer",
"description": "The month when the certification was issued."
}
}
},
"expiryDate": {
"type": "object",
"description": "Date when the certification is set to expire.",
"properties": {
"year": {
"type": "integer",
"description": "The year when the certification is set to expire.."
},
"month": {
"type": "integer",
"description": "The month when the certification is set to expire.."
}
}
}
}
}
}
},
"description": "Schema defining the structure of the request body for updating or adding certifications to a candidate's profile."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateCertificationRequest |
Response
Successfully added certifications to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added certifications to candidates | CandidateDetailsUpdateResponse |
| 400 | wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/preferred-locations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/preferred-locations
Updates candidate preferred locations for a job
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"title": "UpdatePreferredLocationRequest",
"properties": {
"action": {
"type": "string",
"description": "Action to perform on the preferred locations. Valid values: 'add', 'remove', 'replace'."
},
"preferredLocationList": {
"type": "array",
"description": "List of preferred locations to be added, removed, or replaced.",
"items": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Name or identifier of the preferred location."
},
"latLong": {
"type": "string",
"description": "Latitude and longitude coordinates of the preferred location."
},
"city": {
"type": "string",
"description": "City of the preferred location."
},
"state": {
"type": "string",
"description": "State or region of the preferred location."
},
"country": {
"type": "string",
"description": "Country of the preferred location."
},
"zipCode": {
"type": "string",
"description": "ZIP code of the preferred location."
}
}
}
}
},
"description": "Schema defining the structure of the request body for updating preferred locations on a candidate's profile."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdatePreferredLocationRequest |
Response
Successfully updated Preferred Locations for given candidate
copied![
{
"type": "object",
"description": "An object representing the response after updating preferred locations for a candidate.",
"properties": {
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully updated Preferred Locations for given candidate | PreferredLocationUpdateResponse |
| 400 | Wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/preferred-locations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/v1/candidates/{candidateId}/preferred-locations
This API is used to get preferred locations on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the preferred locations of a candidate
copied![
{
"type": "object",
"description": "An object representing preferred locations associated with a candidate.",
"properties": {
"data": {
"type": "object",
"description": "An object containing data related to preferred locations.",
"properties": {
"preferredLocationList": {
"type": "array",
"description": "An array representing a list of preferred locations.",
"items": {
"type": "object",
"description": "An object containing details about a preferred location.",
"properties": {
"location": {
"type": "string",
"description": "A string representing the preferred location."
},
"city": {
"type": "string",
"description": "A string representing the city of the preferred location."
},
"country": {
"type": "string",
"description": "A string representing the country of the preferred location."
},
"state": {
"type": "string",
"description": "A string representing the state of the preferred location."
},
"zipCode": {
"type": "string",
"description": "A string representing the ZIP code of the preferred location."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the request or response."
},
"status": {
"type": "string",
"description": "A string representing the status of the request or response, indicating success, failure, or another state."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the preferred locations of a candidate | PreferredLocation |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/address
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/address
This api updates address of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing of existing resource.Accepted values are replace and merge"
},
"addressLogs": {
"type": "array",
"description": "List of address logs to be updated for the candidate.",
"items": {
"type": "object",
"properties": {
"addressLines": {
"type": "array",
"description": "Address line of the address.",
"items": {
"type": "string"
}
},
"city": {
"type": "string",
"description": "City of the address."
},
"state": {
"type": "string",
"description": "State or region of the address."
},
"country": {
"type": "string",
"description": "Country of the address."
},
"location": {
"type": "string",
"description": "General location information (e.g., city center, suburban)."
},
"latLong": {
"type": "string",
"description": "Latitude and longitude coordinates of the address."
},
"zipCode": {
"type": "string",
"description": "Postal or ZIP code of the address."
}
}
}
}
},
"description": "Schema defining the structure of the request body for updating address information for a candidate."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateAddressRequest |
Response
Successfully updated address of candidate
copied![
{
"type": "object",
"description": "An object representing the response related to the update of candidate addresses.",
"properties": {
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully updated address of candidate | AddressUpdateResponse |
| 400 | Wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/address
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/address
This api fetches address of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the address of a candidate
copied![
{
"type": "object",
"description": "An object representing address information associated with a candidate.",
"properties": {
"data": {
"type": "object",
"description": "An object containing data related to the candidate's address.",
"properties": {
"address": {
"type": "array",
"description": "An array representing a list of addresses associated with the candidate.",
"items": {
"type": "object",
"description": "An object containing details about a specific address.",
"properties": {
"city": {
"type": "string",
"description": "A string representing the city of the address."
},
"state": {
"type": "string",
"description": "A string representing the state of the address."
},
"country": {
"type": "string",
"description": "A string representing the country of the address."
},
"zipCode": {
"type": "string",
"description": "A string representing the ZIP code of the address."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the address of a candidate | Address |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/recommendations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/recommendations
This api updates recommendations of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Schema defining the structure of the request body for updating recommendations for a candidate.",
"properties": {
"recommendations": {
"type": "array",
"description": "List of recommendation objects.",
"items": {
"type": "object",
"description": "Object representing an individual recommendation.",
"properties": {
"recommendationText": {
"type": "string",
"description": "Text of the recommendation."
},
"relation": {
"type": "string",
"description": "Relationship or association with the candidate."
}
}
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateRecommendationsRequest |
Response
Successfully updated recommendations of candidate
copied![
{
"type": "object",
"description": "An object representing the response after updating recommendations for a candidate.",
"properties": {
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
]wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully updated recommendations of candidate | RecommendationsUpdateResponse |
| 400 | wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/recommendations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/recommendations
This API gets recommendations of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the recommendations of a candidate
copied![
{
"type": "object",
"description": "Object representing recommendations.",
"properties": {
"data": {
"type": "object",
"description": "Object containing recommendations data.",
"properties": {
"recommendations": {
"type": "array",
"description": "Array of recommendation items.",
"items": {
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "First name of the person providing the recommendation."
},
"lastName": {
"type": "string",
"description": "Last name of the person providing the recommendation."
},
"text": {
"type": "string",
"description": "Text or content of the recommendation."
},
"type": {
"type": "string",
"description": "Type or category of the recommendation."
},
"relation": {
"type": "string",
"description": "Relationship of the person providing the recommendation to the candidate."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the recommendations of a candidate | Recommendations |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/additional-fields
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/v1/candidates/{candidateId}/additional-fields
This api updates specific additional fields of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Schema defining the structure of the request body for updating additional fields for a candidate.",
"properties": {
"additionalFields": {
"type": "object",
"description": "Object containing additional fields to be updated for the candidate.",
"properties": {}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateAdditionalFieldsRequest |
Response
Successfully updated tenant specific additional fields of a candidate
copied![
{
"type": "object",
"description": "An object representing the response after updating additional fields for a candidate.",
"properties": {
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully updated tenant specific additional fields of a candidate | AdditionalFieldsUpdateResponse |
| 400 | Wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/v1/candidates/{candidateId}/additional-fields
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/additional-fields
This api fetches specific additional fields of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the tenant specific additional fields of a candidate
copied![
{
"type": "object",
"description": "An object representing additional fields related to employee information.",
"properties": {
"data": {
"type": "object",
"description": "An object containing additional data fields.",
"properties": {
"additionalFields": {
"type": "object",
"description": "An object containing specific additional fields.",
"properties": {}
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the request or response."
},
"status": {
"type": "string",
"description": "A string representing the status of the request or response, indicating success, failure, or another state."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the tenant specific additional fields of a candidate | AdditionalFields |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
Candidate Attachments
These Candidate APIs allow you to add, update, and delete candidate attachments.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/files/v1/candidates/{candidateId}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/files/v1/candidates/{candidateId}/attachments
This API is used to fetch Attachments on the candidate profiles based on candidateId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the attachments of the candidate
copied![
{
"type": "object",
"description": "Object representing attachments.",
"properties": {
"attachments": {
"type": "array",
"description": "Array of attachment items.",
"items": {
"type": "object",
"properties": {
"attachmentId": {
"type": "string",
"description": "Unique identifier for the attachment."
},
"resumeFileName": {
"type": "string",
"description": "Name of the attachment."
},
"attachmentType": {
"type": "string",
"description": "Type of the attachment."
},
"fieldID": {
"type": "string",
"description": "fieldId of the attachment."
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "integer",
"description": "Status code of the response."
}
}
}
]No attachments
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the attachments of the candidate | Attachment |
| 204 | No attachments | EmptyMessage |
| 400 | Wrong request format or parameters missing | ErrorMessage |
| 500 | Exception occurred | ErrorMessage |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/files/v1/candidates/{candidateId}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/files/v1/candidates/{candidateId}/attachments
This API is used to update Attachments on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"attachment": {
"type": "string",
"format": "binary",
"description": "File to be upload."
},
"isParsableResume": {
"type": "boolean",
"description": "Flag indicating whether the attachment is parsable."
}
},
"description": "Schema defining the structure of the request body for adding attachments."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| multipart/form-data | AddAttachmentsRequest |
Response
Successfully added attachments to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"literalId": {
"type": "string",
"description": "Unique identifier for providing details about the response."
},
"literalValues": {
"type": "object",
"description": "Unique values for providing details about the response."
},
"data": {
"type": "object",
"description": "Provides details about the response."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added attachments to candidates | AttachmentUpdateResponse |
| 400 | Wrong request format or parameters missing | ErrorMessage |
| 500 | Exception occurred | ErrorMessage |
delete
copied!# You can also use wgetcurl -X DELETE https://api-qa.phenompro.com/candidates-api/files/v1/candidates/{candidateId}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'DELETE /candidates-api/files/v1/candidates/{candidateId}/attachments
This API is used to delete Attachments from the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"attachments": {
"type": "array",
"items": {
"allOf": {
"0": {
"type": "object",
"properties": {
"attachmentId": {
"type": "string",
"description": "The MD5 checksum of the attachment to be deleted."
},
"resumeFileName": {
"type": "string",
"description": "The name of the attachment to be deleted."
},
"fieldId": {
"type": "string",
"description": "The ID of the attachment field to be deleted."
}
}
},
"1": {
"anyOf": {
"0": {
"required": {
"0": "fieldId"
}
},
"1": {
"required": {
"0": "attachmentId"
}
},
"2": {
"required": {
"0": "resumeFileName"
}
}
}
}
},
"description": "Attachment object — at least one of fieldId, attachmentId, or resumeFileName is required."
},
"description": "Array of attachments to be deleted."
}
},
"description": "Schema defining the structure of the request body for deleting attachments."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | DeleteAttachmentRequest |
Response
Successfully deleted attachments from candidate
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"literalId": {
"type": "string",
"description": "Unique identifier for providing details about the response."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully deleted attachments from candidate | AttachmentDeleteResponse |
| 400 | Wrong request format or parameters missing | ErrorMessage |
| 500 | Exception occurred | ErrorMessage |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/files/v1/candidates/{candidateId}/attachments/{attachmentId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/files/v1/candidates/{candidateId}/attachments/{attachmentId}
This API gets the attachment based on attachmentId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| attachmentId | path | string | true |
Response
Successfully downloaded attachment
copied![
{}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]The web server could not find the requested page or resource
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]File size exceeded
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occured
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully downloaded attachment | |
| 400 | Wrong request format or parameters missing | ErrorMessage |
| 404 | The web server could not find the requested page or resource | ErrorMessage |
| 413 | File size exceeded | ErrorMessage |
| 500 | Exception occured | ErrorMessage |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/files/v1/candidates/{candidateId}/attachments/{attachmentId}/pre-signed-url
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/files/v1/candidates/{candidateId}/attachments/{attachmentId}/pre-signed-url
This API is used to fetch Attachment on the candidate profiles based on candidateId and attachmentId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| attachmentId | path | string | true |
Response
Successfully fetched the attachments of the candidate.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the result of the operation."
},
"fileUrl": {
"type": "string",
"description": "URL pointing to the location of the file which is valid only for 5 minutes."
},
"message": {
"type": "string",
"description": "Description or message providing additional information about the result."
},
"fileName": {
"type": "string",
"description": "Name of the file associated with the operation."
},
"fileSize": {
"type": "integer",
"description": "The size of the file associated with the operation in KBs."
}
},
"required": {
"0": "status",
"1": "fileUrl",
"2": "message",
"3": "fileName",
"4": "fileSize"
},
"description": "Schema defining the structure of the response body for presigned url."
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occured
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the attachments of the candidate. | PreSignedUrl |
| 400 | Wrong request format or parameters missing | ErrorMessage |
| 500 | Exception occured | ErrorMessage |
Candidate Search
These APIs helps to find relevant candidates matching specific keywords or filters.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/candidates-api/v1/candidates/search/
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'POST /candidates-api/v1/candidates/search/
This API assist in discovering candidates that align with applied filters
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"from": {
"type": "integer",
"description": "Starting point from which the data should be retrieved."
},
"size": {
"type": "integer",
"description": "Size of the response."
},
"searchkeyword": {
"type": "string",
"description": "Searching entered keyword in candidate profile."
},
"filters": {
"type": "array",
"description": "Apply one or multiple filters(String, Boolean, Date, or Enum) of below types to refine results.",
"items": {
"oneOf": {
"0": {
"StringFilter": {
"type": "object",
"properties": {
"values": {
"type": "array",
"items": {
"type": "string",
"description": "String representing the values of field."
}
},
"operator": {
"type": "string",
"enum": {
"0": "Is",
"1": "Is not",
"2": "Contains",
"3": "Does not contain",
"4": "Starts with",
"5": "Ends with"
},
"description": "Operator for filtering strings."
},
"field": {
"type": "string",
"enum": {
"0": "firstName",
"1": "currentCompany.jobTitle",
"2": "skillList.value",
"3": "trafficSourceList.sourceShortName",
"4": "experience.jobLocation",
"5": "experience.jobTitle",
"6": "education.degree",
"7": "highestEducation.degree",
"8": "education.fieldOfStudy",
"9": "preferredLocationList.location",
"10": "newLocation.city",
"11": "newLocation.country",
"12": "emailList.email",
"13": "languageKnown",
"14": "lastName",
"15": "newLocation.state",
"16": "newLocation.zipCode"
},
"description": "Name of the data attribute to be filtered with values."
}
},
"required": {
"0": "values",
"1": "operator"
}
}
},
"1": {
"BooleanFilter": {
"type": "object",
"properties": {
"value": {
"type": "boolean",
"description": "The boolean value to filter by."
},
"operator": {
"type": "string",
"enum": {
"0": "True",
"1": "False"
},
"description": "Operator for filtering booleans."
},
"field": {
"type": "string",
"enum": {
"0": "internal",
"1": "jtcCandidates"
},
"description": "Name of the data attribute to be filtered with values."
}
},
"required": {
"0": "value",
"1": "operator"
}
}
},
"2": {
"DateFilter": {
"type": "object",
"properties": {
"values": {
"type": "array",
"items": {
"type": "string",
"format": "date",
"description": "String representing the values of date filter."
}
},
"operator": {
"type": "string",
"enum": {
"0": "Equal to",
"1": "Not equal to",
"2": "Before",
"3": "After",
"4": "Between"
},
"description": "Operator for filtering dates."
},
"field": {
"type": "string",
"enum": {
"0": "updatedDate",
"1": "dateCreated"
},
"description": "Name of the data attribute to be filtered with values."
}
},
"required": {
"0": "values",
"1": "operator"
}
}
},
"3": {
"EnumFilter": {
"type": "object",
"properties": {
"values": {
"type": "array",
"items": {
"type": "string",
"description": "String representing the values of field."
}
},
"operator": {
"type": "string",
"enum": {
"0": "In",
"1": "Not in"
},
"description": "Operator for filtering enums."
},
"field": {
"type": "string",
"enum": {
"0": "applySources",
"1": "language"
},
"description": "Name of the data attribute to be filtered with values."
}
},
"required": {
"0": "values",
"1": "operator"
}
}
}
}
}
},
"filtersOperator": {
"type": "string",
"enum": {
"0": "AND",
"1": "OR"
},
"description": "Search operator accepts \"AND\" / \"OR\"."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CandidateSearchRequest |
Response
Returns filtered Candidates.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"data": {
"type": "array",
"description": "Candidate Search Response data.",
"items": {
"CandidateResponse": {
"type": "object",
"description": "An object representing candidate-related information.",
"properties": {
"currentjobTitle": {
"type": "string",
"description": "A string representing job title of the current company for a given individual."
},
"middleName": {
"type": "string",
"description": "The middle name of the candidate."
},
"candidateId": {
"type": "string",
"description": "Unique identifier for the user or candidate."
},
"firstName": {
"type": "string",
"description": "First name of the candidate."
},
"dateCreated": {
"type": "string",
"format": "date-time",
"description": "A timestamp indicating the date and time when the candidate profile was created."
},
"updatedDate": {
"type": "string",
"format": "date-time",
"description": "The date and time when the information was last updated."
},
"emailList": {
"type": "array",
"description": "An array representing an email list.",
"items": {
"Email": {
"type": "object",
"description": "An object representing email-related information.",
"properties": {
"email": {
"type": "string",
"description": "String representing the email address in the list."
},
"type": {
"type": "string",
"description": "String representing the type of email entry."
},
"status": {
"type": "string",
"description": "String representing the status of the email entry."
}
}
}
}
},
"contacts": {
"type": "array",
"description": "An array representing contact information for the individual.",
"items": {
"Contact": {
"type": "object",
"description": "An object representing contact-related information.",
"properties": {
"phoneNumber": {
"type": "string",
"description": "String representing the phone number in the contact entry."
},
"countryCode": {
"type": "string",
"description": "String representing the country code of the phone number."
},
"status": {
"type": "string",
"description": "String representing the status of the contact entry."
},
"type": {
"type": "string",
"description": "String representing the type of contact entry."
}
}
}
}
},
"lastName": {
"type": "string",
"description": "A string representing the last name of the individual."
},
"location": {
"type": "string",
"description": "A string representing the location detail of the individual."
},
"internal": {
"type": "boolean",
"description": "A boolean indicating whether the individual is internal to the organization."
}
}
}
}
},
"totalCount": {
"type": "integer",
"description": "Total number of candidates matching the search criteria."
},
"startIndex": {
"type": "integer",
"description": "Starting index of the returned candidates."
},
"paginationSize": {
"type": "integer",
"description": "The maximum number of candidates to be returned per page"
}
}
}
]Bad Request.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Server Error.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Returns filtered Candidates. | CandidateSearchResponse |
| 400 | Bad Request. | BadRequest |
| 500 | Server Error. | ErrorResponse |
Candidate Onboarding
Endpoints to search candidates and retrieve onboarding information.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/candidates-api/onboarding/v1/candidates/search
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /candidates-api/onboarding/v1/candidates/search
Search onboarding candidates by firstName, lastName, and/or emailId with pagination.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"required": {
"0": "filters"
},
"description": "Search request with structured filters and pagination.",
"properties": {
"filters": {
"CandidateSearchFilters": {
"type": "object",
"description": "At least one non-blank filter is required. Multiple filters are combined with AND. Each filter uses exact case-insensitive match.",
"properties": {
"firstName": {
"type": "string",
"description": "Candidate first name (exact, case-insensitive)."
},
"lastName": {
"type": "string",
"description": "Candidate last name (exact, case-insensitive)."
},
"emailId": {
"type": "string",
"description": "Candidate email (exact, case-insensitive)."
}
}
}
},
"from": {
"type": "integer",
"description": "Starting point from which the data should be retrieved (zero-based offset)."
},
"size": {
"type": "integer",
"description": "Maximum number of candidates to return in this response."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CandidateSearchRequest |
Response
Candidates matching the filters. Results may be empty; when no candidates match.
copied![
{
"type": "object",
"description": "Successful paginated candidate search response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating success."
},
"message": {
"type": "string",
"description": "Outcome message for the client.",
"example": "Candidates fetched successfully"
},
"data": {
"type": "array",
"description": "Matching candidates for the current page.",
"items": {
"CandidateSearchResultItem": {
"type": "object",
"description": "Object shape for each entry in the data array.",
"properties": {
"candidateId": {
"type": "string",
"description": "Candidate identifier."
},
"onboardingCaseId": {
"type": "string",
"description": "Onboarding case identifier."
},
"firstName": {
"type": "string",
"description": "Candidate first name."
},
"middleName": {
"type": "string",
"description": "Candidate middle name."
},
"lastName": {
"type": "string",
"description": "Candidate last name."
},
"emailId": {
"type": "string",
"description": "Candidate email address."
}
}
}
}
},
"totalCount": {
"type": "integer",
"format": "int64",
"description": "Total number of candidates matching the search criteria."
},
"startIndex": {
"type": "integer",
"description": "Zero-based starting index of the returned candidates (same as request from)."
},
"paginationSize": {
"type": "integer",
"description": "Maximum number of candidates returned per page (same as request size)."
}
}
}
]Invalid request (missing/blank filters or invalid pagination).
copied![
{
"type": "object",
"description": "Error payload for failed requests (e.g. 400, 404, 500).",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code for the error."
},
"message": {
"type": "string",
"description": "Description of the error."
}
}
}
]An unexpected server error occurred while processing the request.
copied![
{
"type": "object",
"description": "Error payload for failed requests (e.g. 400, 404, 500).",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code for the error."
},
"message": {
"type": "string",
"description": "Description of the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Candidates matching the filters. Results may be empty; when no candidates match. | CandidateSearchSuccessResponse |
| 400 | Invalid request (missing/blank filters or invalid pagination). | Error |
| 500 | An unexpected server error occurred while processing the request. | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/onboarding/v1/candidates/{candidateId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /candidates-api/onboarding/v1/candidates/{candidateId}
Fetches onboarding data for a candidate. The path identifier may be candidateId or onboardingCaseId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the onboarding details for the given candidate.
copied![
{
"type": "object",
"description": "Successful API response with status, message, and onboarding payload.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating success."
},
"message": {
"type": "string",
"description": "Outcome message for the client (e.g. confirmation that candidate data was fetched).",
"example": "Candidate data fetched successfully"
},
"data": {
"type": "object",
"description": "Onboarding data for the requested candidate.",
"allOf": {
"0": {
"OnboardingData": {
"type": "object",
"description": "Payload returned for a successful candidate onboarding fetch: profile and contact data under candidateDetails, and requisition or job context under jobDetails.",
"properties": {
"candidateDetails": {
"type": "object",
"description": "Candidate details and additional fields for the candidate.",
"allOf": {
"0": {
"CandidateDetails": {
"type": "object",
"description": "Candidate profile: emails, phone contacts, identification, education, work history, address, and tenant-specific custom fields.",
"properties": {
"firstName": {
"type": "string",
"description": "Candidate given name."
},
"middleName": {
"type": "string",
"description": "Candidate middle name."
},
"lastName": {
"type": "string",
"description": "Candidate family name."
},
"gender": {
"type": "string",
"description": "Gender or gender identity as stored for the candidate."
},
"primaryEmailId": {
"type": "string",
"description": "Primary email address used for onboarding communications."
},
"secondaryEmailId": {
"type": "string",
"description": "Secondary or alternate email address."
},
"officialEmailId": {
"type": "string",
"description": "Work or official email address when provided."
},
"dateOfBirth": {
"type": "string",
"format": "date",
"description": "Date of birth as an ISO 8601 calendar date (YYYY-MM-DD)."
},
"joiningDate": {
"type": "string",
"format": "date",
"description": "Expected or planned joining date as an ISO 8601 calendar date (YYYY-MM-DD)."
},
"contacts": {
"type": "array",
"description": "Ordered list of phone contact entries (e.g. primary and secondary); each item may include type, dial code, and number.",
"items": {
"CandidateContact": {
"type": "object",
"description": "A single phone contact line, distinguished by type (for example primary vs secondary).",
"properties": {
"type": {
"type": "string",
"description": "Contact slot or role, such as primary or secondary."
},
"phoneNumber": {
"type": "string",
"description": "Local phone number without country prefix (when present)."
},
"countryCode": {
"type": "string",
"description": "Country or dialing code identifier for the number (format may be tenant-specific, e.g. IND_91)."
}
}
}
}
},
"identificationDetails": {
"type": "array",
"description": "Government or employer identification documents associated with the candidate.",
"items": {
"CandidateIdentification": {
"type": "object",
"description": "One identification document or credential record.",
"properties": {
"type": {
"type": "string",
"description": "Kind of identification (e.g. aadhaar, passport)."
},
"number": {
"type": "string",
"description": "Document or identification number."
},
"location": {
"type": "string",
"description": "Issuing location or jurisdiction, if applicable."
},
"issuedDate": {
"type": "string",
"description": "Issue date as returned by the source (empty string if unknown)."
},
"expiryDate": {
"type": "string",
"description": "Expiry date as returned by the source (empty string if unknown or not applicable)."
},
"status": {
"type": "string",
"description": "Verification or document status when provided."
}
}
}
}
},
"education": {
"type": "array",
"description": "Education history entries.",
"items": {
"CandidateEducation": {
"type": "object",
"description": "A single education record.",
"properties": {
"degree": {
"type": "string",
"description": "Degree or qualification title."
},
"fieldOfStudy": {
"type": "string",
"description": "Major or field of study."
},
"schoolName": {
"type": "string",
"description": "School or institute name."
},
"schoolAndUniversity": {
"type": "string",
"description": "Combined campus, university, or location label when provided."
},
"startDate": {
"type": "string",
"description": "Program start date (format as returned by the source)."
},
"endDate": {
"type": "string",
"description": "Program end date (format as returned by the source)."
},
"isHighEducation": {
"type": "boolean",
"description": "Whether this entry is marked as the highest level of education."
},
"state": {
"type": "string",
"description": "State or region for the institution."
},
"country": {
"type": "string",
"description": "Country for the institution."
}
}
}
}
},
"experience": {
"type": "array",
"description": "Employment history entries.",
"items": {
"CandidateExperience": {
"type": "object",
"description": "A single employment history record.",
"properties": {
"company": {
"type": "string",
"description": "Employer or organization name."
},
"jobTitle": {
"type": "string",
"description": "Job title at the employer."
},
"role": {
"type": "string",
"description": "Role or function (may mirror job title)."
},
"jobLocation": {
"type": "string",
"description": "Work location for this role."
},
"isCurrent": {
"type": "string",
"description": "Whether this is the current employer (e.g. yes or no as stored in source data)."
},
"industry": {
"type": "string",
"description": "Industry sector when captured."
},
"startDate": {
"type": "string",
"description": "Employment start date (format as returned by the source)."
},
"endDate": {
"type": "string",
"description": "Employment end date (format as returned by the source); empty if current."
}
}
}
}
},
"address": {
"type": "object",
"description": "Current and permanent address details.",
"allOf": {
"0": {
"CandidateAddressBlock": {
"type": "object",
"description": "Current and permanent address lines. Both keys are always present; each value is always a StructuredAddress (never null at this level).",
"properties": {
"currentAddress": {
"description": "Current address of the candidate.",
"allOf": {
"0": {
"StructuredAddress": {
"type": "object",
"description": "Structured postal address, including optional validity dates for that address.",
"properties": {
"addressLine1": {
"type": "string",
"description": "First line of the street address."
},
"addressLine2": {
"type": "string",
"description": "Second line of the street address."
},
"city": {
"type": "string",
"description": "City."
},
"zipCode": {
"type": "string",
"description": "Postal or ZIP code."
},
"country": {
"type": "string",
"description": "Country."
},
"state": {
"type": "string",
"description": "State or region."
},
"startDate": {
"type": "string",
"description": "Start date associated with this address (format as returned by the source)."
},
"endDate": {
"type": "string",
"description": "End date associated with this address (format as returned by the source)."
}
}
}
}
}
},
"permanentAddress": {
"description": "Permanent address of the candidate.",
"allOf": {
"0": {
"StructuredAddress": {
"type": "object",
"description": "Structured postal address, including optional validity dates for that address.",
"properties": {
"addressLine1": {
"type": "string",
"description": "First line of the street address."
},
"addressLine2": {
"type": "string",
"description": "Second line of the street address."
},
"city": {
"type": "string",
"description": "City."
},
"zipCode": {
"type": "string",
"description": "Postal or ZIP code."
},
"country": {
"type": "string",
"description": "Country."
},
"state": {
"type": "string",
"description": "State or region."
},
"startDate": {
"type": "string",
"description": "Start date associated with this address (format as returned by the source)."
},
"endDate": {
"type": "string",
"description": "End date associated with this address (format as returned by the source)."
}
}
}
}
}
}
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Tenant- or form-specific custom attributes for the candidate; keys and value types depend on configuration.",
"allOf": {
"0": {
"AdditionalFields": {
"type": "object",
"description": "Tenant- or form-specific custom fields (keys and value types vary by configuration)."
}
}
}
}
}
}
}
}
},
"jobDetails": {
"type": "object",
"description": "Job details and job additional fields for the candidate's job.",
"allOf": {
"0": {
"JobDetails": {
"type": "object",
"description": "Job or requisition context: top-level fields for common attributes, plus additionalFields for ATS, recruiter or hiring-manager contacts, department, and other tenant-specific job metadata.",
"properties": {
"jobTitle": {
"type": "string",
"description": "Title of the job or requisition."
},
"jobId": {
"type": "string",
"description": "Internal or external job identifier."
},
"jobLocation": {
"type": "string",
"description": "Primary job location label or free text."
},
"jobCategory": {
"type": "string",
"description": "Category or family of the role."
},
"positionCode": {
"type": "string",
"description": "Position or requisition code when used by the tenant."
},
"positionTitle": {
"type": "string",
"description": "Position title as distinct from job title when both are maintained."
},
"department": {
"type": "string",
"description": "Hiring department or cost center name."
},
"additionalFields": {
"type": "object",
"description": "Tenant specific custom fields.",
"allOf": {
"0": {
"AdditionalFields": {
"type": "object",
"description": "Tenant- or form-specific custom fields (keys and value types vary by configuration)."
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
]The candidate does not exist or was not found.
copied![
{
"type": "object",
"description": "Error payload for failed requests (e.g. 400, 404, 500).",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code for the error."
},
"message": {
"type": "string",
"description": "Description of the error."
}
}
}
]An unexpected server error occurred while processing the request.
copied![
{
"type": "object",
"description": "Error payload for failed requests (e.g. 400, 404, 500).",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code for the error."
},
"message": {
"type": "string",
"description": "Description of the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the onboarding details for the given candidate. | OnboardingSuccessResponse |
| 404 | The candidate does not exist or was not found. | Error |
| 500 | An unexpected server error occurred while processing the request. | Error |
Onboarding Attachments
Endpoints to retrieve candidate attachments and signed URLs.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/onboarding/v1/candidates/{candidateId}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /candidates-api/onboarding/v1/candidates/{candidateId}/attachments
Fetches attachments metadata list for a candidate. The path identifier may be candidateId or onboardingCaseId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched candidate attachments list.
copied![
{
"type": "object",
"description": "Successful response for candidate attachments list. The data field is a JSON array of attachment items.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating success."
},
"message": {
"type": "string",
"description": "Outcome message for the client.",
"example": "Attachments list fetched successfully"
},
"data": {
"type": "array",
"description": "List of files attached to the candidate for onboarding.",
"items": {
"CandidateAttachment": {
"type": "object",
"description": "Metadata for a single file attached to the candidate.",
"properties": {
"attachmentId": {
"type": "string",
"description": "Unique attachment identifier."
},
"attachmentFileName": {
"type": "string",
"description": "Stored or display file name for the document."
},
"attachmentType": {
"type": "string",
"description": "Document type."
},
"attachmentUploadedAt": {
"type": "string",
"format": "date-time",
"description": "Uploaded date."
}
}
}
}
}
}
}
]The candidate does not exist or was not found.
copied![
{
"type": "object",
"description": "Error payload for failed requests (e.g. 400, 404, 500).",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code for the error."
},
"message": {
"type": "string",
"description": "Description of the error."
}
}
}
]An unexpected server error occurred while processing the request.
copied![
{
"type": "object",
"description": "Error payload for failed requests (e.g. 400, 404, 500).",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code for the error."
},
"message": {
"type": "string",
"description": "Description of the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched candidate attachments list. | CandidateAttachmentsSuccessResponse |
| 404 | The candidate does not exist or was not found. | Error |
| 500 | An unexpected server error occurred while processing the request. | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/onboarding/v1/candidates/{candidateId}/attachments/{attachmentId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /candidates-api/onboarding/v1/candidates/{candidateId}/attachments/{attachmentId}
Fetches signed URL for a candidate attachment using 5-minute expiry. The path identifier may be candidateId or onboardingCaseId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| attachmentId | path | string | true |
Response
Successfully generated signed URL for the attachment.
copied![
{
"type": "object",
"description": "Successful response for attachment signed URL.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating success."
},
"message": {
"type": "string",
"description": "Outcome message for the client.",
"example": "Attachment fetched successfully"
},
"data": {
"type": "object",
"description": "Download details for the requested attachment.",
"allOf": {
"0": {
"CandidateAttachmentSignedUrlData": {
"type": "object",
"description": "Signed download details for a single attachment.",
"properties": {
"attachmentId": {
"type": "string",
"description": "Attachment identifier."
},
"attachmentUrl": {
"type": "string",
"format": "uri",
"description": "Time-limited signed URL to download the file; the URL expires after 5 minutes."
},
"attachmentContentType": {
"type": "string",
"description": "MIME type stored with the document (e.g. application/pdf)."
},
"attachmentSize": {
"type": "integer",
"format": "int64",
"description": "File size in bytes."
}
}
}
}
}
}
}
}
]Not found: either the candidate does not exist, or the attachment does not exist for that candidate (invalid or unknown attachmentId).
copied![
{
"type": "object",
"description": "Error payload for failed requests (e.g. 400, 404, 500).",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code for the error."
},
"message": {
"type": "string",
"description": "Description of the error."
}
}
}
]An unexpected server error occurred while processing the request.
copied![
{
"type": "object",
"description": "Error payload for failed requests (e.g. 400, 404, 500).",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code for the error."
},
"message": {
"type": "string",
"description": "Description of the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully generated signed URL for the attachment. | CandidateAttachmentSignedUrlSuccessResponse |
| 404 | Not found: either the candidate does not exist, or the attachment does not exist for that candidate (invalid or unknown attachmentId). | Error |
| 500 | An unexpected server error occurred while processing the request. | Error |
Applicants
These APIs helps in fetching the required data for applicants.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/applications/v1/jobs/{jobId}/applicants
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/jobs/{jobId}/applicants
This API fetches Applicants for a Job Based on JobId
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | path | string | true |
| from | query | integer | true |
| size | query | integer | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination information for the list of candidates.",
"properties": {
"total": {
"type": "number",
"description": "Total number of candidates in the dataset."
},
"size": {
"type": "number",
"description": "Number of candidates returned in the current response."
},
"from": {
"type": "number",
"description": "Index of the first candidate in the current result set."
}
}
},
"data": {
"type": "object",
"description": "Data object containing information about the candidates.",
"properties": {
"candidates": {
"type": "array",
"description": "Array of candidate objects containing their details.",
"items": {
"type": "object",
"description": "Details of an individual candidate.",
"properties": {
"emails": {
"type": "array",
"description": "Array of email addresses associated with the candidate.",
"items": {
"type": "string"
}
},
"lastName": {
"type": "string",
"description": "Last name of the candidate."
},
"firstName": {
"type": "string",
"description": "First name of the candidate."
},
"dateCreated": {
"type": "string",
"description": "Date when the candidate record was created."
},
"hiringStatus": {
"type": "string",
"description": "Current hiring status of the candidate."
},
"updatedDate": {
"type": "string",
"description": "Date when the candidate record was last updated."
},
"userId": {
"type": "string",
"description": "Unique identifier for the candidate user."
},
"contacts": {
"type": "array",
"description": "Array of contact details associated with the candidate.",
"items": {
"type": "object",
"description": "Details of an individual contact associated with the candidate.",
"properties": {
"originalNumber": {
"type": "string",
"description": "The phone number of the contact."
},
"phoneNumber": {
"type": "string",
"description": "The phone number of the contact."
},
"phoneNumberWithoutCountryCode": {
"type": "string",
"description": "The phone number without country code"
},
"countryCode": {
"type": "string",
"description": "The country code associated with the contact."
}
}
}
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Additional information or a message related to the response."
},
"status": {
"type": "string",
"description": "The status of the response, indicating success or failure."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a bad request scenario with an associated error message.",
"properties": {
"message": {
"type": "string",
"description": "Error message indicating the nature of the bad request."
}
}
}
]Could not find candidate or job.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | Applicants |
| 400 | Wrong request format or parameters missing. | BadRequest |
| 404 | Could not find candidate or job. | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/applications/v1/candidates/{candidateId}/applications
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/applications
This API fetches list of all Applications for a candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Applications fetched successfully
copied![
{
"type": "object",
"description": "Response containing candidate application details.",
"properties": {
"message": {
"type": "string",
"description": "Message associated with the response."
},
"status": {
"type": "number",
"description": "Status code of the response."
},
"data": {
"type": "object",
"description": "Data related to the candidate applications.",
"properties": {
"applications": {
"type": "array",
"description": "List of applications for the candidate.",
"items": {
"Application": {
"type": "object",
"description": "Details of a single application.",
"properties": {
"jobId": {
"type": "string",
"description": "ID of the job associated with the application."
},
"jobTitle": {
"type": "string",
"description": "Title of the job associated with the application."
},
"jobAssociationType": {
"type": "string",
"description": "Indicates how a candidate is related to a job, based on their level of engagement (e.g., Applied)."
},
"hiringStatus": {
"HiringStatusDetail": {
"type": "object",
"description": "Detailed information regarding the current hiring status and workflow step.",
"properties": {
"value": {
"type": "string",
"description": "A string related to the value of the hiring status."
},
"step": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"hiringStatusCode": {
"type": "string",
"description": "A string related to the code of the hiring status value."
},
"hiringStepCode": {
"type": "string",
"description": "A string related to the value of the hiring status step."
},
"disposition": {
"type": "string",
"description": "A string related to the disposition of the hiring status."
},
"previousValue": {
"type": "string",
"description": "A string related to the previous value of the hiring status."
},
"previousStep": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date of the hiring status."
},
"workFlowStepId": {
"type": "string",
"description": "A string related to the work flow step id of the hiring status."
},
"hsPriority": {
"type": "number",
"description": "A string related to the hiring status priority."
},
"previousWorkFlowStepId": {
"type": "string",
"description": "A string related to the previous work flow step id of the hiring status."
},
"rejectionReason": {
"type": "string",
"description": "A string related to the rejection reason."
},
"rejectionReasonId": {
"type": "string",
"description": "A string related to the rejection reason id."
},
"previousHiringStatusCode": {
"type": "string",
"description": "A string related to the previous hiring status code."
},
"previousHiringStepCode": {
"type": "string",
"description": "A string related to the previous hiring status step code."
},
"previousRejectionReason": {
"type": "string",
"description": "A string related to the previous rejection reason."
},
"previousRejectionReasonId": {
"type": "string",
"description": "A string related to the previous rejection reason id."
},
"isRejected": {
"type": "boolean",
"description": "A boolean related to the rejection status."
}
}
}
},
"candidateId": {
"type": "string",
"description": "ID of the user associated with the application."
},
"jobCategory": {
"type": "string",
"description": "Category of the job associated with the application."
},
"crmJobSeekerId": {
"type": "string",
"description": "CRM ID of the job seeker."
},
"phApplicationId": {
"type": "string",
"description": "Phenom application ID."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date."
},
"atsId": {
"type": "string",
"description": "A string related to the ats id."
},
"applicationId": {
"type": "string",
"description": "A string related to the application id."
},
"isConfidential": {
"type": "boolean",
"description": "A boolean related to the confidential status."
},
"appliedEmail": {
"type": "string",
"description": "A string related to the applied email."
},
"trafficSourceList": {
"type": "array",
"description": "Array of traffic sources for this application.",
"items": {
"TrafficSourceDetail": {
"type": "object",
"description": "Details about the source of traffic or referral.",
"properties": {
"sourceShortName": {
"type": "string",
"description": "A string related to the source short name."
},
"sourceFullname": {
"type": "string",
"description": "A string related to the source full name."
},
"referralType": {
"type": "string",
"description": "A string related to the referral type."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"activityTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array related to the activity types."
},
"utmMedium": {
"type": "string",
"description": "A string related to the UTM medium."
},
"utmCampaign": {
"type": "string",
"description": "A string related to the UTM campaign."
}
}
}
}
}
}
}
}
}
}
}
}
}
]Enter valid details
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Candidate does not exist.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Applications fetched successfully | CandidateApplications |
| 400 | Enter valid details | ErrorMessage |
| 404 | Candidate does not exist. | ErrorMessage |
| 500 | Exception occurred. | ErrorMessage |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/additional-fields
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/additional-fields
This API updates job specific additional fields.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"jobSpecificAdditionalFields": {
"type": "object",
"properties": {}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | AdditionalFieldsUpdateRequest |
Response
Successfully updated job specific additional fields of a candidate
copied![
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {},
"description": "Additional data related to the update response, specific details may be included here."
},
"message": {
"type": "string",
"description": "A message providing additional information about the response status or outcome."
},
"status": {
"type": "string",
"description": "The status of the additional fields update response, indicating success or failure."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully updated job specific additional fields of a candidate | AdditionalFieldsUpdateResponse |
| 400 | Wrong request format or parameters missing. | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/additional-fields
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/additional-fields
This API fetches job specific additional fields.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Response
Successfully fetched the job specific additional fields of a candidate
copied![
{
"type": "object",
"description": "Response object for additional fields, typically related to job-specific information.",
"properties": {
"data": {
"type": "object",
"description": "Data object for additional fields information.",
"properties": {
"jobSpecificAdditionalFields": {
"type": "object",
"description": "Additional fields specific to a job."
}
}
},
"message": {
"type": "string",
"description": "A message related to the additional fields."
},
"status": {
"type": "string",
"description": "The overall status of the additional fields response."
}
}
}
]Invalid candidateId and/or jobId
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the job specific additional fields of a candidate | AdditionalFields |
| 404 | Invalid candidateId and/or jobId | Error |
| 500 | Exception occurred | Error |
Hiring Status
The Candidate APIs allows you to add and update Hiring Status of a candidate.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/get-hiring-status
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/get-hiring-status
This API fetches candidate hiring status for a job
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Response
To know if candidate got associated to the Job and his hiring status.
copied![
{
"type": "object",
"description": "Information related to the hiring status.",
"properties": {
"message": {
"type": "string",
"description": "Message associated with the response."
},
"status": {
"type": "number",
"description": "Status of the response."
},
"data": {
"description": "Data related to the hiring status.",
"Application": {
"type": "object",
"description": "Details of a single application.",
"properties": {
"jobId": {
"type": "string",
"description": "ID of the job associated with the application."
},
"jobTitle": {
"type": "string",
"description": "Title of the job associated with the application."
},
"jobAssociationType": {
"type": "string",
"description": "Indicates how a candidate is related to a job, based on their level of engagement (e.g., Applied)."
},
"hiringStatus": {
"HiringStatusDetail": {
"type": "object",
"description": "Detailed information regarding the current hiring status and workflow step.",
"properties": {
"value": {
"type": "string",
"description": "A string related to the value of the hiring status."
},
"step": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"hiringStatusCode": {
"type": "string",
"description": "A string related to the code of the hiring status value."
},
"hiringStepCode": {
"type": "string",
"description": "A string related to the value of the hiring status step."
},
"disposition": {
"type": "string",
"description": "A string related to the disposition of the hiring status."
},
"previousValue": {
"type": "string",
"description": "A string related to the previous value of the hiring status."
},
"previousStep": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date of the hiring status."
},
"workFlowStepId": {
"type": "string",
"description": "A string related to the work flow step id of the hiring status."
},
"hsPriority": {
"type": "number",
"description": "A string related to the hiring status priority."
},
"previousWorkFlowStepId": {
"type": "string",
"description": "A string related to the previous work flow step id of the hiring status."
},
"rejectionReason": {
"type": "string",
"description": "A string related to the rejection reason."
},
"rejectionReasonId": {
"type": "string",
"description": "A string related to the rejection reason id."
},
"previousHiringStatusCode": {
"type": "string",
"description": "A string related to the previous hiring status code."
},
"previousHiringStepCode": {
"type": "string",
"description": "A string related to the previous hiring status step code."
},
"previousRejectionReason": {
"type": "string",
"description": "A string related to the previous rejection reason."
},
"previousRejectionReasonId": {
"type": "string",
"description": "A string related to the previous rejection reason id."
},
"isRejected": {
"type": "boolean",
"description": "A boolean related to the rejection status."
}
}
}
},
"candidateId": {
"type": "string",
"description": "ID of the user associated with the application."
},
"jobCategory": {
"type": "string",
"description": "Category of the job associated with the application."
},
"crmJobSeekerId": {
"type": "string",
"description": "CRM ID of the job seeker."
},
"phApplicationId": {
"type": "string",
"description": "Phenom application ID."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date."
},
"atsId": {
"type": "string",
"description": "A string related to the ats id."
},
"applicationId": {
"type": "string",
"description": "A string related to the application id."
},
"isConfidential": {
"type": "boolean",
"description": "A boolean related to the confidential status."
},
"appliedEmail": {
"type": "string",
"description": "A string related to the applied email."
},
"trafficSourceList": {
"type": "array",
"description": "Array of traffic sources for this application.",
"items": {
"TrafficSourceDetail": {
"type": "object",
"description": "Details about the source of traffic or referral.",
"properties": {
"sourceShortName": {
"type": "string",
"description": "A string related to the source short name."
},
"sourceFullname": {
"type": "string",
"description": "A string related to the source full name."
},
"referralType": {
"type": "string",
"description": "A string related to the referral type."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"activityTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array related to the activity types."
},
"utmMedium": {
"type": "string",
"description": "A string related to the UTM medium."
},
"utmCampaign": {
"type": "string",
"description": "A string related to the UTM campaign."
}
}
}
}
}
}
}
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Could not find candidate or job.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | To know if candidate got associated to the Job and his hiring status. | HiringStatus |
| 400 | Wrong request format or parameters missing. | ErrorMessage |
| 404 | Could not find candidate or job. | ErrorMessage |
| 500 | Exception occurred. | ErrorMessage |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/next-hiring-status
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/next-hiring-status
This API fetches next hiring status of a candidate for the given job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Response
Successfully got the next hiring status for given candidate
copied![
{
"type": "object",
"description": "Represents information about the next hiring status.",
"properties": {
"data": {
"type": "object",
"description": "Details related to the hiring status data.",
"properties": {
"hiringStatusList": {
"type": "array",
"description": "List of hiring statuses and their properties.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the hiring status."
},
"isRejected": {
"type": "boolean",
"description": "Flag indicating whether the hiring status is rejected."
},
"isDefault": {
"type": "boolean",
"description": "Flag indicating whether the hiring status is the default."
},
"statusCode": {
"type": "string",
"description": "Status code of the hiring status."
},
"step": {
"type": "string",
"description": "Current step in the workflow for the hiring status."
},
"transitionStatuses": {
"type": "array",
"description": "List of transition statuses for the current hiring status.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the transition status."
},
"statusCode": {
"type": "string",
"description": "Status code of the transition status."
},
"isRejected": {
"type": "boolean",
"description": "Flag indicating whether the transition status is rejected."
},
"isDefault": {
"type": "boolean",
"description": "Flag indicating whether the transition status is the default."
},
"step": {
"type": "string",
"description": "Current step in the workflow for the transition status."
}
}
}
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Could not find candidate/Job for given identifier
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully got the next hiring status for given candidate | NextHiringStatus |
| 400 | Wrong request format or parameters missing. | Error |
| 404 | Could not find candidate/Job for given identifier | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/update-hiring-status
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/update-hiring-status
This API updates the candidate hiring status for the job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"previousHiringStatus": {
"type": "string",
"description": "The previous hiring status of the candidate."
},
"previousStep": {
"type": "string",
"description": "The previous step in the hiring process."
},
"hiringStatus": {
"type": "string",
"description": "The current hiring status of the candidate."
},
"hiringStep": {
"type": "string",
"description": "The current step in the hiring process."
},
"isRejected": {
"type": "boolean",
"description": "A boolean indicating whether the candidate has been rejected."
},
"rejectionReason": {
"type": "string",
"description": "The reason for candidate rejection."
},
"rejectionReasonId": {
"type": "string",
"description": "The unique identifier for the rejection reason."
},
"rejectCode": {
"type": "string",
"description": "The rejection code associated with the rejection."
},
"workflowStepId": {
"type": "string",
"description": "The unique identifier for the current workflow step."
},
"hiringStatusUpdateDate": {
"type": "string",
"description": "The date when the hiring status was last updated."
},
"currentStatusCode": {
"type": "string",
"description": "The current status code of the hiring process."
},
"currentStepCode": {
"type": "string",
"description": "The current step code of the hiring process."
},
"destinationStatusCode": {
"type": "string",
"description": "The destination status code for the next step in the hiring process."
},
"twoWayRequest": {
"type": "boolean",
"description": "A boolean indicating whether the hiring status update is a two-way request."
},
"recruiterName": {
"type": "string",
"description": "The name of the recruiter making the hiring status update."
},
"recruiterEmail": {
"type": "string",
"description": "The email address of the recruiter making the hiring status update."
},
"recruiterUserId": {
"type": "string",
"description": "The unique identifier for the recruiter making the hiring status update."
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | HiringStatusUpdateRequest |
Response
To update the hiring status of the candidate.
copied![
{
"type": "object",
"description": "Response object for updating hiring status.",
"properties": {
"data": {
"type": "object",
"description": "Empty data object for hiring status update response.",
"properties": {}
},
"message": {
"type": "string",
"description": "A message related to the hiring status update."
},
"status": {
"type": "string",
"description": "The overall status of the hiring status update process."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Invalid JobId
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | To update the hiring status of the candidate. | HiringStatusUpdateResponse |
| 400 | Wrong request format or parameters missing. | Error |
| 404 | Invalid JobId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/applications/v1/candidates/{candidateId}/hiring-status-activities
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/hiring-status-activities
This API fetches hiring status activities of a candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched hiring status activities for given candidate
copied![
{
"type": "object",
"description": "Response object for hiring status activities, including pagination details and activity data.",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination details for the hiring status activities.",
"properties": {
"size": {
"type": "number",
"description": "Number of items per page."
},
"from": {
"type": "number",
"description": "Starting index of the items in the current page."
},
"totalCount": {
"type": "number",
"description": "Total count of hiring status activities across all pages."
}
}
},
"data": {
"type": "array",
"description": "Array of hiring status activity data.",
"items": {
"type": "object",
"description": "Details of a hiring status activity.",
"properties": {
"recruitersUserId": {
"type": "string",
"description": "User ID of the recruiter associated with the activity."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter associated with the activity."
},
"candidateId": {
"type": "string",
"description": "ID of the candidate associated with the activity."
},
"actionType": {
"type": "string",
"description": "Type of action performed in the activity."
},
"createdDate": {
"type": "number",
"description": "Date when the activity was created."
},
"requestSource": {
"type": "string",
"description": "Source of the activity request."
},
"additionalFieldName": {
"type": "string",
"description": "Name of the additional field associated with the activity."
},
"previousValue": {
"type": "string",
"description": "Previous value of the additional field."
},
"updatedValue": {
"type": "string",
"description": "Updated value of the additional field."
},
"actionValue": {
"type": "string",
"description": "Value associated with the action."
},
"subject": {
"type": "string",
"description": "Subject of the activity."
},
"content": {
"type": "string",
"description": "Content of the activity."
},
"categoryName": {
"type": "string",
"description": "Name of the category associated with the activity."
},
"emailResponse": {
"type": "string",
"description": "Email response associated with the activity."
},
"fromEmail": {
"type": "string",
"description": "Email address from which the activity originated."
},
"fromName": {
"type": "string",
"description": "Name associated with the sender of the activity."
},
"toEmail": {
"type": "string",
"description": "Email address of the recipient of the activity."
},
"toName": {
"type": "string",
"description": "Name of the recipient of the activity."
},
"recipeName": {
"type": "string",
"description": "Name of the recipe associated with the activity."
},
"addedNewValue": {
"type": "string",
"description": "New value added in the activity."
}
}
}
},
"message": {
"type": "string",
"description": "A message related to the hiring status activities."
},
"status": {
"type": "string",
"description": "The overall status of the hiring status activities response."
},
"timestamp": {
"type": "string",
"description": "Timestamp indicating when the response was generated."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched hiring status activities for given candidate | HiringStatusActivities |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
Leads
These APIs helps in assigning of multiple candidates as leads for a job.
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/candidates-api/applications/v1/jobs/assign-candidates-to-job
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/applications/v1/jobs/assign-candidates-to-job
This API helps in assigning multiple candidates to a job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"candidateIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of candidate IDs to be assigned to the specified job."
},
"jobId": {
"type": "string",
"description": "The unique identifier of the job to which candidates are to be assigned."
},
"syncToATS": {
"type": "boolean",
"description": "A boolean indicating whether the assignment should be synchronized with the Applicant Tracking System (ATS)."
},
"pushToATS": {
"type": "boolean",
"description": "A boolean indicating whether the assigned candidates should be pushed to the Applicant Tracking System (ATS)."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | AssignCandidatesToJobRequest |
Response
Successfully assigned candidates to job
copied![
{
"type": "object",
"description": "Response object for assigning candidates to a job.",
"properties": {
"data": {
"type": "object",
"description": "Data object for additional information related to the assignment of candidates to a job."
},
"message": {
"type": "string",
"description": "A message related to the assignment of candidates to the job."
},
"status": {
"type": "string",
"description": "The overall status of the assignment process."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully assigned candidates to job | AssignCandidatesToJobResponse |
| 400 | Wrong request format or parameters missing. | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/applications/v1/candidates/{candidateId}/leads
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/leads
This API fetches list of all Leads for a candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Activities fetched successfully
copied![
{
"type": "object",
"description": "Response containing candidate lead details.",
"properties": {
"message": {
"type": "string",
"description": "Message associated with the response."
},
"status": {
"type": "number",
"description": "Status code of the response."
},
"data": {
"type": "object",
"description": "Data related to the candidate leads.",
"properties": {
"activities": {
"type": "array",
"description": "List of leads for the candidate.",
"items": {
"Leads": {
"type": "object",
"description": "Details of a single lead.",
"properties": {
"jobId": {
"type": "string",
"description": "ID of the job associated with the lead."
},
"jobTitle": {
"type": "string",
"description": "Title of the job associated with the lead."
},
"jobAssociationType": {
"type": "string",
"description": "Indicates how a candidate is related to a job, based on their level of engagement (e.g., Applied)."
},
"hiringStatus": {
"type": "object",
"description": "Details of the hiring status for the activity.",
"properties": {
"value": {
"type": "string",
"description": "A string related to the value of the hiring status."
},
"step": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"hiringStatusCode": {
"type": "string",
"description": "A string related to the code of the hiring status value."
},
"hiringStepCode": {
"type": "string",
"description": "A string related to the value of the hiring status step."
},
"disposition": {
"type": "string",
"description": "A string related to the disposition of the hiring status."
},
"previousValue": {
"type": "string",
"description": "A string related to the previous value of the hiring status."
},
"previousStep": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date of the hiring status."
},
"workFlowStepId": {
"type": "string",
"description": "A string related to the work flow step id of the hiring status."
},
"hsPriority": {
"type": "number",
"description": "A string related to the hiring status priority."
},
"previousWorkFlowStepId": {
"type": "string",
"description": "A string related to the previous work flow step id of the hiring status."
},
"rejectionReason": {
"type": "string",
"description": "A string related to the rejection reason."
},
"rejectionReasonId": {
"type": "string",
"description": "A string related to the rejection reason id."
},
"previousHiringStatusCode": {
"type": "string",
"description": "A string related to the previous hiring status code."
},
"previousHiringStepCode": {
"type": "string",
"description": "A string related to the previous hiring status step code."
},
"previousRejectionReason": {
"type": "string",
"description": "A string related to the previous rejection reason."
},
"previousRejectionReasonId": {
"type": "string",
"description": "A string related to the previous rejection reason id."
},
"isRejected": {
"type": "boolean",
"description": "A boolean related to the rejection status."
}
}
},
"candidateId": {
"type": "string",
"description": "ID of the user associated with the activity."
},
"jobCategory": {
"type": "string",
"description": "Category of the job associated with the activity."
},
"crmJobSeekerId": {
"type": "string",
"description": "CRM ID of the job seeker."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date."
},
"atsId": {
"type": "string",
"description": "A string related to the ats id."
},
"applicationId": {
"type": "string",
"description": "A string related to the application id."
},
"isConfidential": {
"type": "boolean",
"description": "A boolean related to the confidential status."
},
"trafficSourceList": {
"type": "array",
"description": "Array of traffic sources for this activity.",
"items": {
"type": "object",
"properties": {
"sourceShortName": {
"type": "string",
"description": "A string related to the source short name."
},
"sourceFullname": {
"type": "string",
"description": "A string related to the source full name."
},
"referralType": {
"type": "string",
"description": "A string related to the referral type."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"activityTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array related to the activity types."
},
"utmMedium": {
"type": "string",
"description": "A string related to the UTM medium."
},
"utmCampaign": {
"type": "string",
"description": "A string related to the UTM campaign."
}
}
}
}
}
}
}
}
}
}
}
}
]Enter valid details
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Candidate does not exist
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Activities fetched successfully | CandidateLeads |
| 400 | Enter valid details | ErrorMessage |
| 404 | Candidate does not exist | ErrorMessage |
| 500 | Exception occurred | ErrorMessage |
Candidate Attachments
These Candidate APIs allow you to add, update, and delete candidate attachments.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/attachments
This API is used to fetch Attachments on the candidate profiles based on candidateId and jobId
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
| applicationId | query | string | false |
Response
Successfully fetched the attachments of the associated job on candidate
copied![
{
"type": "object",
"description": "Object representing attachments.",
"properties": {
"data": {
"type": "object",
"description": "Object containing attachment data.",
"properties": {
"attachments": {
"type": "array",
"description": "Array of attachment items.",
"items": {
"type": "object",
"properties": {
"attachmentId": {
"type": "string",
"description": "Unique identifier for the attachment."
},
"attachmentName": {
"type": "string",
"description": "Name of the attachment."
},
"attachmentType": {
"type": "string",
"description": "Type of the attachment."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the attachments of the associated job on candidate | Attachment |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
Resume Parsing
The process of extracting important information about a candidate from the resume is called Resume Parsing. Information such as candidate’s details, education, experience, etc. mentioned in the resume.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/parser/resume/v1/parse
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /parser/resume/v1/parse
This API takes ‘file name’ and ‘datastream’ as input keys to extract the candidate's information such as name, contact information, email id, education, work experience, and skills etc.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object to parse resume using stream.",
"properties": {
"filename": {
"type": "string",
"description": "Resume file name."
},
"datastream": {
"type": "string",
"description": "Base64 encoded value."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | ResumeRequest |
Response
200 response.
copied![
{
"type": "object",
"description": "Response object after parsing resume.",
"properties": {
"status": {
"type": "string",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Message string."
},
"messageKey": {
"type": "string",
"description": "Message key."
},
"timeStamp": {
"type": "string",
"description": "TimeStamp."
},
"data": {
"type": "object",
"description": "Data object which contains all the parsed fields.",
"properties": {
"resumedata": {
"type": "object",
"description": "Resumedata object which contains all the parsed fields.",
"properties": {
"personname": {
"type": "object",
"description": "Candidate personal details.",
"properties": {
"fullname": {
"type": "string",
"description": "Full name of Candidate."
},
"firstname": {
"type": "string",
"description": "First name of Candidate."
},
"middlename": {
"type": "string",
"description": "Middle name of Candidate."
},
"lastname": {
"type": "string",
"description": "Last name of Candidate."
}
}
},
"mobile": {
"type": "array",
"description": "Candidate contact details.",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"description": "Mobile number of Candidate."
},
"formattednumber": {
"type": "string",
"description": "Formatted number of Candidate."
}
}
}
},
"emailaddress": {
"type": "string",
"description": "Email address of Candidate."
},
"altemailaddress": {
"type": "string",
"description": "Alternate Email other than primary mail."
},
"internetaddress": {
"type": "array",
"description": "Candidate Internet address details.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Internet address type."
},
"url": {
"type": "string",
"description": "Internet address URL."
}
}
}
},
"postaladdress": {
"type": "array",
"description": "Candidate postal details.",
"items": {
"type": "object",
"properties": {
"fulladdress": {
"type": "string",
"description": "Complete postal address."
},
"city": {
"type": "string",
"description": "City mentioned in address."
},
"state": {
"type": "string",
"description": "State mentioned in address."
},
"country": {
"type": "string",
"description": "Country."
},
"zipcode": {
"type": "string",
"description": "Zipcode."
},
"ispresent": {
"type": "string",
"description": "Is it the current address of the candidate."
}
}
}
},
"resumelanguage": {
"type": "string",
"description": "Language of resume content."
},
"languageknown": {
"type": "string",
"description": "Language known by candidate."
},
"experiencesummary": {
"type": "object",
"description": "Candidate experience summary.",
"properties": {
"currentemployer": {
"type": "string",
"description": "Candidate working in current Company."
},
"currentrole": {
"type": "string",
"description": "Current role of candidate."
},
"gapperiod": {
"type": "string",
"description": "Time frame for which candidate is not working."
},
"longeststay": {
"type": "string",
"description": "Longest time frame in a Company."
},
"averagestay": {
"type": "string",
"description": "Average stay."
},
"totalexperienceinmonths": {
"type": "integer",
"description": "Total experience in months."
},
"totalexperienceinyear": {
"type": "string",
"description": "Total experience in year."
}
}
},
"filename": {
"type": "string",
"description": "Attached file name."
},
"resumetext": {
"type": "string",
"description": "Resume Content."
},
"summary": {
"type": "string",
"description": "Summary."
},
"resumeskills": {
"type": "string",
"description": "Resume skills."
},
"skilltaxonomy": {
"type": "array",
"description": "Candidate skills history.",
"items": {
"type": "object",
"properties": {
"skillname": {
"type": "string",
"description": "Skill name."
},
"lastused": {
"type": "string",
"description": "Last used."
},
"monthsused": {
"type": "string",
"description": "Months used."
},
"availability": {
"type": "string",
"description": "Availability."
}
}
}
},
"educationhistory": {
"description": "Candidate education info.",
"type": "array",
"items": {
"type": "object",
"properties": {
"school": {
"type": "string",
"description": "College name."
},
"city": {
"type": "string",
"description": "City."
},
"state": {
"type": "string",
"description": "state"
},
"country": {
"type": "string",
"description": "Country."
},
"degree": {
"type": "string",
"description": "Degree."
},
"startdate": {
"type": "string",
"description": "Joining date."
},
"enddate": {
"type": "string",
"description": "End date."
},
"aggregate": {
"type": "string",
"description": "Aggregate values."
}
}
}
},
"workhistory": {
"description": "Candidate work or experience details.",
"type": "array",
"items": {
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "Company name."
},
"title": {
"type": "string",
"description": "Candidate Title."
},
"city": {
"type": "string",
"description": "City."
},
"state": {
"type": "string",
"description": "State."
},
"country": {
"type": "string",
"description": "Country."
},
"startdate": {
"type": "string",
"description": "Start date"
},
"description": {
"type": "string",
"description": "Experience description."
},
"enddate": {
"type": "string",
"description": "End date."
},
"skill": {
"type": "array",
"description": "Experience section skills.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
]400 response.
copied![
{
"type": "object",
"description": "Error Response.",
"properties": {
"status": {
"type": "string",
"description": "Status code of encountered error."
},
"errors": {
"type": "array",
"description": "Error details.",
"items": {
"type": "object",
"description": "Error details.",
"properties": {
"errorAPI": {
"type": "string",
"description": "Status returned by the API."
},
"errorCode": {
"type": "string",
"description": "ErrorCode by the API."
},
"timeStamp": {
"type": "string",
"description": "TimeStamp."
},
"message": {
"type": "string",
"description": "Error message."
},
"messageKey": {
"type": "string",
"description": "Error message key."
}
}
}
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | ResumeResponse |
| 400 | 400 response. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/parser/resume/v1/parse/file
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /parser/resume/v1/parse/file
This API takes ‘file’ (resume) as input to extract the candidate's information such as name, contact information, email id, education, work experience, and skills etc.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object to parse resume using file.",
"properties": {
"file": {
"type": "string",
"format": "binary",
"description": "Resume upload."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| multipart/form-data | ResumeFileRequest |
Response
200 response.
copied![
{
"type": "object",
"description": "Response object after parsing resume.",
"properties": {
"status": {
"type": "string",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Message string."
},
"messageKey": {
"type": "string",
"description": "Message key."
},
"timeStamp": {
"type": "string",
"description": "TimeStamp."
},
"data": {
"type": "object",
"description": "Data object which contains all the parsed fields.",
"properties": {
"resumedata": {
"type": "object",
"description": "Resumedata object which contains all the parsed fields.",
"properties": {
"personname": {
"type": "object",
"description": "Candidate personal details.",
"properties": {
"fullname": {
"type": "string",
"description": "Full name of Candidate."
},
"firstname": {
"type": "string",
"description": "First name of Candidate."
},
"middlename": {
"type": "string",
"description": "Middle name of Candidate."
},
"lastname": {
"type": "string",
"description": "Last name of Candidate."
}
}
},
"mobile": {
"type": "array",
"description": "Candidate contact details.",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"description": "Mobile number of Candidate."
},
"formattednumber": {
"type": "string",
"description": "Formatted number of Candidate."
}
}
}
},
"emailaddress": {
"type": "string",
"description": "Email address of Candidate."
},
"altemailaddress": {
"type": "string",
"description": "Alternate Email other than primary mail."
},
"internetaddress": {
"type": "array",
"description": "Candidate Internet address details.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Internet address type."
},
"url": {
"type": "string",
"description": "Internet address URL."
}
}
}
},
"postaladdress": {
"type": "array",
"description": "Candidate postal details.",
"items": {
"type": "object",
"properties": {
"fulladdress": {
"type": "string",
"description": "Complete postal address."
},
"city": {
"type": "string",
"description": "City mentioned in address."
},
"state": {
"type": "string",
"description": "State mentioned in address."
},
"country": {
"type": "string",
"description": "Country."
},
"zipcode": {
"type": "string",
"description": "Zipcode."
},
"ispresent": {
"type": "string",
"description": "Is it the current address of the candidate."
}
}
}
},
"resumelanguage": {
"type": "string",
"description": "Language of resume content."
},
"languageknown": {
"type": "string",
"description": "Language known by candidate."
},
"experiencesummary": {
"type": "object",
"description": "Candidate experience summary.",
"properties": {
"currentemployer": {
"type": "string",
"description": "Candidate working in current Company."
},
"currentrole": {
"type": "string",
"description": "Current role of candidate."
},
"gapperiod": {
"type": "string",
"description": "Time frame for which candidate is not working."
},
"longeststay": {
"type": "string",
"description": "Longest time frame in a Company."
},
"averagestay": {
"type": "string",
"description": "Average stay."
},
"totalexperienceinmonths": {
"type": "integer",
"description": "Total experience in months."
},
"totalexperienceinyear": {
"type": "string",
"description": "Total experience in year."
}
}
},
"filename": {
"type": "string",
"description": "Attached file name."
},
"resumetext": {
"type": "string",
"description": "Resume Content."
},
"summary": {
"type": "string",
"description": "Summary."
},
"resumeskills": {
"type": "string",
"description": "Resume skills."
},
"skilltaxonomy": {
"type": "array",
"description": "Candidate skills history.",
"items": {
"type": "object",
"properties": {
"skillname": {
"type": "string",
"description": "Skill name."
},
"lastused": {
"type": "string",
"description": "Last used."
},
"monthsused": {
"type": "string",
"description": "Months used."
},
"availability": {
"type": "string",
"description": "Availability."
}
}
}
},
"educationhistory": {
"description": "Candidate education info.",
"type": "array",
"items": {
"type": "object",
"properties": {
"school": {
"type": "string",
"description": "College name."
},
"city": {
"type": "string",
"description": "City."
},
"state": {
"type": "string",
"description": "state"
},
"country": {
"type": "string",
"description": "Country."
},
"degree": {
"type": "string",
"description": "Degree."
},
"startdate": {
"type": "string",
"description": "Joining date."
},
"enddate": {
"type": "string",
"description": "End date."
},
"aggregate": {
"type": "string",
"description": "Aggregate values."
}
}
}
},
"workhistory": {
"description": "Candidate work or experience details.",
"type": "array",
"items": {
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "Company name."
},
"title": {
"type": "string",
"description": "Candidate Title."
},
"city": {
"type": "string",
"description": "City."
},
"state": {
"type": "string",
"description": "State."
},
"country": {
"type": "string",
"description": "Country."
},
"startdate": {
"type": "string",
"description": "Start date"
},
"description": {
"type": "string",
"description": "Experience description."
},
"enddate": {
"type": "string",
"description": "End date."
},
"skill": {
"type": "array",
"description": "Experience section skills.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
]400 response.
copied![
{
"type": "object",
"description": "Error Response.",
"properties": {
"status": {
"type": "string",
"description": "Status code of encountered error."
},
"errors": {
"type": "array",
"description": "Error details.",
"items": {
"type": "object",
"description": "Error details.",
"properties": {
"errorAPI": {
"type": "string",
"description": "Status returned by the API."
},
"errorCode": {
"type": "string",
"description": "ErrorCode by the API."
},
"timeStamp": {
"type": "string",
"description": "TimeStamp."
},
"message": {
"type": "string",
"description": "Error message."
},
"messageKey": {
"type": "string",
"description": "Error message key."
}
}
}
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | ResumeResponse |
| 400 | 400 response. | ErrorResponse |
Job Parsing
The process of extracting important information from the raw job description is called Job Parsing. This information can include things like job titles, required skills, required experience, job duties, and qualifications.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/parser/job/v1/parse
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /parser/job/v1/parse
This API extract various features, such as job titles, required skills, required experience, etc. from the raw job descriptions. It also enhances these extracted features and stores them in a database for use in Phenom AI systems.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request data information.",
"properties": {
"jobDescription": {
"type": "string",
"description": "Raw job description."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | JDRequest |
Response
found the API.
copied![
{
"type": "object",
"description": "Response data information.",
"properties": {
"status": {
"type": "integer"
},
"skills": {
"type": "array",
"description": "All extracted skills deemed important by skills importance.",
"items": {
"type": "string"
}
},
"skillRanking": {
"type": "array",
"description": "Importantness of extracted skills.",
"items": {
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "Extracted skill name."
},
"score": {
"type": "number",
"format": "float",
"description": "Extracted skill importance score."
}
}
}
},
"jobTeaser": {
"type": "string",
"description": "Job teaser from description."
},
"jobExperience": {
"type": "object",
"description": "Extracted experience information.",
"properties": {
"minOverallExp": {
"type": "integer",
"description": "Minimum experience required."
},
"maxOverallExp": {
"type": "integer",
"description": "Maximum experience required."
}
}
},
"language": {
"type": "string",
"description": "Job language."
},
"requirementSentences": {
"type": "array",
"description": "All requirement sentences.",
"items": {
"type": "string"
}
},
"responsibilitySentences": {
"type": "array",
"description": "All responsibility sentences.",
"items": {
"type": "string"
}
},
"experienceSentences": {
"type": "array",
"description": "All experience sentences.",
"items": {
"type": "string"
}
},
"softSkillsSentences": {
"type": "array",
"description": "All soft skill sentences.",
"items": {
"type": "string"
}
},
"skillsSentences": {
"type": "array",
"description": "All required skills sentences.",
"items": {
"type": "string"
}
},
"educationSentences": {
"type": "array",
"description": "All education/degree related sentences.",
"items": {
"type": "string"
}
},
"jobZone": {
"type": "integer",
"description": "Job zone."
},
"onet": {
"type": "array",
"description": "O*NET information containing onet code, title and score.",
"items": {
"type": "object",
"properties": {
"onetCode": {
"type": "string",
"description": "Job special code according O*NET standard."
},
"onetTitle": {
"type": "string",
"description": "Job special title according O*NET standard."
},
"score": {
"type": "number",
"format": "float",
"description": "O*NET score."
},
"version": {
"type": "number",
"format": "float",
"description": "O*NET version."
}
}
}
},
"jobPreferredLanguages": {
"type": "string",
"description": "Preferred languages mentioned in the job description."
},
"jobTypeFields": {
"type": "object",
"description": "Information about job experience type.",
"properties": {
"jobType": {
"type": "string",
"description": "Job type part-time/full-time."
},
"isIntern": {
"type": "boolean",
"description": "Is intern job."
},
"experienceType": {
"type": "string",
"description": "Experience Level."
},
"isEntrylevel": {
"type": "boolean",
"description": "Is entry level job."
}
}
},
"cleanedTitle": {
"type": "string",
"description": "Noise free title."
},
"languageFullform": {
"type": "string",
"description": "Job Language full form."
},
"jobDomain": {
"type": "string",
"description": "Job domain."
}
}
}
]Some exception occured while extracting features.
copied![
{
"type": "object",
"description": "Error Response.",
"properties": {
"status": {
"type": "string",
"description": "Status code of encountered error."
},
"errors": {
"type": "array",
"description": "Error details.",
"items": {
"type": "object",
"description": "Error details.",
"properties": {
"errorAPI": {
"type": "string",
"description": "Status returned by the API."
},
"errorCode": {
"type": "string",
"description": "ErrorCode by the API."
},
"timeStamp": {
"type": "string",
"description": "TimeStamp."
},
"message": {
"type": "string",
"description": "Error message."
},
"messageKey": {
"type": "string",
"description": "Error message key."
}
}
}
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | found the API. | JobResponse |
| 400 | Some exception occured while extracting features. | ErrorResponse |
User Management
API endpoints for user management.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/user-management/v1/users/search
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /user-management/v1/users/search
This API searches for users based on given filters.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Flag to indicate if the search functionality is enabled."
},
"searchKeyword": {
"type": "string",
"description": "Keyword to search for in user data."
},
"userIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of user IDs to include in the search."
},
"product": {
"type": "object",
"properties": {
"productTitle": {
"type": "string",
"description": "Title of the product associated with the user."
},
"roles": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of roles associated with the product."
}
},
"description": "Product-related search criteria."
},
"dateFilter": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the date filter."
},
"startDate": {
"type": "string",
"description": "Start date for the date filter."
},
"endDate": {
"type": "string",
"description": "End date for the date filter."
}
}
},
"description": "List of date filters for the search."
},
"usernames": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of usernames to include in the search."
},
"sortColumn": {
"type": "string",
"description": "Column to sort the search results by."
},
"sortOrder": {
"type": "string",
"description": "Order to sort the search results (ascending or descending)."
},
"selectors": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of selectors for the search."
},
"from": {
"type": "string",
"description": "Starting point for paginated results."
},
"size": {
"type": "string",
"description": "Number of results to return per page."
},
"is2FAEnabled": {
"type": "boolean",
"description": "Flag to indicate if 2FA is enabled for the users."
}
},
"description": "Request object for user search."
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | SearchRequest |
Response
Successful response
copied![
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the user."
},
"userName": {
"type": "string",
"description": "Username of the user."
},
"firstName": {
"type": "string",
"description": "First name of the user."
},
"lastName": {
"type": "string",
"description": "Last name of the user."
},
"realm": {
"type": "string",
"description": "Realm of the user."
},
"email": {
"type": "string",
"description": "Email address of the user."
},
"userDesc": {
"type": "string",
"description": "Description of the user."
},
"enabled": {
"type": "boolean",
"description": "Flag indicating if the user is enabled."
},
"userType": {
"type": "string",
"description": "Type of the user."
},
"legacyUserId": {
"type": "string",
"description": "Legacy ID of the user."
},
"isEmailVerified": {
"type": "boolean",
"description": "Flag indicating if the user's email is verified."
},
"createdOn": {
"type": "number",
"description": "Timestamp indicating when the user was created."
},
"appAccessCount": {
"type": "number",
"description": "Count of applications the user has access to."
},
"groupCount": {
"type": "number",
"description": "Count of groups the user is a part of."
},
"configureOtp": {
"type": "boolean",
"description": "Flag indicating if OTP is configured for the user."
},
"orgName": {
"type": "string",
"description": "Name of the organization associated with the user."
}
}
},
"description": "List of user data."
},
"status": {
"type": "boolean",
"description": "Status of the search operation."
},
"errorCode": {
"type": "string",
"description": "The HTTP status code."
},
"errorDesc": {
"type": "string",
"description": "Description of the error."
},
"warningDesc": {
"type": "string",
"description": "Description of any warnings."
},
"from": {
"type": "number",
"description": "Starting index of the returned results."
},
"size": {
"type": "number",
"description": "Number of results returned in the response."
},
"total": {
"type": "number",
"description": "Total number of results matching the search criteria."
}
},
"description": "Response object for user search."
}
]Bad request
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"status": {
"type": "integer",
"description": "The HTTP status code."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
}
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized response schema.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the response."
},
"status": {
"type": "integer",
"description": "The HTTP status code (e.g., 401)."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
},
"path": {
"type": "string",
"description": "The request path that led to this response."
}
}
}
]Forbidden
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"status": {
"type": "integer",
"description": "The HTTP status code."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"status": {
"type": "integer",
"description": "The HTTP status code."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successful response | SearchResponse |
| 400 | Bad request | ErrorResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
SCIM
API endpoints specifically designed for User Management using the SCIM protocol. This includes operations related to user management.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/user-management/scim/v2/Users
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /user-management/scim/v2/Users
This API retrieves the list of all the users.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| filter | query | string | false |
Response
Successful response
copied![
{
"type": "object",
"description": "Schema representing a list of SCIM Users.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of strings indicating the available schemas for the resource."
},
"id": {
"type": "string",
"description": "The unique identifier for the User List."
},
"Resources": {
"type": "array",
"description": "List of SCIM Users.",
"items": {
"ScimUser": {
"type": "object",
"description": "Schema representing a SCIM User.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of strings indicating the available schemas for the resource."
},
"id": {
"type": "string",
"description": "The unique identifier for the User."
},
"userName": {
"type": "string",
"description": "Unique identifier for the User, typically used by the user to directly authenticate to the service provider."
},
"name": {
"type": "object",
"description": "User's name.",
"properties": {
"familyName": {
"type": "string",
"description": "User's family name."
},
"givenName": {
"type": "string",
"description": "User's given name."
},
"middleName": {
"type": "string",
"description": "User's middle name."
}
}
},
"displayName": {
"type": "string",
"description": "User's display name."
},
"title": {
"type": "string",
"description": "User's title or job position."
},
"userType": {
"type": "string",
"description": "Type of user."
},
"active": {
"type": "boolean",
"description": "Indicates whether the user is active."
},
"emails": {
"type": "array",
"description": "User's email addresses.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Email address."
},
"type": {
"type": "string",
"description": "Type of email address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the email address is the primary one."
}
}
}
},
"photos": {
"type": "array",
"description": "User's photos.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "URL of the photo."
},
"type": {
"type": "string",
"description": "Type of photo."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the photo is the primary one."
}
}
}
},
"phoneNumbers": {
"type": "array",
"description": "User's phone numbers.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Phone number."
},
"type": {
"type": "string",
"description": "Type of phone number."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the phone number is the primary one."
}
}
}
},
"addresses": {
"type": "array",
"description": "User's addresses.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the address is the primary one."
},
"formatted": {
"type": "string",
"description": "Formatted address."
},
"locality": {
"type": "string",
"description": "Locality or city of the address."
},
"region": {
"type": "string",
"description": "Region or state of the address."
}
}
}
},
"roles": {
"type": "array",
"description": "An array representing the roles assigned to the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The name of the role assigned to the user."
},
"type": {
"type": "string",
"description": "The product associated with the role."
}
}
}
},
"groups": {
"type": "array",
"description": "An array representing the tenants associated with the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The unique refnum identifying the tenant."
},
"display": {
"type": "string",
"description": "The name of the tenant."
}
}
}
},
"entitlements": {
"type": "array",
"description": "User's entitlements.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Entitlement value."
},
"display": {
"type": "string",
"description": "Display name of the entitlement."
},
"type": {
"type": "string",
"description": "Type of entitlement."
}
}
}
}
}
}
}
},
"startIndex": {
"type": "integer",
"format": "int32",
"description": "Index of the first result in the current set of search results."
},
"itemsPerPage": {
"type": "integer",
"format": "int32",
"description": "Number of items per page in the current set of search results."
},
"totalResults": {
"type": "integer",
"format": "int32",
"description": "Total number of results."
},
"externalId": {
"type": "string",
"description": "External identifier for the User List."
},
"meta": {
"type": "object",
"description": "Additional metadata for the User List.",
"properties": {
"createdDate": {
"type": "string",
"description": "Date when the User List was created."
}
}
}
}
}
]Bad request
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized response schema.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the response."
},
"status": {
"type": "integer",
"description": "The HTTP status code (e.g., 401)."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
},
"path": {
"type": "string",
"description": "The request path that led to this response."
}
}
}
]Forbidden
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successful response | ScimUserList |
| 400 | Bad request | ErrorResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/user-management/scim/v2/Users
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /user-management/scim/v2/Users
This API creates a user.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Schema representing a SCIM User.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of strings indicating the available schemas for the resource."
},
"id": {
"type": "string",
"description": "The unique identifier for the User."
},
"userName": {
"type": "string",
"description": "Unique identifier for the User, typically used by the user to directly authenticate to the service provider."
},
"name": {
"type": "object",
"description": "User's name.",
"properties": {
"familyName": {
"type": "string",
"description": "User's family name."
},
"givenName": {
"type": "string",
"description": "User's given name."
},
"middleName": {
"type": "string",
"description": "User's middle name."
}
}
},
"displayName": {
"type": "string",
"description": "User's display name."
},
"title": {
"type": "string",
"description": "User's title or job position."
},
"userType": {
"type": "string",
"description": "Type of user."
},
"active": {
"type": "boolean",
"description": "Indicates whether the user is active."
},
"emails": {
"type": "array",
"description": "User's email addresses.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Email address."
},
"type": {
"type": "string",
"description": "Type of email address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the email address is the primary one."
}
}
}
},
"photos": {
"type": "array",
"description": "User's photos.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "URL of the photo."
},
"type": {
"type": "string",
"description": "Type of photo."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the photo is the primary one."
}
}
}
},
"phoneNumbers": {
"type": "array",
"description": "User's phone numbers.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Phone number."
},
"type": {
"type": "string",
"description": "Type of phone number."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the phone number is the primary one."
}
}
}
},
"addresses": {
"type": "array",
"description": "User's addresses.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the address is the primary one."
},
"formatted": {
"type": "string",
"description": "Formatted address."
},
"locality": {
"type": "string",
"description": "Locality or city of the address."
},
"region": {
"type": "string",
"description": "Region or state of the address."
}
}
}
},
"roles": {
"type": "array",
"description": "An array representing the roles assigned to the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The name of the role assigned to the user."
},
"type": {
"type": "string",
"description": "The product associated with the role."
}
}
}
},
"groups": {
"type": "array",
"description": "An array representing the tenants associated with the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The unique refnum identifying the tenant."
},
"display": {
"type": "string",
"description": "The name of the tenant."
}
}
}
},
"entitlements": {
"type": "array",
"description": "User's entitlements.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Entitlement value."
},
"display": {
"type": "string",
"description": "Display name of the entitlement."
},
"type": {
"type": "string",
"description": "Type of entitlement."
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | ScimUser |
Response
Successful response
copied![
{
"type": "object",
"description": "Schema representing a SCIM User.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of strings indicating the available schemas for the resource."
},
"id": {
"type": "string",
"description": "The unique identifier for the User."
},
"userName": {
"type": "string",
"description": "Unique identifier for the User, typically used by the user to directly authenticate to the service provider."
},
"name": {
"type": "object",
"description": "User's name.",
"properties": {
"familyName": {
"type": "string",
"description": "User's family name."
},
"givenName": {
"type": "string",
"description": "User's given name."
},
"middleName": {
"type": "string",
"description": "User's middle name."
}
}
},
"displayName": {
"type": "string",
"description": "User's display name."
},
"title": {
"type": "string",
"description": "User's title or job position."
},
"userType": {
"type": "string",
"description": "Type of user."
},
"active": {
"type": "boolean",
"description": "Indicates whether the user is active."
},
"emails": {
"type": "array",
"description": "User's email addresses.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Email address."
},
"type": {
"type": "string",
"description": "Type of email address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the email address is the primary one."
}
}
}
},
"photos": {
"type": "array",
"description": "User's photos.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "URL of the photo."
},
"type": {
"type": "string",
"description": "Type of photo."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the photo is the primary one."
}
}
}
},
"phoneNumbers": {
"type": "array",
"description": "User's phone numbers.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Phone number."
},
"type": {
"type": "string",
"description": "Type of phone number."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the phone number is the primary one."
}
}
}
},
"addresses": {
"type": "array",
"description": "User's addresses.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the address is the primary one."
},
"formatted": {
"type": "string",
"description": "Formatted address."
},
"locality": {
"type": "string",
"description": "Locality or city of the address."
},
"region": {
"type": "string",
"description": "Region or state of the address."
}
}
}
},
"roles": {
"type": "array",
"description": "An array representing the roles assigned to the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The name of the role assigned to the user."
},
"type": {
"type": "string",
"description": "The product associated with the role."
}
}
}
},
"groups": {
"type": "array",
"description": "An array representing the tenants associated with the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The unique refnum identifying the tenant."
},
"display": {
"type": "string",
"description": "The name of the tenant."
}
}
}
},
"entitlements": {
"type": "array",
"description": "User's entitlements.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Entitlement value."
},
"display": {
"type": "string",
"description": "Display name of the entitlement."
},
"type": {
"type": "string",
"description": "Type of entitlement."
}
}
}
}
}
}
]Bad request
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized response schema.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the response."
},
"status": {
"type": "integer",
"description": "The HTTP status code (e.g., 401)."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
},
"path": {
"type": "string",
"description": "The request path that led to this response."
}
}
}
]Forbidden
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successful response | ScimUser |
| 400 | Bad request | ErrorResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/user-management/scim/v2/Users/{userId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /user-management/scim/v2/Users/{userId}
This API retrieves a user by ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| userId | path | string | true |
Response
Successful response
copied![
{
"type": "object",
"description": "Schema representing a SCIM User.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of strings indicating the available schemas for the resource."
},
"id": {
"type": "string",
"description": "The unique identifier for the User."
},
"userName": {
"type": "string",
"description": "Unique identifier for the User, typically used by the user to directly authenticate to the service provider."
},
"name": {
"type": "object",
"description": "User's name.",
"properties": {
"familyName": {
"type": "string",
"description": "User's family name."
},
"givenName": {
"type": "string",
"description": "User's given name."
},
"middleName": {
"type": "string",
"description": "User's middle name."
}
}
},
"displayName": {
"type": "string",
"description": "User's display name."
},
"title": {
"type": "string",
"description": "User's title or job position."
},
"userType": {
"type": "string",
"description": "Type of user."
},
"active": {
"type": "boolean",
"description": "Indicates whether the user is active."
},
"emails": {
"type": "array",
"description": "User's email addresses.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Email address."
},
"type": {
"type": "string",
"description": "Type of email address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the email address is the primary one."
}
}
}
},
"photos": {
"type": "array",
"description": "User's photos.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "URL of the photo."
},
"type": {
"type": "string",
"description": "Type of photo."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the photo is the primary one."
}
}
}
},
"phoneNumbers": {
"type": "array",
"description": "User's phone numbers.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Phone number."
},
"type": {
"type": "string",
"description": "Type of phone number."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the phone number is the primary one."
}
}
}
},
"addresses": {
"type": "array",
"description": "User's addresses.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the address is the primary one."
},
"formatted": {
"type": "string",
"description": "Formatted address."
},
"locality": {
"type": "string",
"description": "Locality or city of the address."
},
"region": {
"type": "string",
"description": "Region or state of the address."
}
}
}
},
"roles": {
"type": "array",
"description": "An array representing the roles assigned to the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The name of the role assigned to the user."
},
"type": {
"type": "string",
"description": "The product associated with the role."
}
}
}
},
"groups": {
"type": "array",
"description": "An array representing the tenants associated with the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The unique refnum identifying the tenant."
},
"display": {
"type": "string",
"description": "The name of the tenant."
}
}
}
},
"entitlements": {
"type": "array",
"description": "User's entitlements.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Entitlement value."
},
"display": {
"type": "string",
"description": "Display name of the entitlement."
},
"type": {
"type": "string",
"description": "Type of entitlement."
}
}
}
}
}
}
]Bad request
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized response schema.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the response."
},
"status": {
"type": "integer",
"description": "The HTTP status code (e.g., 401)."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
},
"path": {
"type": "string",
"description": "The request path that led to this response."
}
}
}
]Forbidden
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successful response | ScimUser |
| 400 | Bad request | ErrorResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
put
copied!# You can also use wgetcurl -X PUT https://api-qa.phenompro.com/user-management/scim/v2/Users/{userId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'PUT /user-management/scim/v2/Users/{userId}
This API updates a user by ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Schema representing a SCIM User.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of strings indicating the available schemas for the resource."
},
"id": {
"type": "string",
"description": "The unique identifier for the User."
},
"userName": {
"type": "string",
"description": "Unique identifier for the User, typically used by the user to directly authenticate to the service provider."
},
"name": {
"type": "object",
"description": "User's name.",
"properties": {
"familyName": {
"type": "string",
"description": "User's family name."
},
"givenName": {
"type": "string",
"description": "User's given name."
},
"middleName": {
"type": "string",
"description": "User's middle name."
}
}
},
"displayName": {
"type": "string",
"description": "User's display name."
},
"title": {
"type": "string",
"description": "User's title or job position."
},
"userType": {
"type": "string",
"description": "Type of user."
},
"active": {
"type": "boolean",
"description": "Indicates whether the user is active."
},
"emails": {
"type": "array",
"description": "User's email addresses.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Email address."
},
"type": {
"type": "string",
"description": "Type of email address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the email address is the primary one."
}
}
}
},
"photos": {
"type": "array",
"description": "User's photos.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "URL of the photo."
},
"type": {
"type": "string",
"description": "Type of photo."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the photo is the primary one."
}
}
}
},
"phoneNumbers": {
"type": "array",
"description": "User's phone numbers.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Phone number."
},
"type": {
"type": "string",
"description": "Type of phone number."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the phone number is the primary one."
}
}
}
},
"addresses": {
"type": "array",
"description": "User's addresses.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the address is the primary one."
},
"formatted": {
"type": "string",
"description": "Formatted address."
},
"locality": {
"type": "string",
"description": "Locality or city of the address."
},
"region": {
"type": "string",
"description": "Region or state of the address."
}
}
}
},
"roles": {
"type": "array",
"description": "An array representing the roles assigned to the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The name of the role assigned to the user."
},
"type": {
"type": "string",
"description": "The product associated with the role."
}
}
}
},
"groups": {
"type": "array",
"description": "An array representing the tenants associated with the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The unique refnum identifying the tenant."
},
"display": {
"type": "string",
"description": "The name of the tenant."
}
}
}
},
"entitlements": {
"type": "array",
"description": "User's entitlements.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Entitlement value."
},
"display": {
"type": "string",
"description": "Display name of the entitlement."
},
"type": {
"type": "string",
"description": "Type of entitlement."
}
}
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| userId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | ScimUser |
Response
Successful response
copied![
{
"type": "object",
"description": "Schema representing a SCIM User.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of strings indicating the available schemas for the resource."
},
"id": {
"type": "string",
"description": "The unique identifier for the User."
},
"userName": {
"type": "string",
"description": "Unique identifier for the User, typically used by the user to directly authenticate to the service provider."
},
"name": {
"type": "object",
"description": "User's name.",
"properties": {
"familyName": {
"type": "string",
"description": "User's family name."
},
"givenName": {
"type": "string",
"description": "User's given name."
},
"middleName": {
"type": "string",
"description": "User's middle name."
}
}
},
"displayName": {
"type": "string",
"description": "User's display name."
},
"title": {
"type": "string",
"description": "User's title or job position."
},
"userType": {
"type": "string",
"description": "Type of user."
},
"active": {
"type": "boolean",
"description": "Indicates whether the user is active."
},
"emails": {
"type": "array",
"description": "User's email addresses.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Email address."
},
"type": {
"type": "string",
"description": "Type of email address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the email address is the primary one."
}
}
}
},
"photos": {
"type": "array",
"description": "User's photos.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "URL of the photo."
},
"type": {
"type": "string",
"description": "Type of photo."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the photo is the primary one."
}
}
}
},
"phoneNumbers": {
"type": "array",
"description": "User's phone numbers.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Phone number."
},
"type": {
"type": "string",
"description": "Type of phone number."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the phone number is the primary one."
}
}
}
},
"addresses": {
"type": "array",
"description": "User's addresses.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of address."
},
"primary": {
"type": "boolean",
"description": "Indicates whether the address is the primary one."
},
"formatted": {
"type": "string",
"description": "Formatted address."
},
"locality": {
"type": "string",
"description": "Locality or city of the address."
},
"region": {
"type": "string",
"description": "Region or state of the address."
}
}
}
},
"roles": {
"type": "array",
"description": "An array representing the roles assigned to the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The name of the role assigned to the user."
},
"type": {
"type": "string",
"description": "The product associated with the role."
}
}
}
},
"groups": {
"type": "array",
"description": "An array representing the tenants associated with the user.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The unique refnum identifying the tenant."
},
"display": {
"type": "string",
"description": "The name of the tenant."
}
}
}
},
"entitlements": {
"type": "array",
"description": "User's entitlements.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Entitlement value."
},
"display": {
"type": "string",
"description": "Display name of the entitlement."
},
"type": {
"type": "string",
"description": "Type of entitlement."
}
}
}
}
}
}
]Bad request
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized response schema.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the response."
},
"status": {
"type": "integer",
"description": "The HTTP status code (e.g., 401)."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
},
"path": {
"type": "string",
"description": "The request path that led to this response."
}
}
}
]Forbidden
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successful response | ScimUser |
| 400 | Bad request | ErrorResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
patch
copied!# You can also use wgetcurl -X PATCH https://api-qa.phenompro.com/user-management/scim/v2/Users/{userId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'PATCH /user-management/scim/v2/Users/{userId}
This API updates the given fields of a user by ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Schema representing a SCIM Patch Request.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of strings indicating the available schemas for the resource."
},
"operations": {
"type": "array",
"description": "List of patch operations.",
"items": {
"type": "object",
"properties": {
"op": {
"type": "string",
"description": "Operation type (add, remove, replace)."
},
"path": {
"type": "string",
"description": "Path to the attribute being patched."
},
"value": {
"description": "New value for the attribute being patched."
}
}
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| userId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | ScimPatchRequest |
Response
Successful response with no content
copied![]Bad request
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized response schema.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the response."
},
"status": {
"type": "integer",
"description": "The HTTP status code (e.g., 401)."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
},
"path": {
"type": "string",
"description": "The request path that led to this response."
}
}
}
]Forbidden
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 204 | Successful response with no content | |
| 400 | Bad request | ErrorResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
delete
copied!# You can also use wgetcurl -X DELETE https://api-qa.phenompro.com/user-management/scim/v2/Users/{userId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'DELETE /user-management/scim/v2/Users/{userId}
This API deletes a user by ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| userId | path | string | true |
Response
Successful response with no content
copied![]Bad request
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized response schema.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the response."
},
"status": {
"type": "integer",
"description": "The HTTP status code (e.g., 401)."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
},
"path": {
"type": "string",
"description": "The request path that led to this response."
}
}
}
]Forbidden
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 204 | Successful response with no content | |
| 400 | Bad request | ErrorResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/user-management/scim/v2/Groups
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /user-management/scim/v2/Groups
This API retrieves the list of all the groups.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Response
Successful response
copied![
{
"type": "object",
"description": "Schema representing a list of SCIM Groups.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of strings indicating the available schemas for the resource."
},
"Resources": {
"type": "array",
"description": "List of SCIM Groups.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Group value."
},
"display": {
"type": "string",
"description": "Display name of the group."
}
}
}
},
"startIndex": {
"type": "integer",
"format": "int32",
"description": "Index of the first result in the current set of search results."
},
"itemsPerPage": {
"type": "integer",
"format": "int32",
"description": "Number of items per page in the current set of search results."
},
"totalResults": {
"type": "integer",
"format": "int32",
"description": "Total number of results."
},
"meta": {
"type": "object",
"description": "Additional metadata for the Group List.",
"properties": {
"createdDate": {
"type": "string",
"description": "Date when the Group List was created."
}
}
}
}
}
]Bad request
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized response schema.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the response."
},
"status": {
"type": "integer",
"description": "The HTTP status code (e.g., 401)."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
},
"path": {
"type": "string",
"description": "The request path that led to this response."
}
}
}
]Forbidden
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successful response | ScimGroupList |
| 400 | Bad request | ErrorResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/user-management/scim/v2/Roles
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /user-management/scim/v2/Roles
This API retrieves the list of all the roles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| filter | query | string | false |
| startIndex | query | integer | false |
| count | query | integer | false |
| sortBy | query | string | false |
| sortOrder | query | string | false |
Response
Successful response
copied![
{
"type": "object",
"description": "Schema representing a list of SCIM Roles.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of strings indicating the available schemas for the resource."
},
"Resources": {
"type": "array",
"description": "List of SCIM Roles.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Role value."
},
"display": {
"type": "string",
"description": "Display name of the role."
}
}
}
},
"startIndex": {
"type": "integer",
"format": "int32",
"description": "Index of the first result in the current set of search results."
},
"itemsPerPage": {
"type": "integer",
"format": "int32",
"description": "Number of items per page in the current set of search results."
},
"totalResults": {
"type": "integer",
"format": "int32",
"description": "Total number of results."
},
"meta": {
"type": "object",
"description": "Additional metadata for the Role List.",
"properties": {
"createdDate": {
"type": "string",
"description": "Date when the Role List was created."
}
}
}
}
}
]Bad request
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized response schema.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the response."
},
"status": {
"type": "integer",
"description": "The HTTP status code (e.g., 401)."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
},
"path": {
"type": "string",
"description": "The request path that led to this response."
}
}
}
]Forbidden
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"schemas": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of supported SCIM error schemas."
},
"status": {
"type": "string",
"description": "The HTTP status code."
},
"scimType": {
"type": "string",
"description": "SCIM-specific error type."
},
"detail": {
"type": "string",
"description": "Detailed error message or information."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successful response | ScimRoleList |
| 400 | Bad request | ErrorResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
Tags
API endpoints for creating, updating, and deleting tags.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/tags-api/v1/tags
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /tags-api/v1/tags
This API allows you to Create a Tag.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object for creating a new tag.",
"properties": {
"tagName": {
"type": "string",
"description": "The name of the tag to be created."
}
},
"required": {
"0": "tagName"
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CreateTagRequest |
Response
Tag created successfully.
copied![
{
"type": "object",
"description": "Response object for the tag creation operation.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the response."
},
"message": {
"type": "string",
"description": "Human-readable message describing the result of the tag creation."
},
"tagName": {
"type": "string",
"description": "The name of the tag that was created."
}
},
"required": {
"0": "status",
"1": "message",
"2": "tagName"
}
}
]Bad request — missing or invalid headers or tag name.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Conflict — a tag with the same name already exists.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal server error.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 201 | Tag created successfully. | CreateTagResponse |
| 400 | Bad request — missing or invalid headers or tag name. | ErrorResponse |
| 409 | Conflict — a tag with the same name already exists. | ErrorResponse |
| 500 | Internal server error. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/tags-api/v1/tags
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /tags-api/v1/tags
This API allows you to get all Tags.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| from | query | integer | false |
| size | query | integer | false |
Response
Tags retrieved successfully.
copied![
{
"type": "object",
"description": "Response object for the get tags operation.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the response."
},
"message": {
"type": "string",
"description": "Human-readable message describing the result of the get tags operation."
},
"from": {
"type": "integer",
"description": "Starting index of the returned results."
},
"size": {
"type": "integer",
"description": "Number of results returned in the response."
},
"total": {
"type": "integer",
"description": "Total number of tags available."
},
"data": {
"type": "array",
"description": "List of tag records.",
"items": {
"TagListItem": {
"type": "object",
"description": "A tag record returned in the get tags response.",
"properties": {
"tag": {
"type": "string",
"description": "The name of the tag."
}
},
"required": {
"0": "tag"
}
}
}
}
},
"required": {
"0": "status",
"1": "message",
"2": "from",
"3": "size",
"4": "total",
"5": "data"
}
}
]Bad request — missing or invalid headers or pagination parameters.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal server error.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Tags retrieved successfully. | GetTagsResponse |
| 400 | Bad request — missing or invalid headers or pagination parameters. | ErrorResponse |
| 500 | Internal server error. | ErrorResponse |
delete
copied!# You can also use wgetcurl -X DELETE https://api-qa.phenompro.com/tags-api/v1/tags/{tag}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'DELETE /tags-api/v1/tags/{tag}
This API Deletes Tag.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| tag | path | string | true |
Response
Tag deleted successfully.
copied![
{
"type": "object",
"description": "Response object for a tag-related operation.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the response."
},
"message": {
"type": "string",
"description": "Human-readable message describing the result of the tag-related operation."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Bad request — missing or invalid headers or tag name.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal server error.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Tag deleted successfully. | TagResponse |
| 400 | Bad request — missing or invalid headers or tag name. | ErrorResponse |
| 500 | Internal server error. | ErrorResponse |
put
copied!# You can also use wgetcurl -X PUT https://api-qa.phenompro.com/tags-api/v1/tags/{tag}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PUT /tags-api/v1/tags/{tag}
This API facilitates to Update the Tag.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object for updating a tag.",
"properties": {
"newTagName": {
"type": "string",
"description": "The new name of the tag."
}
},
"required": {
"0": "newTagName"
},
"example": {
"newTagName": "UpdatedTagName"
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| tag | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateTagRequest |
Response
Tag updated successfully.
copied![
{
"type": "object",
"description": "Response object for a tag-related operation.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the response."
},
"message": {
"type": "string",
"description": "Human-readable message describing the result of the tag-related operation."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Bad request — missing or invalid headers, tag name, or new tag name.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Conflict — a tag with the new name already exists.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal server error.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Tag updated successfully. | TagResponse |
| 400 | Bad request — missing or invalid headers, tag name, or new tag name. | ErrorResponse |
| 409 | Conflict — a tag with the new name already exists. | ErrorResponse |
| 500 | Internal server error. | ErrorResponse |
Candidates
API endpoints for associating tags with candidates and querying tag associations.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/tags-api/v1/tags/candidates
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /tags-api/v1/tags/candidates
This API allows you to Associate Tags to Candidates.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object for associating tags with candidate IDs.",
"properties": {
"candidateIds": {
"type": "array",
"description": "An array of candidate IDs to be associated with the specified tags.",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"description": "An array of tags to be associated with the specified candidates.",
"items": {
"type": "string"
}
}
},
"required": {
"0": "candidateIds",
"1": "tags"
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CandidateTagsAssociation |
Response
Tags successfully associated with candidates.
copied![
{
"type": "object",
"description": "Response object for a tag-related operation.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the response."
},
"message": {
"type": "string",
"description": "Human-readable message describing the result of the tag-related operation."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Bad request — missing or invalid headers, candidate IDs, or tag names.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Conflict — one or more tag associations already exist.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal server error.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 201 | Tags successfully associated with candidates. | TagResponse |
| 400 | Bad request — missing or invalid headers, candidate IDs, or tag names. | ErrorResponse |
| 409 | Conflict — one or more tag associations already exist. | ErrorResponse |
| 500 | Internal server error. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/tags-api/v1/tags/candidates/delete
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /tags-api/v1/tags/candidates/delete
This API allows you to Remove tags from Candidates.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object for associating tags with candidate IDs.",
"properties": {
"candidateIds": {
"type": "array",
"description": "An array of candidate IDs to be associated with the specified tags.",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"description": "An array of tags to be associated with the specified candidates.",
"items": {
"type": "string"
}
}
},
"required": {
"0": "candidateIds",
"1": "tags"
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CandidateTagsAssociation |
Response
Tags successfully removed from candidates.
copied![
{
"type": "object",
"description": "Response object for a tag-related operation.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the response."
},
"message": {
"type": "string",
"description": "Human-readable message describing the result of the tag-related operation."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Bad request — missing or invalid headers, candidate IDs, or tag names.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal server error.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Tags successfully removed from candidates. | TagResponse |
| 400 | Bad request — missing or invalid headers, candidate IDs, or tag names. | ErrorResponse |
| 500 | Internal server error. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/tags-api/v1/tags/{tag}/candidates
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /tags-api/v1/tags/{tag}/candidates
This API allows you to get all CandidateIds for given Tag.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| tag | path | string | true |
| from | query | integer | false |
| size | query | integer | false |
Response
Candidate IDs retrieved successfully. Returns an empty list when no candidates are associated with the tag.
copied![
{
"type": "object",
"description": "Response object for retrieving candidate IDs associated with a tag.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the response."
},
"message": {
"type": "string",
"description": "Human-readable message describing the result."
},
"data": {
"type": "array",
"description": "List of candidate ID records for the requested tag.",
"items": {
"TagCandidateIdItem": {
"type": "object",
"description": "A candidate ID associated with the requested tag.",
"properties": {
"candidateId": {
"type": "string",
"description": "Unique identifier of the candidate."
}
},
"required": {
"0": "candidateId"
}
}
}
},
"from": {
"type": "integer",
"description": "Starting index of the returned results."
},
"size": {
"type": "integer",
"description": "Number of results returned in the response."
},
"total": {
"type": "integer",
"description": "Total number of results matching the query."
}
},
"required": {
"0": "status",
"1": "message",
"2": "data",
"3": "from",
"4": "size",
"5": "total"
}
}
]Bad request — missing or invalid headers, tag name, or pagination parameters.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal server error.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Candidate IDs retrieved successfully. Returns an empty list when no candidates are associated with the tag. | GetTagAssociationsResponse |
| 400 | Bad request — missing or invalid headers, tag name, or pagination parameters. | ErrorResponse |
| 500 | Internal server error. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/tags-api/v1/candidates/{candidateId}/tags
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /tags-api/v1/candidates/{candidateId}/tags
This API allows you to get all tags for given Candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| from | query | integer | false |
| size | query | integer | false |
Response
Tags retrieved successfully. Returns an empty list when the candidate has no associated tags.
copied![
{
"type": "object",
"description": "Response object for retrieving tags associated with a candidate.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the response."
},
"message": {
"type": "string",
"description": "Human-readable message describing the result."
},
"data": {
"type": "array",
"description": "List of tag records for the requested candidate.",
"items": {
"CandidateTagItem": {
"type": "object",
"description": "A tag associated with the requested candidate.",
"properties": {
"tag": {
"type": "string",
"description": "Name of the tag."
}
},
"required": {
"0": "tag"
}
}
}
},
"from": {
"type": "integer",
"description": "Starting index of the returned results."
},
"size": {
"type": "integer",
"description": "Number of results returned in the response."
},
"total": {
"type": "integer",
"description": "Total number of results matching the query."
}
},
"required": {
"0": "status",
"1": "message",
"2": "data",
"3": "from",
"4": "size",
"5": "total"
}
}
]Bad request — missing or invalid headers, candidate ID, or pagination parameters.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal server error.
copied![
{
"type": "object",
"description": "Standard error response returned for all 4xx and 5xx responses.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code of the error."
},
"message": {
"type": "string",
"description": "Human-readable description of the error."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Tags retrieved successfully. Returns an empty list when the candidate has no associated tags. | GetCandidateAssociationsResponse |
| 400 | Bad request — missing or invalid headers, candidate ID, or pagination parameters. | ErrorResponse |
| 500 | Internal server error. | ErrorResponse |
Prediction
An API that predicts skills based on job titles and provided skill sets.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/prediction/v1/skills
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /prediction/v1/skills
An API that predicts skills based on job titles and provided skill sets.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object to get matching skills for given details.",
"properties": {
"titles": {
"title": "Titles",
"type": "array",
"description": "Titles' List.",
"items": {
"type": "string",
"description": "List of titles."
}
},
"skills": {
"title": "Skills",
"type": "array",
"description": "Skills' List.",
"items": {
"type": "string",
"description": "List of skills."
}
},
"size": {
"title": "Size",
"type": "integer",
"description": "Size of skills to return."
},
"source": {
"title": "Source",
"description": "Source.",
"type": "string"
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | SkillPredictionRequest |
Response
200 response
copied![
{
"required": {
"0": "status"
},
"description": "Skills prediction response.",
"type": "object",
"properties": {
"status": {
"title": "Status",
"description": "Status of response.",
"type": "string"
},
"totalHits": {
"title": "Totalhits",
"description": "Total number of hits.",
"type": "integer"
},
"data": {
"SkillResults": {
"type": "object",
"description": "Predicted Skills.",
"properties": {
"results": {
"title": "Results",
"type": "array",
"description": "Results details.",
"items": {
"SkillResult": {
"type": "object",
"description": "Details of skills.",
"properties": {
"score": {
"title": "Score",
"description": "Matching score of a skill.",
"type": "number",
"format": "double"
},
"skill": {
"title": "Skill",
"description": "Matching skill.",
"type": "string"
}
}
}
}
}
}
}
}
}
}
]Bad Request
copied![
{
"description": "Bad request details.",
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of bad request."
},
"message": {
"type": "string",
"description": "Bad request message."
}
}
}
]Server Error
copied![
{
"type": "object",
"description": "Error response details.",
"properties": {
"status": {
"type": "string",
"description": "Status of encountered error."
},
"message": {
"type": "string",
"description": "Error message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | SkillPredictionResponse |
| 400 | Bad Request | BadRequest |
| 500 | Server Error | ErrorResponse |
Applications
It is a combination of Candidate data and the Job data for which the candidate has applied.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/apply/v2/applications
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /apply/v2/applications
This API is used to fetch a list of Applications.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| offset | query | integer | false |
| limit | query | integer | false |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"statusCode": {
"type": "string",
"description": "Status code of the response. This is to uniquely identify the status."
},
"statusMessage": {
"type": "string",
"description": "Status message of the response."
},
"data": {
"type": "array",
"items": {
"ApplicationWithId": {
"type": "object",
"properties": {
"candidateData": {
"CandidateWithId": {
"required": {
"0": "firstName",
"1": "lastName"
},
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "First Name of the candidate. MaxLength is 20."
},
"middleName": {
"type": "string",
"description": "Middle Name of the candidate. MaxLength is 20."
},
"lastName": {
"type": "string",
"description": "Last Name/ Surname of the candidate. MaxLength is 20."
},
"contactData": {
"ContactData": {
"required": {
"0": "email"
},
"type": "object",
"properties": {
"countryPhoneCode": {
"type": "string",
"description": "Country Phone Code."
},
"phoneNumber": {
"pattern": "^\\+?\\d{5,15}$",
"type": "string",
"description": "Phone Number."
},
"deviceType": {
"type": "string",
"description": "Device Type. Eg: Mobile, Landline, etc."
},
"phoneExtension": {
"type": "string",
"description": "Phone Extension. Eg: 1234, etc."
},
"email": {
"type": "string",
"description": "Email Address. MaxLength is 50."
}
}
}
},
"addressData": {
"AddressData": {
"required": {
"0": "addressLine1"
},
"type": "object",
"properties": {
"addressLine1": {
"type": "string",
"description": "Address Line 1."
},
"addressLine2": {
"type": "string",
"description": "Address Line 2."
},
"region": {
"type": "string",
"description": "Region/County/State of the address."
},
"city": {
"type": "string",
"description": "City of the address."
},
"country": {
"type": "string",
"description": "Country of the address."
}
}
}
},
"smsOptIn": {
"type": "boolean",
"description": "Opt in for SMS Campaigns."
},
"experienceData": {
"type": "array",
"items": {
"ExperienceData": {
"required": {
"0": "companyName",
"1": "title"
},
"type": "object",
"properties": {
"companyName": {
"type": "string",
"description": "Name of the Company."
},
"title": {
"type": "string",
"description": "Title of the experience."
},
"location": {
"type": "string",
"description": "Location of the experience."
},
"description": {
"type": "string",
"description": "Description of the experience. MaxLength is 2000."
},
"fromTo": {
"FromTo": {
"required": {
"0": "format",
"1": "startDate"
},
"type": "object",
"properties": {
"format": {
"pattern": "MM-yyyy|MM|yyyy",
"type": "string",
"description": "The date format for the date fields. It should follow the following formats: [MM-yyyy,MM,yyyy]."
},
"startDate": {
"type": "string",
"description": "The start date of the experience."
},
"endDate": {
"type": "string",
"description": "The end date of the experience. If the experience is ongoing, this field should be empty."
},
"currentlyWorkHere": {
"type": "string",
"description": "The current status of the experience."
}
}
}
}
}
}
}
},
"educationData": {
"type": "array",
"items": {
"EducationData": {
"required": {
"0": "degree",
"1": "schoolName"
},
"type": "object",
"properties": {
"schoolName": {
"type": "string",
"description": "School/College/Institution Name."
},
"degree": {
"type": "string",
"description": "Degree you have majored in."
},
"fieldOfStudy": {
"type": "string",
"description": "Specialization/Field of Study."
},
"gradeAverage": {
"type": "string",
"description": "Grade Average/CGPA/Percentage."
},
"fromTo": {
"FromTo": {
"required": {
"0": "format",
"1": "startDate"
},
"type": "object",
"properties": {
"format": {
"pattern": "MM-yyyy|MM|yyyy",
"type": "string",
"description": "The date format for the date fields. It should follow the following formats: [MM-yyyy,MM,yyyy]."
},
"startDate": {
"type": "string",
"description": "The start date of the experience."
},
"endDate": {
"type": "string",
"description": "The end date of the experience. If the experience is ongoing, this field should be empty."
},
"currentlyWorkHere": {
"type": "string",
"description": "The current status of the experience."
}
}
}
}
}
}
}
},
"id": {
"pattern": "^[0-9a-fA-F]{24}$",
"type": "string",
"description": "It is a 24-digit hexadecimal value that represents Applicant Id."
}
}
}
},
"jobApplicationData": {
"Job": {
"required": {
"0": "applicantSource",
"1": "jobId"
},
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Job Id of the job for which the applicant is applying. MaxLength is 50."
},
"applicantSource": {
"type": "string",
"description": "Source of the Application. Eg: LinkedIn, Indeed, Naukri, Resume Upload etc."
}
}
}
},
"customFieldData": {
"type": "object",
"description": "Custom Fields for the Application. Eg: {\"field1\":\"value1\",\"field2\":\"value2\"}."
},
"id": {
"pattern": "^[0-9a-fA-F]{24}$",
"type": "string",
"description": "It is a 24-digit hexadecimal value that represents Application Id."
}
}
}
}
},
"pagination": {
"Pagination": {
"type": "object",
"properties": {
"offset": {
"type": "integer",
"description": "The number of items to offset from the result set.",
"format": "int32"
},
"limit": {
"type": "integer",
"description": "The number of items to return.",
"format": "int32"
},
"total": {
"type": "integer",
"description": "The total number of items in the result set.",
"format": "int32"
}
}
}
},
"links": {
"Links": {
"type": "object",
"properties": {
"self": {
"type": "string",
"description": "The link to the current page."
},
"prev": {
"type": "string",
"description": "The link to the previous page."
},
"next": {
"type": "string",
"description": "The link to the next page."
}
}
}
}
}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | GetApplicationsResponse |
| 400 | 400 response | ErrorResponse |
| 500 | 500 response | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/apply/v2/applications
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'siteType: string'
-H 'locale: string'POST /apply/v2/applications
This API is used to submit a new Application for a valid job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| siteType | header | string | false |
| locale | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"candidateData": {
"Candidate": {
"required": {
"0": "firstName",
"1": "lastName"
},
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "First Name of the candidate. MaxLength is 20."
},
"middleName": {
"type": "string",
"description": "Middle Name of the candidate. MaxLength is 20."
},
"lastName": {
"type": "string",
"description": "Last Name/ Surname of the candidate. MaxLength is 20."
},
"contactData": {
"ContactData": {
"required": {
"0": "email"
},
"type": "object",
"properties": {
"countryPhoneCode": {
"type": "string",
"description": "Country Phone Code."
},
"phoneNumber": {
"pattern": "^\\+?\\d{5,15}$",
"type": "string",
"description": "Phone Number."
},
"deviceType": {
"type": "string",
"description": "Device Type. Eg: Mobile, Landline, etc."
},
"phoneExtension": {
"type": "string",
"description": "Phone Extension. Eg: 1234, etc."
},
"email": {
"type": "string",
"description": "Email Address. MaxLength is 50."
}
}
}
},
"addressData": {
"AddressData": {
"required": {
"0": "addressLine1"
},
"type": "object",
"properties": {
"addressLine1": {
"type": "string",
"description": "Address Line 1."
},
"addressLine2": {
"type": "string",
"description": "Address Line 2."
},
"region": {
"type": "string",
"description": "Region/County/State of the address."
},
"city": {
"type": "string",
"description": "City of the address."
},
"country": {
"type": "string",
"description": "Country of the address."
}
}
}
},
"smsOptIn": {
"type": "boolean",
"description": "Opt in for SMS Campaigns."
},
"experienceData": {
"type": "array",
"items": {
"ExperienceData": {
"required": {
"0": "companyName",
"1": "title"
},
"type": "object",
"properties": {
"companyName": {
"type": "string",
"description": "Name of the Company."
},
"title": {
"type": "string",
"description": "Title of the experience."
},
"location": {
"type": "string",
"description": "Location of the experience."
},
"description": {
"type": "string",
"description": "Description of the experience. MaxLength is 2000."
},
"fromTo": {
"FromTo": {
"required": {
"0": "format",
"1": "startDate"
},
"type": "object",
"properties": {
"format": {
"pattern": "MM-yyyy|MM|yyyy",
"type": "string",
"description": "The date format for the date fields. It should follow the following formats: [MM-yyyy,MM,yyyy]."
},
"startDate": {
"type": "string",
"description": "The start date of the experience."
},
"endDate": {
"type": "string",
"description": "The end date of the experience. If the experience is ongoing, this field should be empty."
},
"currentlyWorkHere": {
"type": "string",
"description": "The current status of the experience."
}
}
}
}
}
}
}
},
"educationData": {
"type": "array",
"items": {
"EducationData": {
"required": {
"0": "degree",
"1": "schoolName"
},
"type": "object",
"properties": {
"schoolName": {
"type": "string",
"description": "School/College/Institution Name."
},
"degree": {
"type": "string",
"description": "Degree you have majored in."
},
"fieldOfStudy": {
"type": "string",
"description": "Specialization/Field of Study."
},
"gradeAverage": {
"type": "string",
"description": "Grade Average/CGPA/Percentage."
},
"fromTo": {
"FromTo": {
"required": {
"0": "format",
"1": "startDate"
},
"type": "object",
"properties": {
"format": {
"pattern": "MM-yyyy|MM|yyyy",
"type": "string",
"description": "The date format for the date fields. It should follow the following formats: [MM-yyyy,MM,yyyy]."
},
"startDate": {
"type": "string",
"description": "The start date of the experience."
},
"endDate": {
"type": "string",
"description": "The end date of the experience. If the experience is ongoing, this field should be empty."
},
"currentlyWorkHere": {
"type": "string",
"description": "The current status of the experience."
}
}
}
}
}
}
}
}
}
}
},
"jobApplicationData": {
"Job": {
"required": {
"0": "applicantSource",
"1": "jobId"
},
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Job Id of the job for which the applicant is applying. MaxLength is 50."
},
"applicantSource": {
"type": "string",
"description": "Source of the Application. Eg: LinkedIn, Indeed, Naukri, Resume Upload etc."
}
}
}
},
"customFieldData": {
"type": "object",
"description": "Custom Fields for the Application. Eg: {\"field1\":\"value1\",\"field2\":\"value2\"}."
},
"resumeData": {
"Resume": {
"required": {
"0": "fileContent",
"1": "fileName"
},
"type": "object",
"properties": {
"fileContent": {
"type": "string",
"description": "File Content in base64 format."
},
"fileName": {
"type": "string",
"description": "Name of the file."
},
"contentTypeId": {
"type": "string",
"description": "(Optional) Any id to identify the content type of the file."
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | ApplicationWithResume |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"statusCode": {
"type": "string",
"description": "Status code of the response. This is to uniquely identify the status."
},
"statusMessage": {
"type": "string",
"description": "Status message of the response."
},
"data": {
"SubmitApplicationData": {
"type": "object",
"properties": {
"alreadyApplied": {
"type": "boolean",
"description": "It equals true if the application is already applied by the candidate."
},
"candidateId": {
"type": "string",
"description": "It is a 24-digit hexadecimal value that represents Applicant Id."
},
"applicationId": {
"type": "string",
"description": "It is a 24-digit hexadecimal value that represents Application Id."
}
}
}
}
}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | SubmitApplicationResponse |
| 400 | 400 response | ErrorResponse |
| 500 | 500 response | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/apply/v2/applications/{id}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /apply/v2/applications/{id}
This API is used to get Application data for a given Application ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| id | path | string | true |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"statusCode": {
"type": "string",
"description": "Status code of the response. This is to uniquely identify the status."
},
"statusMessage": {
"type": "string",
"description": "Status message of the response."
},
"data": {
"ApplicationWithIdAndResume": {
"type": "object",
"properties": {
"candidateData": {
"CandidateWithId": {
"required": {
"0": "firstName",
"1": "lastName"
},
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "First Name of the candidate. MaxLength is 20."
},
"middleName": {
"type": "string",
"description": "Middle Name of the candidate. MaxLength is 20."
},
"lastName": {
"type": "string",
"description": "Last Name/ Surname of the candidate. MaxLength is 20."
},
"contactData": {
"ContactData": {
"required": {
"0": "email"
},
"type": "object",
"properties": {
"countryPhoneCode": {
"type": "string",
"description": "Country Phone Code."
},
"phoneNumber": {
"pattern": "^\\+?\\d{5,15}$",
"type": "string",
"description": "Phone Number."
},
"deviceType": {
"type": "string",
"description": "Device Type. Eg: Mobile, Landline, etc."
},
"phoneExtension": {
"type": "string",
"description": "Phone Extension. Eg: 1234, etc."
},
"email": {
"type": "string",
"description": "Email Address. MaxLength is 50."
}
}
}
},
"addressData": {
"AddressData": {
"required": {
"0": "addressLine1"
},
"type": "object",
"properties": {
"addressLine1": {
"type": "string",
"description": "Address Line 1."
},
"addressLine2": {
"type": "string",
"description": "Address Line 2."
},
"region": {
"type": "string",
"description": "Region/County/State of the address."
},
"city": {
"type": "string",
"description": "City of the address."
},
"country": {
"type": "string",
"description": "Country of the address."
}
}
}
},
"smsOptIn": {
"type": "boolean",
"description": "Opt in for SMS Campaigns."
},
"experienceData": {
"type": "array",
"items": {
"ExperienceData": {
"required": {
"0": "companyName",
"1": "title"
},
"type": "object",
"properties": {
"companyName": {
"type": "string",
"description": "Name of the Company."
},
"title": {
"type": "string",
"description": "Title of the experience."
},
"location": {
"type": "string",
"description": "Location of the experience."
},
"description": {
"type": "string",
"description": "Description of the experience. MaxLength is 2000."
},
"fromTo": {
"FromTo": {
"required": {
"0": "format",
"1": "startDate"
},
"type": "object",
"properties": {
"format": {
"pattern": "MM-yyyy|MM|yyyy",
"type": "string",
"description": "The date format for the date fields. It should follow the following formats: [MM-yyyy,MM,yyyy]."
},
"startDate": {
"type": "string",
"description": "The start date of the experience."
},
"endDate": {
"type": "string",
"description": "The end date of the experience. If the experience is ongoing, this field should be empty."
},
"currentlyWorkHere": {
"type": "string",
"description": "The current status of the experience."
}
}
}
}
}
}
}
},
"educationData": {
"type": "array",
"items": {
"EducationData": {
"required": {
"0": "degree",
"1": "schoolName"
},
"type": "object",
"properties": {
"schoolName": {
"type": "string",
"description": "School/College/Institution Name."
},
"degree": {
"type": "string",
"description": "Degree you have majored in."
},
"fieldOfStudy": {
"type": "string",
"description": "Specialization/Field of Study."
},
"gradeAverage": {
"type": "string",
"description": "Grade Average/CGPA/Percentage."
},
"fromTo": {
"FromTo": {
"required": {
"0": "format",
"1": "startDate"
},
"type": "object",
"properties": {
"format": {
"pattern": "MM-yyyy|MM|yyyy",
"type": "string",
"description": "The date format for the date fields. It should follow the following formats: [MM-yyyy,MM,yyyy]."
},
"startDate": {
"type": "string",
"description": "The start date of the experience."
},
"endDate": {
"type": "string",
"description": "The end date of the experience. If the experience is ongoing, this field should be empty."
},
"currentlyWorkHere": {
"type": "string",
"description": "The current status of the experience."
}
}
}
}
}
}
}
},
"id": {
"pattern": "^[0-9a-fA-F]{24}$",
"type": "string",
"description": "It is a 24-digit hexadecimal value that represents Applicant Id."
}
}
}
},
"jobApplicationData": {
"Job": {
"required": {
"0": "applicantSource",
"1": "jobId"
},
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Job Id of the job for which the applicant is applying. MaxLength is 50."
},
"applicantSource": {
"type": "string",
"description": "Source of the Application. Eg: LinkedIn, Indeed, Naukri, Resume Upload etc."
}
}
}
},
"customFieldData": {
"type": "object",
"description": "Custom Fields for the Application. Eg: {\"field1\":\"value1\",\"field2\":\"value2\"}."
},
"id": {
"pattern": "^[0-9a-fA-F]{24}$",
"type": "string",
"description": "It is a 24-digit hexadecimal value that represents Application Id."
},
"resumeData": {
"Resume": {
"required": {
"0": "fileContent",
"1": "fileName"
},
"type": "object",
"properties": {
"fileContent": {
"type": "string",
"description": "File Content in base64 format."
},
"fileName": {
"type": "string",
"description": "Name of the file."
},
"contentTypeId": {
"type": "string",
"description": "(Optional) Any id to identify the content type of the file."
}
}
}
}
}
}
}
}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | GetApplicationByIdResponse |
| 400 | 400 response | ErrorResponse |
| 500 | 500 response | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/apply/v2/applications/status
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'email: string'
-H 'jobId: string'
-H 'siteType: string'
-H 'locale: string'GET /apply/v2/applications/status
This API is used to check if a candidate has already applied for a particular job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| header | string | true | |
| jobId | header | string | true |
| siteType | header | string | false |
| locale | header | string | true |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"statusCode": {
"type": "string",
"description": "Status code of the response. This is to uniquely identify the status."
},
"statusMessage": {
"type": "string",
"description": "Status message of the response."
},
"data": {
"AlreadyAppliedData": {
"type": "object",
"properties": {
"alreadyApplied": {
"type": "boolean",
"description": "It equals true if the application is already applied by the candidate."
},
"candidateId": {
"type": "string",
"description": "It is a 24-digit hexadecimal value that represents Applicant Id."
},
"applicationId": {
"type": "string",
"description": "It is a 24-digit hexadecimal value that represents Application Id."
}
}
}
}
}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | AlreadyAppliedResponse |
| 400 | 400 response | ErrorResponse |
| 500 | 500 response | ErrorResponse |
Attachments
Resume / Files uploaded as part of an application are called Attachments.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/apply/v2/applications/{id}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /apply/v2/applications/{id}/attachments
This API is used for downloading attachments for a given Application ID
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| id | path | string | true |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"statusCode": {
"type": "string",
"description": "Status code of the response. This is to uniquely identify the status."
},
"statusMessage": {
"type": "string",
"description": "Status message of the response."
},
"data": {
"type": "array",
"items": {
"Resume": {
"required": {
"0": "fileContent",
"1": "fileName"
},
"type": "object",
"properties": {
"fileContent": {
"type": "string",
"description": "File Content in base64 format."
},
"fileName": {
"type": "string",
"description": "Name of the file."
},
"contentTypeId": {
"type": "string",
"description": "(Optional) Any id to identify the content type of the file."
}
}
}
}
}
}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | GetAttachmentsResponse |
| 400 | 400 response | ErrorResponse |
| 500 | 500 response | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/apply/v2/applications/{id}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /apply/v2/applications/{id}/attachments
This API is used for uploading attachments to an Application.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| id | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | Resume |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"statusCode": {
"type": "string",
"description": "Status code of the response. This is to uniquely identify the status."
},
"statusMessage": {
"type": "string",
"description": "Status message of the response."
},
"data": {
"type": "array",
"items": {
"type": "object",
"description": "Id of an attachment."
},
"description": "Array of attachment objects."
}
}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response. It will contain HTTP status code in case of failures."
},
"title": {
"type": "string",
"description": "Error message of the response. It gives a short brief on the error."
},
"type": {
"type": "string",
"description": "Type of the error. It gives a brief on the type of error."
},
"error": {
"type": "string",
"description": "This describes Error/Status Code in case of errors."
},
"details": {
"type": "string",
"description": "Error message of the response. This describes the details of the error."
},
"instance": {
"type": "string",
"description": "URI of the instance."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | UploadAttachmentResponse |
| 400 | 400 response | ErrorResponse |
| 500 | 500 response | ErrorResponse |
