About
This section will cover engineer APIs to fetch particular engineer information, search for engineers near posted job location and rate engineer on completion of job. To make these API requests, you combine the HTTP GET
, POST
and PATCH
methods, the URL to API service, query parameter(s), HTTP request headers and payload data.
Query Parameters
For GET
and POST
methods you will need to include some of these query parameters on the request URI to get details needed. More details mentioned in individual APIs.
Parameter Name | Datatype | Description |
---|---|---|
id | string | Unique Engineer record Id E.g: P955550920 can be obtained from Talent Search API response. |
page | string | To mention the page index for the responses you recieve. E.g: page=2 |
size | string | To mention how many objects/records you want the API to return in response. E.g: size=25 |
API Responses
Each API responses return generic HTTP code/messages along with two other elements under response body: payload and result. payload
could be either an array or an object depending on the API request; and result
consists of specific FE business scenario related status code/messages.(Described in detail under individual APIs)
HTTP Status Codes
Status code | Message description |
---|---|
200 |
Success |
400 |
Bad Request |
401 |
Unauthorized |
403 |
Forbidden |
404 |
Not Found |
500 |
Internal Server Error |
Business Scenario Related Status Codes
Note: Detailed description of each status code is given under respective APIs below.
Status code | Message |
---|---|
201 |
Created |
204 |
No Content |
301 |
Invalid Company User |
APIs
1. Retrieve Engineer Details
GET /engineer/<Engineer Id>
Use this API to get details of a particular engineer such as personal/profile details like name, contact, address, Unumber, skills, certifications, insurance, #past jobs and their details, #clients he worked for in the past etc.
i. Path Parameter
Element Name | Datatype | Description |
---|---|---|
id | string | Unique Engineer record Id E.g: Pxxxxxxxxx can be obtained from Talent Search API response. |
ii. Sample Request
curl -X POST \
https://sandboxapi.fieldengineer.io/v1/engineer/<Engineer Id> \
-H 'Content-Type: application/json' \
-H 'apiKey: <API Key>' \
-H 'cache-control: no-cache' \
-H 'username: <Company eMail ID>'
iii. Sample Response
{
"payload": {
"id": "Pxxxxxxxxx",
"firstName": "John",
"lastName": "Doe",
"abountMe": "Lorem Ipsum",
"contacts": [
{
"type": "Cell-Phone",
"dialCode": "1",
"number": "1234567890"
}
],
"address": {
"city": "Piscataway",
"subDivision": "NJ",
"zip": "08854",
"country": {
"code": "US",
"name": "United States"
}
},
"skills": [],
"feePercent": 10,
"insurancePercent": 1.5,
"certifications": [
{
"id": "abcde1234ab123a12a1234561",
"name": {
"shortName": "CCNA",
"longName": "Cisco Certified Network Associate Video (CCNA Video)"
}
},
{
"id": "abcde1234ab123a12a1234562",
"name": {
"shortName": "CCNA",
"longName": "Cisco Certified Network Associate Service Provider Operations (CCNA SP Operations)"
}
},
{
"id": "abcde1234ab123a12a1234563",
"name": {
"shortName": "CCNA",
"longName": "Cisco Certified Network Associate Voice: CCNA Voice"
}
},
{
"id": "abcde1234ab123a12a1234564",
"name": {
"shortName": "CCNA",
"longName": "Cisco Certified Network Associate Wireless: CCNA Wireless"
}
},
{
"id": "abcde1234ab123a12a1234565",
"name": {
"shortName": "CCNA",
"longName": "Cisco Certified Network Associate Data Center (CCNA Data Center)"
}
},
{
"id": "abcde1234ab123a12a1234566",
"name": {
"shortName": "CCNA",
"longName": "Cisco Certified Network Associate Security: CCNA Security"
}
},
{
"id": "abcde1234ab123a12a1234567",
"name": {
"shortName": "CCNA",
"longName": "Cisco Certified Network Associate Service Provider (CCNA SP)"
}
},
{
"id": "abcde1234ab123a12a1234568",
"name": {
"shortName": "CCNA",
"longName": "Cisco Certified Network Associate: CCNA"
}
}
],
"pastJobs": {
"numOfClientsWorked": 4,
"numOfJobsWorked": 8,
"completedJobs": [
{
"date": "2020-05-30 10:56:38",
"name": "Install adtran",
"rating": 0,
"companyName": "ABC"
},
{
"date": "2020-06-11 10:56:38",
"name": "Install",
"rating": 3,
"companyName": "XYZ"
},
{
"date": "2020-09-11 10:56:38",
"name": "Install adtran",
"rating": 3,
"companyName": "PQR"
},
{
"date": "2020-08-11 10:56:38",
"name": "Install adtran",
"rating": 3,
"companyName": "XYZ"
},
{
"date": "2020-08-11 10:56:38",
"name": "Install adtran",
"rating": 3.5,
"companyName": "PQR"
},
{
"date": "2020-08-11 10:56:38",
"name": "Install adtran",
"rating": 0,
"companyName": "XYZ"
},
{
"date": "2020-08-25 15:15:06",
"name": "decoding",
"rating": 4,
"companyName": "XYZ"
},
{
"date": "2020-08-25 15:15:06",
"name": "decoding",
"rating": 3.75,
"companyName": "XYZ"
},
{
"date": "2020-08-25 15:15:06",
"name": "onsite",
"rating": 0,
"companyName": "XYZ"
},
{
"date": "2020-08-25 15:15:06",
"name": "onsite",
"rating": 0,
"companyName": "ABC"
},
{
"date": "2020-08-25 15:15:06",
"name": "decoding",
"rating": 0,
"companyName": "ABC"
},
{
"date": "2020-08-25 15:15:06",
"name": "Router Installation",
"rating": 4,
"companyName": "ABC"
}
]
}
},
"result": {
"code": "200",
"message": "success"
}
}
iv. Response Status Codes
Status code | Message | Description |
---|---|---|
301 |
Invalid company user | Possible reasons to get this status code are: - Invalid company user - Not a valid job - Not a valid user - You are not allowed to do this operation on current job. |
2. Engineer Rating
PATCH /engineer/profile/rating
Use this API to rate the engineer's performance after completion of a job. You can rate the engineer for his Knowledge, Punctuality, Communication and Overall performance.
i. Sample Request
curl -X POST \
https://sandboxapi.fieldengineer.io/v1/engineer/profile/rating \
-H 'Content-Type: application/json' \
-H 'apiKey: <API Key>' \
-H 'cache-control: no-cache' \
-H 'username: <Company eMail ID>' \
-d '{ "opportunityId": <Opportunity Id>,
"rating": [
{
"type": "Communication",
"value": 3.5
},
{
"type": "Overall",
"value": 3.5
},
{
"type": "Knowledge",
"value": 3.5
},
{
"type": "Punctuality",
"value": 3.5
}
]
}'
ii. Sample Response
{
"payload": null,
"result": {
"code": "200",
"message": "Successully Rated"
}
}
iii. Request Payload Details
Element Name | Data Type | Description | ||||||
---|---|---|---|---|---|---|---|---|
opportunityId | string | Unique Opportunity Id of the job | ||||||
rating | object |
|
Element Name | Datatype | Description |
---|---|---|
type | string | description of the skill/quality of engineer your rating for. Values: - Communication - Overall - Knowledge - Punctuality |
iv. Response Status Codes
Status code | Message | Description |
---|---|---|
204 |
No Content | If the valid values are not provided in the Request body then this status code is given in response. |
3. Talent Search
POST /talent?page=<Page Index>&size=<Page size>
Use this API to search for engineers near the location where the job is posted, having particular skills needed to perform the job.
i. Query Parameters
Parameter Name | Datatype | Description |
---|---|---|
page | string | To mention the page index for the responses you recieve. E.g: page=2 |
size | string | To mention how many objects/records you want the API to return in response. E.g: size=25 |
ii. Sample Request
curl -X POST \
https://sandboxapi.fieldengineer.io/v1/talent?page=<Page Index>&size=<Page size> \
-H 'Content-Type: application/json' \
-H 'apiKey: <API Key>' \
-H 'cache-control: no-cache' \
-H 'username: <Company eMail ID>' \
-d '{
"searchParam": {
"skills":null,
"location": {
"lat": <latitude value>,
"lon": <longitude value>
}
}
}'
iii. Sample Response
{
"payload": [
{
"firstName": "JohnA",
"qualification": [
{
"name": "802.11n Planning and Optimization"
}
],
"address": {
"zip": "08854",
"country": "US",
"city": "Piscataway Township",
"latitude": 40.5487544,
"subDivision": "NJ",
"longitude": -74.45521880000001
},
"isOffline": false,
"id": "Pxxxxxxxxx"
},
{
"firstName": "JohnB",
"qualification": [],
"address": {
"zip": "08854",
"country": "US",
"city": "Piscataway",
"latitude": 40.5487544,
"subDivision": "NJ",
"longitude": -74.45521880000001
},
"isOffline": false,
"id": "Pxxxxxxxxx"
},
{
"firstName": "JohnC",
"qualification": [
{
"name": "CCNA"
}
],
"address": {
"zip": "08854",
"country": "US",
"city": "Piscataway",
"latitude": 40.5487544,
"subDivision": "NJ",
"longitude": -74.45521880000001
},
"isOffline": false,
"id": "Pxxxxxxxxx"
},
{
"firstName": "JohnD",
"qualification": [
{
"name": "Cisco Multiservice Switching Service"
},
{
"name": "Avaya Classic Mail"
},
{
"name": "Cisco Cable Communications Specialist"
},
{
"name": "Cisco Call Manager"
},
{
"name": "Cisco Call Manager Express"
}
],
"address": {
"zip": "08854",
"country": "US",
"city": "Piscataway",
"latitude": 40.54875440000001,
"subDivision": "NJ",
"longitude": -74.45521880000001
},
"isOffline": false,
"id": "Pxxxxxxxxx"
},
{
"firstName": "JohnE",
"qualification": [
{
"name": "802.11n Planning and Optimization"
},
{
"name": "123123"
}
],
"address": {
"zip": "08840",
"country": "US",
"city": "Piscataway",
"latitude": 40.54875440000001,
"subDivision": "NJ",
"longitude": -74.45521880000001
},
"isOffline": false,
"id": "Pxxxxxxxxx"
},
{
"firstName": "JohnF",
"qualification": [],
"address": {
"zip": "08854",
"country": "US",
"city": "Piscataway",
"latitude": 40.54875440000001,
"subDivision": "NJ",
"longitude": -74.45521880000001
},
"isOffline": false,
"id": "Pxxxxxxxxx"
},
{
"firstName": "JohnG",
"qualification": [
{
"name": "Cisco CCENT"
},
{
"name": "Cisco Certified Architect (CCAr)"
},
{
"name": "Cisco Business Application Engineer Specialist"
},
{
"name": "Cisco Access Routing and LAN Switching Specialist"
}
],
"address": {
"zip": "08854",
"country": "US",
"city": "Piscataway",
"latitude": 40.54875440000001,
"subDivision": "NJ",
"longitude": -74.45521880000001
},
"isOffline": false,
"id": "Pxxxxxxxxx"
},
{
"firstName": "JohnH",
"qualification": [],
"address": {
"zip": "08854",
"country": "US",
"city": "Piscataway",
"latitude": 40.54875440000001,
"subDivision": "NJ",
"longitude": -74.45521880000001
},
"isOffline": false,
"id": "Pxxxxxxxxx"
},
{
"firstName": "JohnI",
"qualification": [
{
"name": "Avaya Certified Implementation Specialist (ACIS) – Avaya Aura Contact Center"
},
{
"name": "Avaya Certified Implementation Specialist (ACIS) – Avaya Aura Communication Manager"
},
{
"name": "Avaya Certified Implementation Specialist (ACIS) – Avaya Aura Communication Manager and CM Messaging"
},
{
"name": "Avaya Certified Implementation Specialist (ACIS) – Avaya Aura Conferencing – Standard Edition"
},
{
"name": "Avaya Certified Implementation Specialist (ACIS) – Avaya Aura Contact Center CCT and Multimedia"
}
],
"address": {
"zip": "08854",
"country": "US",
"city": "Piscataway",
"latitude": 40.54875440000001,
"subDivision": "NJ",
"longitude": -74.45521880000001
},
"isOffline": false,
"id": "Pxxxxxxxxx"
},
{
"firstName": "JohnJ",
"qualification": [],
"address": {
"zip": "08854",
"country": "US",
"city": "Piscataway",
"latitude": 40.54875440000001,
"subDivision": "NJ",
"longitude": -74.45521880000001
},
"isOffline": false,
"id": "Pxxxxxxxxx"
}
],
"result": {
"code": "200",
"message": "success"
}
}
iv. Request Payload Details
Element Name | Data Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
skills | string | Skill name required for the job. | |||||||||
location | object | Unique Engineer record Id E.g: P955550920
|
Element Name | Datatype | Description |
---|---|---|
lat | number | Latitude of the job/site location E.g: 40.54875440000001 |
lon | number | Longitude of the job/site location E.g: -74.45521880000001 |
v. Response Status Codes
Status code | Message | Description |
---|---|---|
201 |
Created | If engineer(s) are available in the location provided then this status code is recieved. |