Email Communications
Provides APIs for sending, reading, and tracking email communications within an application.
Email Communications
Allows for sending, reading, and tracking email histories.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/communications/email/v1/send
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /communications/email/v1/send
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Defines the payload for sending an email.",
"properties": {
"subject": {
"type": "string",
"description": "The subject line of the email."
},
"emailContent": {
"type": "string",
"description": "The HTML or plain text content of the email."
},
"toEmail": {
"type": "string",
"description": "The recipient's email address."
}
},
"required": {
"0": "emailContent",
"1": "subject",
"2": "toEmail"
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | SendEmailRequest |
Response
The email was sent successfully.
copied![
{
"type": "object",
"description": "Contains the response after sending an email.",
"properties": {
"data": {
"type": "object",
"description": "The data object containing the response details.",
"properties": {
"emailActivityId": {
"type": "string",
"description": "A unique identifier for the email activity."
},
"message": {
"type": "string",
"description": "A user-readable message describing the result."
}
},
"required": {
"0": "emailActivityId",
"1": "message"
}
},
"status": {
"type": "integer",
"description": "The overall status of the request."
}
},
"required": {
"0": "data",
"1": "status"
}
}
]The request was malformed or invalid.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]The request is missing valid authentication credentials.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]An unexpected error occurred on the server.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | The email was sent successfully. | SendEmailResponse |
| 400 | The request was malformed or invalid. | BadRequest |
| 401 | The request is missing valid authentication credentials. | UnauthorizedRequest |
| 500 | An unexpected error occurred on the server. | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/communications/email/v1/history
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /communications/email/v1/history
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| query | string | false | |
| candidateId | query | string | false |
| fromTime | query | string | true |
| toTime | query | string | true |
| limit | query | integer | true |
| offset | query | integer | true |
Response
A paginated list of email history records.
copied![
{
"type": "object",
"description": "Paginated email communication history for /v1/history (email-communications).",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination details.",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates if this is the first page."
},
"last": {
"type": "boolean",
"description": "Indicates if this is the last page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates if there is a previous page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates if there is a next page."
},
"hasErrors": {
"type": "boolean",
"description": "Indicates whether there are errors."
},
"totalElements": {
"type": "integer",
"format": "int32",
"description": "Total number of elements."
},
"totalPages": {
"type": "integer",
"format": "int32",
"description": "Total number of pages."
},
"size": {
"type": "integer",
"format": "int32",
"description": "Page size."
},
"currentPage": {
"type": "integer",
"format": "int32",
"description": "Current page number."
},
"numberOfElements": {
"type": "integer",
"format": "int32",
"description": "Number of elements on current page."
}
},
"required": {
"0": "first",
"1": "last",
"2": "hasPrevious",
"3": "hasNext",
"4": "hasErrors",
"5": "totalElements",
"6": "totalPages",
"7": "size",
"8": "currentPage",
"9": "numberOfElements"
}
},
"data": {
"type": "array",
"description": "Email communication records (EmailCommunicationData).",
"items": {
"type": "object",
"properties": {
"sender": {
"type": "string",
"description": "Sender email address."
},
"recipient": {
"type": "string",
"description": "Recipient email address."
},
"timeStamp": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the communication."
},
"subject": {
"type": "string",
"description": "Email subject."
},
"emailBody": {
"type": "string",
"description": "Email body content."
},
"messageType": {
"type": "string",
"description": "inbound or outbound."
},
"recruiterId": {
"type": "string",
"description": "Recruiter identifier."
},
"candidateId": {
"type": "string",
"description": "Candidate identifier."
}
}
}
},
"status": {
"type": "integer",
"description": "HTTP status."
}
},
"required": {
"0": "pagination",
"1": "data",
"2": "status"
}
}
]The request was malformed or invalid.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]The request is missing valid authentication credentials.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]An unexpected error occurred on the server.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | A paginated list of email history records. | GetEmailHistoryResponse |
| 400 | The request was malformed or invalid. | BadRequest |
| 401 | The request is missing valid authentication credentials. | UnauthorizedRequest |
| 500 | An unexpected error occurred on the server. | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/communications/email/v1/activity
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /communications/email/v1/activity
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| emailActivityId | query | string | true |
Response
A list of email activity events.
copied![
{
"type": "object",
"description": "Contains a list of email activity events.",
"properties": {
"data": {
"type": "array",
"description": "An array of email activity data objects.",
"items": {
"type": "object",
"description": "A single email activity event.",
"properties": {
"emailActivityId": {
"type": "string",
"description": "The unique activity ID for the email."
},
"event": {
"type": "string",
"description": "The type of event."
},
"email": {
"type": "string",
"description": "The email address associated with the activity."
},
"ip": {
"type": "string",
"description": "The IP address associated with the event."
},
"createdDate": {
"type": "integer",
"format": "int64",
"description": "The date the event was created."
},
"response": {
"type": "string",
"description": "The response associated with the activity."
}
},
"required": {
"0": "emailActivityId",
"1": "event",
"2": "email",
"3": "ip",
"4": "createdDate",
"5": "response"
}
}
},
"status": {
"type": "integer",
"description": "The status of the request."
}
},
"required": {
"0": "data",
"1": "status"
}
}
]The request was malformed or invalid.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]The request is missing valid authentication credentials.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]An unexpected error occurred on the server.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | A list of email activity events. | GetEmailActivityResponse |
| 400 | The request was malformed or invalid. | BadRequest |
| 401 | The request is missing valid authentication credentials. | UnauthorizedRequest |
| 500 | An unexpected error occurred on the server. | InternalServerError |
Forward Profile
Allows for forwarding a user profile via email.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/communications/email/v1/forward-profile
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /communications/email/v1/forward-profile
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Defines the payload for forwarding a candidate profile.",
"properties": {
"subject": {
"type": "string",
"description": "The subject for the forward profile email."
},
"toEmail": {
"type": "string",
"description": "The recipient's email address."
},
"candidateEmail": {
"type": "string",
"description": "The candidate's email address to be forwarded."
}
},
"required": {
"0": "candidateEmail",
"1": "subject",
"2": "toEmail"
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | ForwardProfileRequest |
Response
The profile was forwarded successfully.
copied![
{
"type": "object",
"description": "Contains the response after forwarding a profile.",
"properties": {
"data": {
"type": "object",
"description": "The data object containing the response details.",
"properties": {
"emailActivityId": {
"type": "string",
"description": "A unique identifier for the email activity."
},
"message": {
"type": "string",
"description": "A user-readable message describing the result."
}
},
"required": {
"0": "emailActivityId",
"1": "message"
}
},
"status": {
"type": "integer",
"description": "The overall status of the request."
}
},
"required": {
"0": "data",
"1": "status"
}
}
]The request was malformed or invalid.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]The request is missing valid authentication credentials.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]An unexpected error occurred on the server.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | The profile was forwarded successfully. | ForwardProfileResponse |
| 400 | The request was malformed or invalid. | BadRequest |
| 401 | The request is missing valid authentication credentials. | UnauthorizedRequest |
| 500 | An unexpected error occurred on the server. | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/communications/email/v1/forward-profile/activity
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /communications/email/v1/forward-profile/activity
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| offset | query | integer | false |
| limit | query | integer | false |
| communicationId | query | string | false |
| query | string | true |
Response
A paginated list of forward profile activities.
copied![
{
"type": "object",
"description": "A paginated list of forward profile activities.",
"properties": {
"pagination": {
"type": "object",
"description": "An object containing pagination details.",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates if this is the first page."
},
"last": {
"type": "boolean",
"description": "Indicates if this is the last page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates if there is a previous page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates if there is a next page."
},
"totalElements": {
"type": "integer",
"description": "The total number of elements across all pages."
},
"totalPages": {
"type": "integer",
"description": "The total number of pages."
},
"size": {
"type": "integer",
"description": "The number of elements on the current page."
},
"currentPage": {
"type": "integer",
"description": "The current page number."
},
"numberOfElements": {
"type": "integer",
"description": "The number of elements in the current page."
}
}
},
"data": {
"type": "array",
"description": "An array of forward profile activity data objects.",
"items": {
"type": "object",
"properties": {
"createdDate": {
"type": "integer",
"format": "int64",
"description": "The date the email was created."
},
"toName": {
"type": "string",
"description": "The recipient's name."
},
"subject": {
"type": "string",
"description": "The subject of the email."
},
"fromName": {
"type": "string",
"description": "The sender's name."
},
"toEmail": {
"type": "string",
"description": "The sender's email address."
},
"fromEmail": {
"type": "string",
"description": "The recipient's email address."
},
"source": {
"type": "string",
"description": "The source for the forward profile acivity."
},
"emailActivityId": {
"type": "string",
"description": "The unique activity ID for the email."
}
},
"required": {
"0": "createdDate",
"1": "toName",
"2": "subject",
"3": "fromName",
"4": "toEmail",
"5": "fromEmail",
"6": "source",
"7": "emailActivityId"
}
}
},
"status": {
"type": "integer",
"description": "The status of the request."
}
},
"required": {
"0": "pagination",
"1": "data",
"2": "status"
}
}
]The request was malformed or invalid.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]The request is missing valid authentication credentials.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]An unexpected error occurred on the server.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | A paginated list of forward profile activities. | GetForwardProfileActivityResponse |
| 400 | The request was malformed or invalid. | BadRequest |
| 401 | The request is missing valid authentication credentials. | UnauthorizedRequest |
| 500 | An unexpected error occurred on the server. | InternalServerError |
Webhook Events
Endpoints for receiving webhook events from an external mail gateway.
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/communications/email/v1/reply
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /communications/email/v1/reply
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Defines the payload for an inbound email reply.",
"properties": {
"email": {
"type": "string",
"description": "A string containing the full raw email content, including headers."
},
"to": {
"type": "string",
"description": "The email recipient field from the message headers.",
"example": "User Name <reply@sub.domain.com>"
},
"cc": {
"type": "string",
"description": "The email CC field from the message headers.",
"example": "user <sample1@example.com>"
},
"from": {
"type": "string",
"description": "The email sender field from the message headers.",
"example": "senderName <sender@example.com>"
},
"sender_ip": {
"type": "string",
"description": "The IP address of the email sender.",
"example": "192.168.1.1"
},
"envelope": {
"type": "string",
"description": "A string containing the SMTP envelope.",
"example": "{\"to\":[\"reply@sub.domain.com\"],\"from\":\"sender@domain.com\"}"
},
"subject": {
"type": "string",
"description": "The subject line of the email."
},
"spf": {
"type": "string",
"description": "The result of the Sender Policy Framework verification."
},
"charsets": {
"type": "string",
"description": "A string containing the character sets of the fields.",
"example": "{\"to\":\"UTF-8\",\"from\":\"UTF-8\",\"subject\":\"UTF-8\"}"
}
},
"required": {
"0": "to",
"1": "from",
"2": "envelope",
"3": "subject",
"4": "email",
"5": "charsets"
}
}
]Request Parameters
| Type | Name |
|---|---|
| multipart/form-data | ReplyEmailRequest |
Response
The reply was processed successfully.
copied![
{
"type": "object",
"description": "Response for webhook email reply processing based on ApiResponseModel.",
"properties": {
"status": {
"type": "integer",
"description": "The status of the request."
},
"data": {
"type": "object",
"description": "The details object containing response data.",
"properties": {
"MessageSid": {
"type": "string",
"description": "The unique message identifier generated for the reply.",
"example": "550e8400-e29b-41d4-a716-446655440000"
}
},
"required": {
"0": "MessageSid"
}
}
},
"required": {
"0": "status",
"1": "data"
}
}
]Mandatory fields are missing or invalid in the request.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]An unexpected error occurred on the server.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | The reply was processed successfully. | WebhookEmailReplyResponse |
| 400 | Mandatory fields are missing or invalid in the request. | BadRequest |
| 500 | An unexpected error occurred on the server. | InternalServerError |
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/communications/email/v1/events
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /communications/email/v1/events
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{}
]Request Parameters
| Type | Name |
|---|---|
| application/json | EmailEvent |
Response
The events were received successfully.
copied![
{
"type": "object",
"description": "Confirmation response for receiving email events via webhook based on ApiResponseModel.",
"properties": {
"status": {
"type": "integer",
"description": "The status of the event processing."
}
},
"required": {
"0": "status"
}
}
]An unexpected error occurred on the server.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | The events were received successfully. | WebhookEmailEventsResponse |
| 500 | An unexpected error occurred on the server. | InternalServerError |
Transactional History
Archival APIs to retrieve transactional 1:1 communication history for candidates within a defined time window.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/communications/email/v1/transactional/email
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /communications/email/v1/transactional/email
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| fromTime | query | string | true |
| toTime | query | string | true |
| pageLimit | query | integer | false |
| offset | query | integer | false |
Response
A paginated list of email communication records for the candidate.
copied![
{
"type": "object",
"description": "Paginated list of communicated candidates for /v1/transactional/email.",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination details.",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates if this is the first page."
},
"last": {
"type": "boolean",
"description": "Indicates if this is the last page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates if there is a previous page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates if there is a next page."
},
"hasErrors": {
"type": "boolean",
"description": "Indicates whether there are errors."
},
"totalElements": {
"type": "integer",
"format": "int32",
"description": "Total number of elements."
},
"totalPages": {
"type": "integer",
"format": "int32",
"description": "Total number of pages."
},
"size": {
"type": "integer",
"format": "int32",
"description": "Page size."
},
"currentPage": {
"type": "integer",
"format": "int32",
"description": "Current page number."
},
"numberOfElements": {
"type": "integer",
"format": "int32",
"description": "Number of elements on current page."
}
},
"required": {
"0": "first",
"1": "last",
"2": "hasPrevious",
"3": "hasNext",
"4": "hasErrors",
"5": "totalElements",
"6": "totalPages",
"7": "size",
"8": "currentPage",
"9": "numberOfElements"
}
},
"data": {
"type": "array",
"description": "Communicated candidates (candidateId, candidateEmail).",
"items": {
"type": "object",
"properties": {
"candidateId": {
"type": "string",
"description": "Candidate identifier."
},
"candidateEmail": {
"type": "string",
"description": "Candidate email address."
}
}
}
},
"status": {
"type": "integer",
"description": "HTTP status."
}
},
"required": {
"0": "pagination",
"1": "data",
"2": "status"
}
}
]The request was malformed or invalid.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]The request is missing valid authentication credentials.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]An unexpected error occurred on the server.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | A paginated list of email communication records for the candidate. | GetCandidateEmailsResponse |
| 400 | The request was malformed or invalid. | BadRequest |
| 401 | The request is missing valid authentication credentials. | UnauthorizedRequest |
| 500 | An unexpected error occurred on the server. | InternalServerError |
SMS Communications
These APIs allows the developers to send, read, and track SMS histories.
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/communications/sms/v1/optIn
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /communications/sms/v1/optIn
This API allows you to optIn a phoneNumber to SMS communications.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| query | string | false | |
| phoneNumber | query | string | false |
Response
OK.
copied![
{
"type": "object",
"properties": {
"details": {
"type": "object",
"description": "OptIn status Details.",
"properties": {
"message": {
"type": "string",
"description": "A user-readable message describing the OptIn status."
}
},
"required": {
"0": "message"
}
},
"status": {
"type": "string",
"description": "Status of the OptIn."
}
},
"required": {
"0": "details",
"1": "status"
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal Server Error.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK. | OptInStatus |
| 400 | Bad Request. | BadRequest |
| 401 | Unauthorized | UnauthorizedRequest |
| 500 | Internal Server Error. | InternalServerError |
put
copied!# You can also use wgetcurl -X PUT https://api-qa.phenompro.com/communications/sms/v1/optIn
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PUT /communications/sms/v1/optIn
This API allows you to update the optIn status.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"required": {
"0": "optIn"
},
"type": "object",
"properties": {
"phoneNumber": {
"type": "string",
"description": "The phone number for the opt-in request."
},
"email": {
"type": "string",
"description": "The email address for the opt-in request."
},
"optIn": {
"type": "boolean",
"description": "A boolean flag indicating the opt-in status."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | OptInRequest |
Response
OK.
copied![
{
"type": "object",
"properties": {
"details": {
"type": "object",
"description": "Details of the OptIn Response.",
"properties": {
"message": {
"type": "string",
"description": "A user-readable message describing the OptIn response."
}
},
"required": {
"0": "message"
}
},
"status": {
"type": "string",
"description": "Status of the OptIn response."
}
},
"required": {
"0": "details",
"1": "status"
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Unauthorized.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal Server Error.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK. | OptInResponse |
| 400 | Bad Request. | BadRequest |
| 401 | Unauthorized. | UnauthorizedRequest |
| 500 | Internal Server Error. | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/communications/sms/v1/optIn/history
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /communications/sms/v1/optIn/history
This API allows you to get the history of opted status for the candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| offset | query | integer | false |
| size | query | integer | false |
| communicationId | query | string | false |
| phoneNumber | query | string | true |
Response
OK.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the OptIn History."
},
"details": {
"type": "object",
"description": "Details of the OptIn History",
"properties": {
"content": {
"type": "array",
"description": "Content in OptIn history.",
"items": {
"type": "object",
"description": "Items in OptIn history entries.",
"properties": {
"phoneNumber": {
"type": "string",
"description": "The phone number associated with the OptIn history."
},
"actionType": {
"type": "string",
"description": "The type of action associated with the OptIn history."
},
"reason": {
"type": "string",
"description": "The reason for the OptIn history entry."
},
"createdDate": {
"type": "integer",
"format": "int64",
"description": "The timestamp when the OptIn history entry was created."
}
},
"required": {
"0": "phoneNumber",
"1": "actionType",
"2": "reason",
"3": "createdDate"
}
}
},
"pageable": {
"type": "object",
"description": "Details about pagination.",
"properties": {
"sort": {
"type": "object",
"description": "Indicates whether the content is empty.",
"properties": {
"sorted": {
"type": "boolean",
"description": "Indicates whether the content is sorted."
},
"empty": {
"type": "boolean",
"description": "Indicates whether the content is empty."
},
"unsorted": {
"type": "boolean",
"description": "Indicates whether the content is unsorted."
}
},
"required": {
"0": "sorted",
"1": "empty",
"2": "unsorted"
}
},
"pageNumber": {
"type": "integer",
"description": "The current page number."
},
"pageSize": {
"type": "integer",
"description": "The size of each page."
},
"offset": {
"type": "integer",
"description": "The offset of the content."
},
"paged": {
"type": "boolean",
"description": "Indicates whether the content is paged."
},
"unpaged": {
"type": "boolean",
"description": "Indicates whether the content is unpaged."
}
},
"required": {
"0": "sort",
"1": "pageNumber",
"2": "pageSize",
"3": "offset",
"4": "paged",
"5": "unpaged"
}
},
"last": {
"type": "boolean",
"description": "Indicates the last page."
},
"totalElements": {
"type": "integer",
"description": "Total number of elements."
},
"totalPages": {
"type": "integer",
"description": "Total number of pages."
},
"first": {
"type": "boolean",
"description": "Indicates the first page."
},
"size": {
"type": "integer",
"description": "The size of the content."
},
"number": {
"type": "integer",
"description": "The current page number."
},
"sort": {
"type": "object",
"description": "Details about sorting.",
"properties": {
"sorted": {
"type": "boolean",
"description": "Indicates whether the content is sorted."
},
"empty": {
"type": "boolean",
"description": "Indicates whether the content is empty."
},
"unsorted": {
"type": "boolean",
"description": "Indicates whether the content is unsorted."
}
},
"required": {
"0": "sorted",
"1": "empty",
"2": "unsorted"
}
},
"numberOfElements": {
"type": "integer",
"description": "Number of elements in the current page."
},
"empty": {
"type": "boolean",
"description": "Indicates whether the content is empty."
}
},
"required": {
"0": "content",
"1": "pageable",
"2": "last",
"3": "totalElements",
"4": "totalPages",
"5": "first",
"6": "size",
"7": "number",
"8": "sort",
"9": "numberOfElements",
"10": "empty"
}
}
},
"required": {
"0": "status",
"1": "details"
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Unauthorized.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal Server Error.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK. | OptInHistory |
| 400 | Bad Request. | BadRequest |
| 401 | Unauthorized. | UnauthorizedRequest |
| 500 | Internal Server Error. | InternalServerError |
post
copied!# You can also use wgetcurl -X POST https://api-qa.phenompro.com/communications/sms/v1/send
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /communications/sms/v1/send
This API allows you to send a SMS for a candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"required": {
"0": "message",
"1": "phoneNumber"
},
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "The content of the SMS message to be sent."
},
"phoneNumber": {
"type": "string",
"description": "The phone number to which the SMS message will be sent."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | SendSMSRequest |
Response
OK.
copied![
{
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Data of the SendSMS.",
"properties": {
"messageSID": {
"type": "string",
"description": "Message ID of the Send SMS."
},
"message": {
"type": "string",
"description": "The content of the SMS message."
}
},
"required": {
"0": "messageSID",
"1": "message"
}
},
"status": {
"type": "string",
"description": "The status of the SMS sending operation."
}
},
"required": {
"0": "data",
"1": "status"
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Unauthorized.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal Server Error.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK. | SendSMS |
| 400 | Bad Request. | BadRequest |
| 401 | Unauthorized. | UnauthorizedRequest |
| 500 | Internal Server Error. | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/communications/sms/v1/history
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /communications/sms/v1/history
This API allows you to get all the SMS history of a candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| phone | query | string | false |
| candidateId | query | string | false |
| fromTime | query | string | true |
| toTime | query | string | true |
| limit | query | integer | true |
| offset | query | integer | true |
Response
OK.
copied![
{
"type": "object",
"description": "Paginated SMS communication history for /v1/history (sms-communications).",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination details.",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates the first page."
},
"last": {
"type": "boolean",
"description": "Indicates the last page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates if there is a previous page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates if there is a next page."
},
"hasErrors": {
"type": "boolean",
"description": "Indicates whether there are errors."
},
"totalElements": {
"type": "integer",
"description": "Total number of elements."
},
"totalPages": {
"type": "integer",
"description": "Total number of pages."
},
"size": {
"type": "integer",
"description": "Page size."
},
"currentPage": {
"type": "integer",
"description": "Current page number."
},
"numberOfElements": {
"type": "integer",
"description": "Number of elements on current page."
}
},
"required": {
"0": "first",
"1": "last",
"2": "hasPrevious",
"3": "hasNext",
"4": "hasErrors",
"5": "totalElements",
"6": "totalPages",
"7": "size",
"8": "currentPage",
"9": "numberOfElements"
}
},
"data": {
"type": "array",
"description": "SMS communication records (SmsCommunicationData).",
"items": {
"type": "object",
"properties": {
"sender": {
"type": "string",
"description": "Sender phone number."
},
"recipient": {
"type": "string",
"description": "Recipient phone number."
},
"timeStamp": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the communication."
},
"messageBody": {
"type": "string",
"description": "Message content."
},
"messageType": {
"type": "string",
"description": "inbound or outbound."
},
"recruiterId": {
"type": "string",
"description": "Recruiter identifier."
},
"candidateId": {
"type": "string",
"description": "Candidate identifier."
}
}
}
},
"status": {
"type": "integer",
"description": "HTTP status (e.g. 200)."
}
},
"required": {
"0": "pagination",
"1": "data",
"2": "status"
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Unauthorized.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal Server Error.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK. | SMSHistory |
| 400 | Bad Request. | BadRequest |
| 401 | Unauthorized. | UnauthorizedRequest |
| 500 | Internal Server Error. | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/communications/sms/v1/activity
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /communications/sms/v1/activity
This API allows you to get all the SMS activities of a candidate SMS like Delivered, Read, UnDelivered.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| activityId | query | string | true |
| phoneNumber | query | string | true |
Response
OK.
copied![
{
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Data of the SMS Activity.",
"properties": {
"message": {
"type": "string",
"description": "An user readable message about SMS Activity."
}
},
"required": {
"0": "message"
}
},
"status": {
"type": "string",
"description": "Status of the SMS Activity."
}
},
"required": {
"0": "data",
"1": "status"
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Unauthorized.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Internal Server Error.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK. | SMSActivity |
| 400 | Bad Request. | BadRequest |
| 401 | Unauthorized. | UnauthorizedRequest |
| 500 | Internal Server Error. | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api-qa.phenompro.com/communications/sms/v1/transactional/sms
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /communications/sms/v1/transactional/sms
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| fromTime | query | string | true |
| toTime | query | string | true |
| pageLimit | query | integer | false |
| offset | query | integer | false |
Response
A paginated list of communicated candidates.
copied![
{
"type": "object",
"description": "Paginated list of communicated candidates for /v1/transactional/sms.",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination details.",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates if this is the first page."
},
"last": {
"type": "boolean",
"description": "Indicates if this is the last page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates if there is a previous page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates if there is a next page."
},
"hasErrors": {
"type": "boolean",
"description": "Indicates whether there are errors."
},
"totalElements": {
"type": "integer",
"format": "int32",
"description": "Total number of elements."
},
"totalPages": {
"type": "integer",
"format": "int32",
"description": "Total number of pages."
},
"size": {
"type": "integer",
"format": "int32",
"description": "Page size."
},
"currentPage": {
"type": "integer",
"format": "int32",
"description": "Current page number."
},
"numberOfElements": {
"type": "integer",
"format": "int32",
"description": "Number of elements on current page."
}
},
"required": {
"0": "first",
"1": "last",
"2": "hasPrevious",
"3": "hasNext",
"4": "hasErrors",
"5": "totalElements",
"6": "totalPages",
"7": "size",
"8": "currentPage",
"9": "numberOfElements"
}
},
"data": {
"type": "array",
"description": "Communicated candidates (candidateId, candidatePhone).",
"items": {
"type": "object",
"properties": {
"candidateId": {
"type": "string",
"description": "Candidate identifier."
},
"candidatePhone": {
"type": "string",
"description": "Candidate phone number."
}
}
}
},
"status": {
"type": "integer",
"description": "HTTP status."
}
},
"required": {
"0": "pagination",
"1": "data",
"2": "status"
}
}
]The request was malformed or invalid.
copied![
{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]The request is missing valid authentication credentials.
copied![
{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]An unexpected error occurred on the server.
copied![
{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code."
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": {
"0": "status",
"1": "message"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | A paginated list of communicated candidates. | GetCommunicatedCandidatesResponse |
| 400 | The request was malformed or invalid. | BadRequest |
| 401 | The request is missing valid authentication credentials. | UnauthorizedRequest |
| 500 | An unexpected error occurred on the server. | InternalServerError |
Schemas
copied!{
"description": "Represents a single email event received from a webhook.",
"allOf": [
{
"type": "object",
"required": [
"category",
"email",
"timestamp",
"event"
],
"properties": {
"email": {
"type": "string",
"description": "The email address of the recipient.",
"example": "xyz@domain.com"
},
"timestamp": {
"type": "integer",
"description": "The UNIX timestamp of when the event occurred.",
"example": 1717667043
},
"event": {
"type": "string",
"description": "The type of email event, such as 'open', 'click', or 'bounce'.",
"example": "open"
},
"smtpId": {
"type": "string",
"description": "A unique ID attached to the message by the originating system."
},
"useragent": {
"type": "string",
"description": "The user agent responsible for the event.",
"example": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0"
},
"ip": {
"type": "string",
"description": "The IP address associated with the event."
},
"messageId": {
"type": "string",
"description": "A unique, internal ID for the message."
},
"eventId": {
"type": "string",
"description": "A unique ID for the event.",
"maxLength": 100
},
"reason": {
"type": "string",
"description": "The error response from the receiving server that describes the event reason."
},
"status": {
"type": "string",
"description": "The status code string corresponding to the HTTP status code.",
"example": "400"
},
"response": {
"type": "string",
"description": "The full text of the HTTP response error from the receiving server."
},
"tls": {
"type": "integer",
"description": "Indicates whether TLS encryption was used in sending this message.",
"example": 1
},
"url": {
"type": "string",
"description": "The URL where the event originates."
},
"urlOffset": {
"type": "object",
"properties": {
"index": {
"type": "integer",
"description": "Indicates the location of a link in the email's HTML code."
},
"type": {
"type": "string",
"description": "The type of link.",
"example": "html"
}
}
},
"attempt": {
"type": "integer",
"description": "The number of times the server has attempted to deliver this message.",
"example": 2
},
"category": {
"type": "array",
"description": "A list of category strings associated with the email.",
"items": {
"type": "string"
}
},
"type": {
"type": "string",
"description": "Indicates whether a bounce event was a hard bounce or a block.",
"example": "bounce"
},
"bounceClassification": {
"type": "string",
"description": "Classification of the SMTP failure message.",
"example": "Content"
},
"asmGroupId": {
"type": "integer",
"description": "The ID of the unsubscribe group."
},
"machineOpen": {
"type": "boolean",
"description": "Indicates if an open event was generated by Apple Mail Privacy Protection.",
"example": true
},
"source": {
"type": "string",
"description": "The source identifier for the webhook.",
"example": "string"
}
}
},
{
"anyOf": [
{
"DeliveredEvent": {
"type": "object",
"required": [
"category",
"event",
"email",
"timestamp"
],
"properties": {
"event": {
"type": "string",
"enum": [
"delivered"
]
},
"email": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"ip": {
"type": "string"
},
"response": {
"type": "string"
},
"sg_event_id": {
"type": "string"
},
"sg_message_id": {
"type": "string"
},
"smtp-id": {
"type": "string"
},
"tls": {
"type": "integer"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"OpenEvent": {
"type": "object",
"required": [
"category",
"event",
"email",
"timestamp"
],
"properties": {
"event": {
"type": "string",
"enum": [
"open"
]
},
"email": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"ip": {
"type": "string"
},
"sg_content_type": {
"type": "string"
},
"sg_event_id": {
"type": "string"
},
"sg_machine_open": {
"type": "boolean"
},
"sg_message_id": {
"type": "string"
},
"useragent": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"ClickEvent": {
"type": "object",
"required": [
"category",
"event",
"email",
"timestamp",
"url"
],
"properties": {
"event": {
"type": "string",
"enum": [
"click"
]
},
"email": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"ip": {
"type": "string"
},
"url": {
"type": "string"
},
"url_offset": {
"type": "object",
"properties": {
"index": {
"type": "integer"
},
"type": {
"type": "string"
}
}
},
"useragent": {
"type": "string"
},
"sg_event_id": {
"type": "string"
},
"sg_message_id": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"ApplyClickEvent": {
"type": "object",
"required": [
"category",
"event",
"email"
],
"properties": {
"event": {
"type": "string",
"enum": [
"apply_click"
]
},
"email": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"ApplicantEvent": {
"type": "object",
"required": [
"category",
"event",
"email"
],
"properties": {
"event": {
"type": "string",
"enum": [
"applicant"
]
},
"email": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"UnsubscribeEvent": {
"type": "object",
"required": [
"category",
"event",
"email"
],
"properties": {
"event": {
"type": "string",
"enum": [
"unsubscribe"
]
},
"email": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"BounceEvent": {
"type": "object",
"required": [
"event",
"email",
"timestamp"
],
"properties": {
"event": {
"type": "string",
"enum": [
"bounce"
]
},
"email": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"bounceClassification": {
"type": "string"
},
"reason": {
"type": "string"
},
"sgEventId": {
"type": "string"
},
"sgMessageId": {
"type": "string"
},
"smtpId": {
"type": "string"
},
"tls": {
"type": "integer"
},
"type": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
]
}Properties
| Name | Type |
|---|
copied!{
"type": "object",
"required": [
"category",
"event",
"email",
"timestamp"
],
"properties": {
"event": {
"type": "string",
"enum": [
"delivered"
]
},
"email": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"ip": {
"type": "string"
},
"response": {
"type": "string"
},
"sg_event_id": {
"type": "string"
},
"sg_message_id": {
"type": "string"
},
"smtp-id": {
"type": "string"
},
"tls": {
"type": "integer"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Properties
| Name | Type |
|---|---|
| event | string |
| string | |
| timestamp | integer |
| ip | string |
| response | string |
| sg_event_id | string |
| sg_message_id | string |
| smtp-id | string |
| tls | integer |
| category | [string] |
copied!{
"type": "object",
"required": [
"category",
"event",
"email",
"timestamp"
],
"properties": {
"event": {
"type": "string",
"enum": [
"open"
]
},
"email": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"ip": {
"type": "string"
},
"sg_content_type": {
"type": "string"
},
"sg_event_id": {
"type": "string"
},
"sg_machine_open": {
"type": "boolean"
},
"sg_message_id": {
"type": "string"
},
"useragent": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Properties
| Name | Type |
|---|---|
| event | string |
| string | |
| timestamp | integer |
| ip | string |
| sg_content_type | string |
| sg_event_id | string |
| sg_machine_open | boolean |
| sg_message_id | string |
| useragent | string |
| category | [string] |
copied!{
"type": "object",
"required": [
"category",
"event",
"email",
"timestamp",
"url"
],
"properties": {
"event": {
"type": "string",
"enum": [
"click"
]
},
"email": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"ip": {
"type": "string"
},
"url": {
"type": "string"
},
"url_offset": {
"type": "object",
"properties": {
"index": {
"type": "integer"
},
"type": {
"type": "string"
}
}
},
"useragent": {
"type": "string"
},
"sg_event_id": {
"type": "string"
},
"sg_message_id": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Properties
| Name | Type |
|---|---|
| event | string |
| string | |
| timestamp | integer |
| ip | string |
| url | string |
| url_offset | object |
| index | integer |
| type | string |
| useragent | string |
| sg_event_id | string |
| sg_message_id | string |
| category | [string] |
copied!{
"type": "object",
"required": [
"category",
"event",
"email"
],
"properties": {
"event": {
"type": "string",
"enum": [
"apply_click"
]
},
"email": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Properties
| Name | Type |
|---|---|
| event | string |
| string | |
| category | [string] |
copied!{
"type": "object",
"required": [
"category",
"event",
"email"
],
"properties": {
"event": {
"type": "string",
"enum": [
"applicant"
]
},
"email": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Properties
| Name | Type |
|---|---|
| event | string |
| string | |
| category | [string] |
copied!{
"type": "object",
"required": [
"category",
"event",
"email"
],
"properties": {
"event": {
"type": "string",
"enum": [
"unsubscribe"
]
},
"email": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Properties
| Name | Type |
|---|---|
| event | string |
| string | |
| category | [string] |
copied!{
"type": "object",
"required": [
"event",
"email",
"timestamp"
],
"properties": {
"event": {
"type": "string",
"enum": [
"bounce"
]
},
"email": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"bounceClassification": {
"type": "string"
},
"reason": {
"type": "string"
},
"sgEventId": {
"type": "string"
},
"sgMessageId": {
"type": "string"
},
"smtpId": {
"type": "string"
},
"tls": {
"type": "integer"
},
"type": {
"type": "string"
},
"category": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Properties
| Name | Type |
|---|---|
| event | string |
| string | |
| timestamp | integer |
| bounceClassification | string |
| reason | string |
| sgEventId | string |
| sgMessageId | string |
| smtpId | string |
| tls | integer |
| type | string |
| category | [string] |
copied!{
"type": "object",
"description": "Defines the payload for sending an email.",
"properties": {
"subject": {
"type": "string",
"description": "The subject line of the email.",
"minLength": 3,
"maxLength": 78
},
"emailContent": {
"type": "string",
"description": "The HTML or plain text content of the email.",
"minLength": 3,
"maxLength": 524288
},
"toEmail": {
"type": "string",
"description": "The recipient's email address.",
"minLength": 3,
"maxLength": 78
}
},
"required": [
"emailContent",
"subject",
"toEmail"
]
}Properties
| Name | Type | Description |
|---|---|---|
| subject | string | The subject line of the email. |
| emailContent | string | The HTML or plain text content of the email. |
| toEmail | string | The recipient's email address. |
copied!{
"type": "object",
"description": "Contains the response after sending an email.",
"properties": {
"data": {
"type": "object",
"description": "The data object containing the response details.",
"properties": {
"emailActivityId": {
"type": "string",
"description": "A unique identifier for the email activity."
},
"message": {
"type": "string",
"description": "A user-readable message describing the result."
}
},
"required": [
"emailActivityId",
"message"
]
},
"status": {
"type": "integer",
"description": "The overall status of the request.",
"example": 200
}
},
"required": [
"data",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| data | object | The data object containing the response details. |
| emailActivityId | string | A unique identifier for the email activity. |
| message | string | A user-readable message describing the result. |
| status | integer | The overall status of the request. |
copied!{
"type": "object",
"description": "Confirmation response for receiving email events via webhook based on ApiResponseModel.",
"properties": {
"status": {
"type": "integer",
"description": "The status of the event processing.",
"example": 200
}
},
"required": [
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| status | integer | The status of the event processing. |
copied!{
"type": "object",
"description": "Response for webhook email reply processing based on ApiResponseModel.",
"properties": {
"status": {
"type": "integer",
"description": "The status of the request.",
"example": 200
},
"data": {
"type": "object",
"description": "The details object containing response data.",
"properties": {
"MessageSid": {
"type": "string",
"description": "The unique message identifier generated for the reply.",
"example": "550e8400-e29b-41d4-a716-446655440000"
}
},
"required": [
"MessageSid"
],
"additionalProperties": false
}
},
"required": [
"status",
"data"
]
}Properties
| Name | Type | Description |
|---|---|---|
| status | integer | The status of the request. |
| data | object | The details object containing response data. |
| MessageSid | string | The unique message identifier generated for the reply. |
copied!{
"type": "object",
"description": "Defines the payload for an inbound email reply.",
"properties": {
"email": {
"type": "string",
"description": "A string containing the full raw email content, including headers."
},
"to": {
"type": "string",
"description": "The email recipient field from the message headers.",
"example": "User Name <reply@sub.domain.com>"
},
"cc": {
"type": "string",
"description": "The email CC field from the message headers.",
"example": "user <sample1@example.com>"
},
"from": {
"type": "string",
"description": "The email sender field from the message headers.",
"example": "senderName <sender@example.com>"
},
"sender_ip": {
"type": "string",
"description": "The IP address of the email sender.",
"example": "192.168.1.1"
},
"envelope": {
"type": "string",
"description": "A string containing the SMTP envelope.",
"example": "{\"to\":[\"reply@sub.domain.com\"],\"from\":\"sender@domain.com\"}"
},
"subject": {
"type": "string",
"description": "The subject line of the email."
},
"spf": {
"type": "string",
"description": "The result of the Sender Policy Framework verification."
},
"charsets": {
"type": "string",
"description": "A string containing the character sets of the fields.",
"example": "{\"to\":\"UTF-8\",\"from\":\"UTF-8\",\"subject\":\"UTF-8\"}"
}
},
"required": [
"to",
"from",
"envelope",
"subject",
"email",
"charsets"
]
}Properties
| Name | Type | Description |
|---|---|---|
| string | A string containing the full raw email content, including headers. | |
| to | string | The email recipient field from the message headers. |
| cc | string | The email CC field from the message headers. |
| from | string | The email sender field from the message headers. |
| sender_ip | string | The IP address of the email sender. |
| envelope | string | A string containing the SMTP envelope. |
| subject | string | The subject line of the email. |
| spf | string | The result of the Sender Policy Framework verification. |
| charsets | string | A string containing the character sets of the fields. |
copied!{
"type": "object",
"description": "Defines the payload for forwarding a candidate profile.",
"properties": {
"subject": {
"type": "string",
"description": "The subject for the forward profile email.",
"minLength": 3,
"maxLength": 78
},
"toEmail": {
"type": "string",
"description": "The recipient's email address.",
"minLength": 3,
"maxLength": 78
},
"candidateEmail": {
"type": "string",
"description": "The candidate's email address to be forwarded.",
"minLength": 3,
"maxLength": 78
}
},
"required": [
"candidateEmail",
"subject",
"toEmail"
]
}Properties
| Name | Type | Description |
|---|---|---|
| subject | string | The subject for the forward profile email. |
| toEmail | string | The recipient's email address. |
| candidateEmail | string | The candidate's email address to be forwarded. |
copied!{
"type": "object",
"description": "Paginated email communication history for /v1/history (email-communications).",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination details.",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates if this is the first page."
},
"last": {
"type": "boolean",
"description": "Indicates if this is the last page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates if there is a previous page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates if there is a next page."
},
"hasErrors": {
"type": "boolean",
"description": "Indicates whether there are errors."
},
"totalElements": {
"type": "integer",
"format": "int32",
"description": "Total number of elements."
},
"totalPages": {
"type": "integer",
"format": "int32",
"description": "Total number of pages."
},
"size": {
"type": "integer",
"format": "int32",
"description": "Page size."
},
"currentPage": {
"type": "integer",
"format": "int32",
"description": "Current page number."
},
"numberOfElements": {
"type": "integer",
"format": "int32",
"description": "Number of elements on current page."
}
},
"required": [
"first",
"last",
"hasPrevious",
"hasNext",
"hasErrors",
"totalElements",
"totalPages",
"size",
"currentPage",
"numberOfElements"
]
},
"data": {
"type": "array",
"description": "Email communication records (EmailCommunicationData).",
"items": {
"type": "object",
"properties": {
"sender": {
"type": "string",
"description": "Sender email address."
},
"recipient": {
"type": "string",
"description": "Recipient email address."
},
"timeStamp": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the communication."
},
"subject": {
"type": "string",
"description": "Email subject."
},
"emailBody": {
"type": "string",
"description": "Email body content."
},
"messageType": {
"type": "string",
"description": "inbound or outbound."
},
"recruiterId": {
"type": "string",
"description": "Recruiter identifier."
},
"candidateId": {
"type": "string",
"description": "Candidate identifier."
}
}
}
},
"status": {
"type": "integer",
"description": "HTTP status.",
"example": 200
}
},
"required": [
"pagination",
"data",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| pagination | object | Pagination details. |
| first | boolean | Indicates if this is the first page. |
| last | boolean | Indicates if this is the last page. |
| hasPrevious | boolean | Indicates if there is a previous page. |
| hasNext | boolean | Indicates if there is a next page. |
| hasErrors | boolean | Indicates whether there are errors. |
| totalElements | integer | Total number of elements. |
| totalPages | integer | Total number of pages. |
| size | integer | Page size. |
| currentPage | integer | Current page number. |
| numberOfElements | integer | Number of elements on current page. |
| data | [object] | Email communication records (EmailCommunicationData). |
| sender | string | Sender email address. |
| recipient | string | Recipient email address. |
| timeStamp | string | Timestamp of the communication. |
| subject | string | Email subject. |
| emailBody | string | Email body content. |
| messageType | string | inbound or outbound. |
| recruiterId | string | Recruiter identifier. |
| candidateId | string | Candidate identifier. |
| status | integer | HTTP status. |
copied!{
"type": "object",
"description": "Contains a list of email activity events.",
"properties": {
"data": {
"type": "array",
"description": "An array of email activity data objects.",
"items": {
"type": "object",
"description": "A single email activity event.",
"properties": {
"emailActivityId": {
"type": "string",
"description": "The unique activity ID for the email."
},
"event": {
"type": "string",
"description": "The type of event."
},
"email": {
"type": "string",
"description": "The email address associated with the activity."
},
"ip": {
"type": "string",
"description": "The IP address associated with the event."
},
"createdDate": {
"type": "integer",
"format": "int64",
"description": "The date the event was created."
},
"response": {
"type": "string",
"description": "The response associated with the activity."
}
},
"required": [
"emailActivityId",
"event",
"email",
"ip",
"createdDate",
"response"
]
}
},
"status": {
"type": "integer",
"description": "The status of the request.",
"example": 200
}
},
"required": [
"data",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| data | [object] | An array of email activity data objects. |
| emailActivityId | string | The unique activity ID for the email. |
| event | string | The type of event. |
| string | The email address associated with the activity. | |
| ip | string | The IP address associated with the event. |
| createdDate | integer | The date the event was created. |
| response | string | The response associated with the activity. |
| status | integer | The status of the request. |
copied!{
"type": "object",
"description": "Contains the response after forwarding a profile.",
"properties": {
"data": {
"type": "object",
"description": "The data object containing the response details.",
"properties": {
"emailActivityId": {
"type": "string",
"description": "A unique identifier for the email activity."
},
"message": {
"type": "string",
"description": "A user-readable message describing the result."
}
},
"required": [
"emailActivityId",
"message"
]
},
"status": {
"type": "integer",
"description": "The overall status of the request.",
"example": 200
}
},
"required": [
"data",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| data | object | The data object containing the response details. |
| emailActivityId | string | A unique identifier for the email activity. |
| message | string | A user-readable message describing the result. |
| status | integer | The overall status of the request. |
copied!{
"type": "object",
"description": "A paginated list of forward profile activities.",
"properties": {
"pagination": {
"type": "object",
"description": "An object containing pagination details.",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates if this is the first page."
},
"last": {
"type": "boolean",
"description": "Indicates if this is the last page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates if there is a previous page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates if there is a next page."
},
"totalElements": {
"type": "integer",
"description": "The total number of elements across all pages."
},
"totalPages": {
"type": "integer",
"description": "The total number of pages."
},
"size": {
"type": "integer",
"description": "The number of elements on the current page."
},
"currentPage": {
"type": "integer",
"description": "The current page number."
},
"numberOfElements": {
"type": "integer",
"description": "The number of elements in the current page."
}
}
},
"data": {
"type": "array",
"description": "An array of forward profile activity data objects.",
"items": {
"type": "object",
"properties": {
"createdDate": {
"type": "integer",
"format": "int64",
"description": "The date the email was created."
},
"toName": {
"type": "string",
"description": "The recipient's name."
},
"subject": {
"type": "string",
"description": "The subject of the email."
},
"fromName": {
"type": "string",
"description": "The sender's name."
},
"toEmail": {
"type": "string",
"description": "The sender's email address."
},
"fromEmail": {
"type": "string",
"description": "The recipient's email address."
},
"source": {
"type": "string",
"description": "The source for the forward profile acivity."
},
"emailActivityId": {
"type": "string",
"description": "The unique activity ID for the email."
}
},
"required": [
"createdDate",
"toName",
"subject",
"fromName",
"toEmail",
"fromEmail",
"source",
"emailActivityId"
]
}
},
"status": {
"type": "integer",
"description": "The status of the request.",
"example": 200
}
},
"required": [
"pagination",
"data",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| pagination | object | An object containing pagination details. |
| first | boolean | Indicates if this is the first page. |
| last | boolean | Indicates if this is the last page. |
| hasPrevious | boolean | Indicates if there is a previous page. |
| hasNext | boolean | Indicates if there is a next page. |
| totalElements | integer | The total number of elements across all pages. |
| totalPages | integer | The total number of pages. |
| size | integer | The number of elements on the current page. |
| currentPage | integer | The current page number. |
| numberOfElements | integer | The number of elements in the current page. |
| data | [object] | An array of forward profile activity data objects. |
| createdDate | integer | The date the email was created. |
| toName | string | The recipient's name. |
| subject | string | The subject of the email. |
| fromName | string | The sender's name. |
| toEmail | string | The sender's email address. |
| fromEmail | string | The recipient's email address. |
| source | string | The source for the forward profile acivity. |
| emailActivityId | string | The unique activity ID for the email. |
| status | integer | The status of the request. |
copied!{
"type": "object",
"description": "Paginated list of communicated candidates for /v1/transactional/email.",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination details.",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates if this is the first page."
},
"last": {
"type": "boolean",
"description": "Indicates if this is the last page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates if there is a previous page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates if there is a next page."
},
"hasErrors": {
"type": "boolean",
"description": "Indicates whether there are errors."
},
"totalElements": {
"type": "integer",
"format": "int32",
"description": "Total number of elements."
},
"totalPages": {
"type": "integer",
"format": "int32",
"description": "Total number of pages."
},
"size": {
"type": "integer",
"format": "int32",
"description": "Page size."
},
"currentPage": {
"type": "integer",
"format": "int32",
"description": "Current page number."
},
"numberOfElements": {
"type": "integer",
"format": "int32",
"description": "Number of elements on current page."
}
},
"required": [
"first",
"last",
"hasPrevious",
"hasNext",
"hasErrors",
"totalElements",
"totalPages",
"size",
"currentPage",
"numberOfElements"
]
},
"data": {
"type": "array",
"description": "Communicated candidates (candidateId, candidateEmail).",
"items": {
"type": "object",
"properties": {
"candidateId": {
"type": "string",
"description": "Candidate identifier."
},
"candidateEmail": {
"type": "string",
"description": "Candidate email address."
}
}
}
},
"status": {
"type": "integer",
"description": "HTTP status.",
"example": 200
}
},
"required": [
"pagination",
"data",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| pagination | object | Pagination details. |
| first | boolean | Indicates if this is the first page. |
| last | boolean | Indicates if this is the last page. |
| hasPrevious | boolean | Indicates if there is a previous page. |
| hasNext | boolean | Indicates if there is a next page. |
| hasErrors | boolean | Indicates whether there are errors. |
| totalElements | integer | Total number of elements. |
| totalPages | integer | Total number of pages. |
| size | integer | Page size. |
| currentPage | integer | Current page number. |
| numberOfElements | integer | Number of elements on current page. |
| data | [object] | Communicated candidates (candidateId, candidateEmail). |
| candidateId | string | Candidate identifier. |
| candidateEmail | string | Candidate email address. |
| status | integer | HTTP status. |
copied!{
"type": "object",
"description": "Bad request error (HTTP 400) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code.",
"example": 400
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": [
"status",
"message"
]
}Properties
| Name | Type | Description |
|---|---|---|
| status | integer | HTTP status code. |
| message | string | Error message. |
copied!{
"type": "object",
"description": "Unauthorized error (HTTP 401) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code.",
"example": 401
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": [
"status",
"message"
]
}Properties
| Name | Type | Description |
|---|---|---|
| status | integer | HTTP status code. |
| message | string | Error message. |
copied!{
"type": "object",
"description": "Internal server error (HTTP 500) for v1/history and v1/transactional/sms.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code.",
"example": 500
},
"message": {
"type": "string",
"description": "Error message."
}
},
"required": [
"status",
"message"
]
}Properties
| Name | Type | Description |
|---|---|---|
| status | integer | HTTP status code. |
| message | string | Error message. |
copied!{
"type": "object",
"properties": {
"details": {
"type": "object",
"description": "OptIn status Details.",
"properties": {
"message": {
"type": "string",
"description": "A user-readable message describing the OptIn status."
}
},
"required": [
"message"
]
},
"status": {
"type": "string",
"description": "Status of the OptIn."
}
},
"required": [
"details",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| details | object | OptIn status Details. |
| message | string | A user-readable message describing the OptIn status. |
| status | string | Status of the OptIn. |
copied!{
"type": "object",
"properties": {
"details": {
"type": "object",
"description": "Details of the OptIn Response.",
"properties": {
"message": {
"type": "string",
"description": "A user-readable message describing the OptIn response."
}
},
"required": [
"message"
]
},
"status": {
"type": "string",
"description": "Status of the OptIn response."
}
},
"required": [
"details",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| details | object | Details of the OptIn Response. |
| message | string | A user-readable message describing the OptIn response. |
| status | string | Status of the OptIn response. |
copied!{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the OptIn History."
},
"details": {
"type": "object",
"description": "Details of the OptIn History",
"properties": {
"content": {
"type": "array",
"description": "Content in OptIn history.",
"items": {
"type": "object",
"description": "Items in OptIn history entries.",
"properties": {
"phoneNumber": {
"type": "string",
"description": "The phone number associated with the OptIn history."
},
"actionType": {
"type": "string",
"description": "The type of action associated with the OptIn history."
},
"reason": {
"type": "string",
"description": "The reason for the OptIn history entry."
},
"createdDate": {
"type": "integer",
"format": "int64",
"description": "The timestamp when the OptIn history entry was created."
}
},
"required": [
"phoneNumber",
"actionType",
"reason",
"createdDate"
]
}
},
"pageable": {
"type": "object",
"description": "Details about pagination.",
"properties": {
"sort": {
"type": "object",
"description": "Indicates whether the content is empty.",
"properties": {
"sorted": {
"type": "boolean",
"description": "Indicates whether the content is sorted."
},
"empty": {
"type": "boolean",
"description": "Indicates whether the content is empty."
},
"unsorted": {
"type": "boolean",
"description": "Indicates whether the content is unsorted."
}
},
"required": [
"sorted",
"empty",
"unsorted"
]
},
"pageNumber": {
"type": "integer",
"description": "The current page number."
},
"pageSize": {
"type": "integer",
"description": "The size of each page."
},
"offset": {
"type": "integer",
"description": "The offset of the content."
},
"paged": {
"type": "boolean",
"description": "Indicates whether the content is paged."
},
"unpaged": {
"type": "boolean",
"description": "Indicates whether the content is unpaged."
}
},
"required": [
"sort",
"pageNumber",
"pageSize",
"offset",
"paged",
"unpaged"
]
},
"last": {
"type": "boolean",
"description": "Indicates the last page."
},
"totalElements": {
"type": "integer",
"description": "Total number of elements."
},
"totalPages": {
"type": "integer",
"description": "Total number of pages."
},
"first": {
"type": "boolean",
"description": "Indicates the first page."
},
"size": {
"type": "integer",
"description": "The size of the content."
},
"number": {
"type": "integer",
"description": "The current page number."
},
"sort": {
"type": "object",
"description": "Details about sorting.",
"properties": {
"sorted": {
"type": "boolean",
"description": "Indicates whether the content is sorted."
},
"empty": {
"type": "boolean",
"description": "Indicates whether the content is empty."
},
"unsorted": {
"type": "boolean",
"description": "Indicates whether the content is unsorted."
}
},
"required": [
"sorted",
"empty",
"unsorted"
]
},
"numberOfElements": {
"type": "integer",
"description": "Number of elements in the current page."
},
"empty": {
"type": "boolean",
"description": "Indicates whether the content is empty."
}
},
"required": [
"content",
"pageable",
"last",
"totalElements",
"totalPages",
"first",
"size",
"number",
"sort",
"numberOfElements",
"empty"
]
}
},
"required": [
"status",
"details"
]
}Properties
| Name | Type | Description |
|---|---|---|
| status | string | Status of the OptIn History. |
| details | object | Details of the OptIn History |
| content | [object] | Content in OptIn history. |
| phoneNumber | string | The phone number associated with the OptIn history. |
| actionType | string | The type of action associated with the OptIn history. |
| reason | string | The reason for the OptIn history entry. |
| createdDate | integer | The timestamp when the OptIn history entry was created. |
| pageable | object | Details about pagination. |
| sort | object | Indicates whether the content is empty. |
| sorted | boolean | Indicates whether the content is sorted. |
| empty | boolean | Indicates whether the content is empty. |
| unsorted | boolean | Indicates whether the content is unsorted. |
| pageNumber | integer | The current page number. |
| pageSize | integer | The size of each page. |
| offset | integer | The offset of the content. |
| paged | boolean | Indicates whether the content is paged. |
| unpaged | boolean | Indicates whether the content is unpaged. |
| last | boolean | Indicates the last page. |
| totalElements | integer | Total number of elements. |
| totalPages | integer | Total number of pages. |
| first | boolean | Indicates the first page. |
| size | integer | The size of the content. |
| number | integer | The current page number. |
| sort | object | Details about sorting. |
| sorted | boolean | Indicates whether the content is sorted. |
| empty | boolean | Indicates whether the content is empty. |
| unsorted | boolean | Indicates whether the content is unsorted. |
| numberOfElements | integer | Number of elements in the current page. |
| empty | boolean | Indicates whether the content is empty. |
copied!{
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Data of the SendSMS.",
"properties": {
"messageSID": {
"type": "string",
"description": "Message ID of the Send SMS."
},
"message": {
"type": "string",
"description": "The content of the SMS message."
}
},
"required": [
"messageSID",
"message"
]
},
"status": {
"type": "string",
"description": "The status of the SMS sending operation."
}
},
"required": [
"data",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| data | object | Data of the SendSMS. |
| messageSID | string | Message ID of the Send SMS. |
| message | string | The content of the SMS message. |
| status | string | The status of the SMS sending operation. |
copied!{
"type": "object",
"description": "Paginated SMS communication history for /v1/history (sms-communications).",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination details.",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates the first page."
},
"last": {
"type": "boolean",
"description": "Indicates the last page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates if there is a previous page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates if there is a next page."
},
"hasErrors": {
"type": "boolean",
"description": "Indicates whether there are errors."
},
"totalElements": {
"type": "integer",
"description": "Total number of elements."
},
"totalPages": {
"type": "integer",
"description": "Total number of pages."
},
"size": {
"type": "integer",
"description": "Page size."
},
"currentPage": {
"type": "integer",
"description": "Current page number."
},
"numberOfElements": {
"type": "integer",
"description": "Number of elements on current page."
}
},
"required": [
"first",
"last",
"hasPrevious",
"hasNext",
"hasErrors",
"totalElements",
"totalPages",
"size",
"currentPage",
"numberOfElements"
]
},
"data": {
"type": "array",
"description": "SMS communication records (SmsCommunicationData).",
"items": {
"type": "object",
"properties": {
"sender": {
"type": "string",
"description": "Sender phone number."
},
"recipient": {
"type": "string",
"description": "Recipient phone number."
},
"timeStamp": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the communication."
},
"messageBody": {
"type": "string",
"description": "Message content."
},
"messageType": {
"type": "string",
"description": "inbound or outbound."
},
"recruiterId": {
"type": "string",
"description": "Recruiter identifier."
},
"candidateId": {
"type": "string",
"description": "Candidate identifier."
}
}
}
},
"status": {
"type": "integer",
"description": "HTTP status (e.g. 200).",
"example": 200
}
},
"required": [
"pagination",
"data",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| pagination | object | Pagination details. |
| first | boolean | Indicates the first page. |
| last | boolean | Indicates the last page. |
| hasPrevious | boolean | Indicates if there is a previous page. |
| hasNext | boolean | Indicates if there is a next page. |
| hasErrors | boolean | Indicates whether there are errors. |
| totalElements | integer | Total number of elements. |
| totalPages | integer | Total number of pages. |
| size | integer | Page size. |
| currentPage | integer | Current page number. |
| numberOfElements | integer | Number of elements on current page. |
| data | [object] | SMS communication records (SmsCommunicationData). |
| sender | string | Sender phone number. |
| recipient | string | Recipient phone number. |
| timeStamp | string | Timestamp of the communication. |
| messageBody | string | Message content. |
| messageType | string | inbound or outbound. |
| recruiterId | string | Recruiter identifier. |
| candidateId | string | Candidate identifier. |
| status | integer | HTTP status (e.g. 200). |
copied!{
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Data of the SMS Activity.",
"properties": {
"message": {
"type": "string",
"description": "An user readable message about SMS Activity."
}
},
"required": [
"message"
]
},
"status": {
"type": "string",
"description": "Status of the SMS Activity."
}
},
"required": [
"data",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| data | object | Data of the SMS Activity. |
| message | string | An user readable message about SMS Activity. |
| status | string | Status of the SMS Activity. |
copied!{
"required": [
"message",
"phoneNumber"
],
"type": "object",
"properties": {
"message": {
"maxLength": 78,
"minLength": 2,
"type": "string",
"description": "The content of the SMS message to be sent."
},
"phoneNumber": {
"maxLength": 16,
"minLength": 5,
"type": "string",
"description": "The phone number to which the SMS message will be sent."
}
}
}Properties
| Name | Type | Description |
|---|---|---|
| message | string | The content of the SMS message to be sent. |
| phoneNumber | string | The phone number to which the SMS message will be sent. |
copied!{
"required": [
"optIn"
],
"type": "object",
"properties": {
"phoneNumber": {
"type": "string",
"description": "The phone number for the opt-in request."
},
"email": {
"type": "string",
"description": "The email address for the opt-in request."
},
"optIn": {
"type": "boolean",
"description": "A boolean flag indicating the opt-in status."
}
}
}Properties
| Name | Type | Description |
|---|---|---|
| phoneNumber | string | The phone number for the opt-in request. |
| string | The email address for the opt-in request. | |
| optIn | boolean | A boolean flag indicating the opt-in status. |
copied!{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Error code associated with the API error."
},
"message": {
"type": "string",
"description": "A descriptive message providing details about the error."
},
"status": {
"type": "string",
"description": "HTTP status code associated with the error."
},
"timestamp": {
"type": "integer",
"format": "int64",
"description": "Timestamp when the error occurred."
}
}
}Properties
| Name | Type | Description |
|---|---|---|
| code | string | Error code associated with the API error. |
| message | string | A descriptive message providing details about the error. |
| status | string | HTTP status code associated with the error. |
| timestamp | integer | Timestamp when the error occurred. |
copied!{
"type": "object",
"properties": {
"self": {
"type": "string",
"description": "A URL representing a self-reference link for the API resource."
}
}
}Properties
| Name | Type | Description |
|---|---|---|
| self | string | A URL representing a self-reference link for the API resource. |
copied!{
"type": "object",
"description": "Paginated list of communicated candidates for /v1/transactional/sms.",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination details.",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates if this is the first page."
},
"last": {
"type": "boolean",
"description": "Indicates if this is the last page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates if there is a previous page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates if there is a next page."
},
"hasErrors": {
"type": "boolean",
"description": "Indicates whether there are errors."
},
"totalElements": {
"type": "integer",
"format": "int32",
"description": "Total number of elements."
},
"totalPages": {
"type": "integer",
"format": "int32",
"description": "Total number of pages."
},
"size": {
"type": "integer",
"format": "int32",
"description": "Page size."
},
"currentPage": {
"type": "integer",
"format": "int32",
"description": "Current page number."
},
"numberOfElements": {
"type": "integer",
"format": "int32",
"description": "Number of elements on current page."
}
},
"required": [
"first",
"last",
"hasPrevious",
"hasNext",
"hasErrors",
"totalElements",
"totalPages",
"size",
"currentPage",
"numberOfElements"
]
},
"data": {
"type": "array",
"description": "Communicated candidates (candidateId, candidatePhone).",
"items": {
"type": "object",
"properties": {
"candidateId": {
"type": "string",
"description": "Candidate identifier."
},
"candidatePhone": {
"type": "string",
"description": "Candidate phone number."
}
}
}
},
"status": {
"type": "integer",
"description": "HTTP status.",
"example": 200
}
},
"required": [
"pagination",
"data",
"status"
]
}Properties
| Name | Type | Description |
|---|---|---|
| pagination | object | Pagination details. |
| first | boolean | Indicates if this is the first page. |
| last | boolean | Indicates if this is the last page. |
| hasPrevious | boolean | Indicates if there is a previous page. |
| hasNext | boolean | Indicates if there is a next page. |
| hasErrors | boolean | Indicates whether there are errors. |
| totalElements | integer | Total number of elements. |
| totalPages | integer | Total number of pages. |
| size | integer | Page size. |
| currentPage | integer | Current page number. |
| numberOfElements | integer | Number of elements on current page. |
| data | [object] | Communicated candidates (candidateId, candidatePhone). |
| candidateId | string | Candidate identifier. |
| candidatePhone | string | Candidate phone number. |
| status | integer | HTTP status. |
