curl --request POST \
--url https://api.example.com/v2/partners/{partner_id}/internal-contacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"name": "<string>",
"phone": "<string>",
"job_title": "<string>"
}
'import requests
url = "https://api.example.com/v2/partners/{partner_id}/internal-contacts"
payload = {
"email": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"name": "<string>",
"phone": "<string>",
"job_title": "<string>"
}
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({
email: '<string>',
given_name: '<string>',
family_name: '<string>',
name: '<string>',
phone: '<string>',
job_title: '<string>'
})
};
fetch('https://api.example.com/v2/partners/{partner_id}/internal-contacts', 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://api.example.com/v2/partners/{partner_id}/internal-contacts",
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([
'email' => '<string>',
'given_name' => '<string>',
'family_name' => '<string>',
'name' => '<string>',
'phone' => '<string>',
'job_title' => '<string>'
]),
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://api.example.com/v2/partners/{partner_id}/internal-contacts"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\"\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://api.example.com/v2/partners/{partner_id}/internal-contacts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v2/partners/{partner_id}/internal-contacts")
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 \"email\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"internal_role": "account_manager",
"partner_id": "<string>",
"remote_id": "<string>",
"internal_contact": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"email": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"name": "<string>",
"phone": "<string>",
"job_title": "<string>",
"object": "<string>"
},
"object": "<string>"
}{
"type": "entity-not-found",
"status": 404,
"title": "Entity not found",
"detail": "<string>"
}{
"type": "<string>",
"status": 409,
"title": "<string>",
"detail": "<string>"
}{
"type": "request-validation",
"status": 422,
"title": "<string>",
"errors": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
],
"detail": "<string>"
}Add Internal Contact
Add Internal Contact to a Partner
Assigns an internal contact to this partner with the specified role. The person is identified by email (within the organization) — reused if they already exist, created if not.
curl --request POST \
--url https://api.example.com/v2/partners/{partner_id}/internal-contacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"name": "<string>",
"phone": "<string>",
"job_title": "<string>"
}
'import requests
url = "https://api.example.com/v2/partners/{partner_id}/internal-contacts"
payload = {
"email": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"name": "<string>",
"phone": "<string>",
"job_title": "<string>"
}
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({
email: '<string>',
given_name: '<string>',
family_name: '<string>',
name: '<string>',
phone: '<string>',
job_title: '<string>'
})
};
fetch('https://api.example.com/v2/partners/{partner_id}/internal-contacts', 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://api.example.com/v2/partners/{partner_id}/internal-contacts",
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([
'email' => '<string>',
'given_name' => '<string>',
'family_name' => '<string>',
'name' => '<string>',
'phone' => '<string>',
'job_title' => '<string>'
]),
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://api.example.com/v2/partners/{partner_id}/internal-contacts"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\"\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://api.example.com/v2/partners/{partner_id}/internal-contacts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v2/partners/{partner_id}/internal-contacts")
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 \"email\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"internal_role": "account_manager",
"partner_id": "<string>",
"remote_id": "<string>",
"internal_contact": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"email": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"name": "<string>",
"phone": "<string>",
"job_title": "<string>",
"object": "<string>"
},
"object": "<string>"
}{
"type": "entity-not-found",
"status": 404,
"title": "Entity not found",
"detail": "<string>"
}{
"type": "<string>",
"status": 409,
"title": "<string>",
"detail": "<string>"
}{
"type": "request-validation",
"status": 422,
"title": "<string>",
"errors": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
],
"detail": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Request body for assigning an internal contact to a partner.
Finds or creates the InternalContact by (organization_id, email), then creates an InternalContactAssignment linking them to this partner with the given role.
Email uniquely identifies the internal contact within the organization.
1account_manager, account_executive, csm, lead, co_lead, practice_lead Response
Successful Response
An InternalContact assigned to a Partner with a specific role.
partner_id is null for "floating" assignments — contacts whose role is
declared at the organization level but who have not yet been attached to a
specific partner.
The role this internal contact holds for this partner.
account_manager, account_executive, csm, lead, co_lead, practice_lead Third-party sync identifier for upsert deduplication.
An internal contact (CSM, AM, etc.) at the organization level.
Show child attributes
Show child attributes
String representing the object's type. Objects of the same type share the same value.
