curl --request POST \
--url https://partner-api.taptalent.io/v1/partner/custom-field-values \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customFieldId": 58,
"entityType": "candidate",
"entityId": 12345,
"value": "Email"
}
'import requests
url = "https://partner-api.taptalent.io/v1/partner/custom-field-values"
payload = {
"customFieldId": 58,
"entityType": "candidate",
"entityId": 12345,
"value": "Email"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customFieldId: 58, entityType: 'candidate', entityId: 12345, value: 'Email'})
};
fetch('https://partner-api.taptalent.io/v1/partner/custom-field-values', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://partner-api.taptalent.io/v1/partner/custom-field-values",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customFieldId' => 58,
'entityType' => 'candidate',
'entityId' => 12345,
'value' => 'Email'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://partner-api.taptalent.io/v1/partner/custom-field-values"
payload := strings.NewReader("{\n \"customFieldId\": 58,\n \"entityType\": \"candidate\",\n \"entityId\": 12345,\n \"value\": \"Email\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://partner-api.taptalent.io/v1/partner/custom-field-values")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customFieldId\": 58,\n \"entityType\": \"candidate\",\n \"entityId\": 12345,\n \"value\": \"Email\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.taptalent.io/v1/partner/custom-field-values")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customFieldId\": 58,\n \"entityType\": \"candidate\",\n \"entityId\": 12345,\n \"value\": \"Email\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": 1001,
"customFieldId": 58,
"entityType": "candidate",
"entityId": 12345,
"value": "Email",
"parentEntityType": null,
"parentEntityId": null,
"createdAt": "2024-01-15T10:00:00.000Z",
"updatedAt": "2024-01-15T10:00:00.000Z"
}
}Create or update a custom field value
Create a new custom field value or update an existing one. This is
an upsert operation keyed on the combination of customFieldId,
entityType, entityId, and parentEntityId: if a value already
exists for that combination it is updated, otherwise a new value is
created.
curl --request POST \
--url https://partner-api.taptalent.io/v1/partner/custom-field-values \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customFieldId": 58,
"entityType": "candidate",
"entityId": 12345,
"value": "Email"
}
'import requests
url = "https://partner-api.taptalent.io/v1/partner/custom-field-values"
payload = {
"customFieldId": 58,
"entityType": "candidate",
"entityId": 12345,
"value": "Email"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customFieldId: 58, entityType: 'candidate', entityId: 12345, value: 'Email'})
};
fetch('https://partner-api.taptalent.io/v1/partner/custom-field-values', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://partner-api.taptalent.io/v1/partner/custom-field-values",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customFieldId' => 58,
'entityType' => 'candidate',
'entityId' => 12345,
'value' => 'Email'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://partner-api.taptalent.io/v1/partner/custom-field-values"
payload := strings.NewReader("{\n \"customFieldId\": 58,\n \"entityType\": \"candidate\",\n \"entityId\": 12345,\n \"value\": \"Email\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://partner-api.taptalent.io/v1/partner/custom-field-values")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customFieldId\": 58,\n \"entityType\": \"candidate\",\n \"entityId\": 12345,\n \"value\": \"Email\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.taptalent.io/v1/partner/custom-field-values")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customFieldId\": 58,\n \"entityType\": \"candidate\",\n \"entityId\": 12345,\n \"value\": \"Email\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": 1001,
"customFieldId": 58,
"entityType": "candidate",
"entityId": 12345,
"value": "Email",
"parentEntityType": null,
"parentEntityId": null,
"createdAt": "2024-01-15T10:00:00.000Z",
"updatedAt": "2024-01-15T10:00:00.000Z"
}
}Authorizations
Company-scoped API key. Production keys are prefixed sk_live_,
sandbox keys sk_test_, each followed by 22 base62 characters
(pattern ^sk_(live|test)_[0-9A-Za-z]{22}$). Generate keys in the
TapTalent dashboard under Account Settings → Developers → API Key
Management; a key is shown once at generation and old keys are
invalidated immediately on regeneration.
Body
Request body for creating or updating a custom field value. The
operation is an upsert keyed on customFieldId, entityType,
entityId, and parentEntityId.
The ID of the custom field.
58
The entity a custom field applies to.
candidate, job The ID of the candidate or job.
12345
The stored value. Its JSON type depends on the fieldType of the
custom field definition identified by customFieldId:
| Field type | Value format | Example |
|---|---|---|
text | string | "Some text" |
textarea | string | "Long text content" |
number | number | 42.5 |
date | string, ISO date YYYY-MM-DD | "2024-01-15" |
checkbox | boolean | true |
select | string | "Option 1" |
multi-select | array of strings | ["Option 1", "Option 2"] |
Storage note: text, textarea, and select values are stored as strings
in the value column (multi-select arrays are stored there as JSON
stringified arrays); numbers are stored in the valueNumber column as
decimals; dates in the valueDate column as DATEONLY (YYYY-MM-DD);
checkbox booleans in the valueBoolean column.
"Some text"
"Long text content"
42.5
"2024-01-15"
true
"Option 1"
["Option 1", "Option 2"]
Parent entity type for nested fields. Set to work_experience when the value belongs to a field nested within a candidate's work experience.
Parent entity ID for nested fields. For work experiences this is the work experience's unique ID, typically an epoch timestamp.
Response
The created or updated custom field value. The source documentation does not include a response example for this endpoint; see the schema's inference note.
Envelope returned after creating or updating a custom field value. Response schema inferred from related endpoints; not yet verified against production behavior.
Was this page helpful?
.png?fit=max&auto=format&n=lKy84_BssSCy2hcz&q=85&s=ac7c949427cc2893306f6036415f087e)