Create contact
curl --request POST \
--url https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"firstName": "<string>",
"company": "<string>",
"customVars": {},
"email": "<string>",
"lastName": "<string>",
"linkedinUrl": "<string>",
"position": "<string>",
"tagIds": [
"<string>"
],
"tags": [
"<string>"
]
}
'const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
firstName: '<string>',
company: '<string>',
customVars: {},
email: '<string>',
lastName: '<string>',
linkedinUrl: '<string>',
position: '<string>',
tagIds: ['<string>'],
tags: ['<string>']
})
};
fetch('https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
firstName: '<string>',
company: '<string>',
customVars: {},
email: '<string>',
lastName: '<string>',
linkedinUrl: '<string>',
position: '<string>',
tagIds: ['<string>'],
tags: ['<string>']
})
};
fetch('https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts';
const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
firstName: '<string>',
company: '<string>',
customVars: {},
email: '<string>',
lastName: '<string>',
linkedinUrl: '<string>',
position: '<string>',
tagIds: ['<string>'],
tags: ['<string>']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts"
payload = {
"firstName": "<string>",
"company": "<string>",
"customVars": {},
"email": "<string>",
"lastName": "<string>",
"linkedinUrl": "<string>",
"position": "<string>",
"tagIds": ["<string>"],
"tags": ["<string>"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts"
payload := strings.NewReader("{\n \"firstName\": \"<string>\",\n \"company\": \"<string>\",\n \"customVars\": {},\n \"email\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"position\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"tags\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"firstName\": \"<string>\",\n \"company\": \"<string>\",\n \"customVars\": {},\n \"email\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"position\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"tags\": [\n \"<string>\"\n ]\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<api-key>");
request.AddJsonBody("{\n \"firstName\": \"<string>\",\n \"company\": \"<string>\",\n \"customVars\": {},\n \"email\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"position\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"tags\": [\n \"<string>\"\n ]\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/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([
'firstName' => '<string>',
'company' => '<string>',
'customVars' => [
],
'email' => '<string>',
'lastName' => '<string>',
'linkedinUrl' => '<string>',
'position' => '<string>',
'tagIds' => [
'<string>'
],
'tags' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"firstName\": \"<string>\",\n \"company\": \"<string>\",\n \"customVars\": {},\n \"email\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"position\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"tags\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"company": "<string>",
"customVars": {},
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"lastName": "<string>",
"linkedinUrl": "<string>",
"position": "<string>",
"tags": [
"<string>"
]
}{
"data": [
{
"createdAt": "<string>",
"type": "email",
"value": "<string>"
}
],
"message": "<string>"
}{
"data": [
{
"createdAt": "<string>",
"type": "email",
"value": "<string>"
}
],
"message": "<string>"
}contacts
Create contact
Create a new contact. Requires at least one of email or linkedinUrl. If no tag is provided, a default date-based tag is applied automatically.
POST
/
workspaces
/
{workspaceID}
/
contacts
Create contact
curl --request POST \
--url https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"firstName": "<string>",
"company": "<string>",
"customVars": {},
"email": "<string>",
"lastName": "<string>",
"linkedinUrl": "<string>",
"position": "<string>",
"tagIds": [
"<string>"
],
"tags": [
"<string>"
]
}
'const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
firstName: '<string>',
company: '<string>',
customVars: {},
email: '<string>',
lastName: '<string>',
linkedinUrl: '<string>',
position: '<string>',
tagIds: ['<string>'],
tags: ['<string>']
})
};
fetch('https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
firstName: '<string>',
company: '<string>',
customVars: {},
email: '<string>',
lastName: '<string>',
linkedinUrl: '<string>',
position: '<string>',
tagIds: ['<string>'],
tags: ['<string>']
})
};
fetch('https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts';
const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
firstName: '<string>',
company: '<string>',
customVars: {},
email: '<string>',
lastName: '<string>',
linkedinUrl: '<string>',
position: '<string>',
tagIds: ['<string>'],
tags: ['<string>']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts"
payload = {
"firstName": "<string>",
"company": "<string>",
"customVars": {},
"email": "<string>",
"lastName": "<string>",
"linkedinUrl": "<string>",
"position": "<string>",
"tagIds": ["<string>"],
"tags": ["<string>"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts"
payload := strings.NewReader("{\n \"firstName\": \"<string>\",\n \"company\": \"<string>\",\n \"customVars\": {},\n \"email\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"position\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"tags\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"firstName\": \"<string>\",\n \"company\": \"<string>\",\n \"customVars\": {},\n \"email\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"position\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"tags\": [\n \"<string>\"\n ]\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<api-key>");
request.AddJsonBody("{\n \"firstName\": \"<string>\",\n \"company\": \"<string>\",\n \"customVars\": {},\n \"email\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"position\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"tags\": [\n \"<string>\"\n ]\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/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([
'firstName' => '<string>',
'company' => '<string>',
'customVars' => [
],
'email' => '<string>',
'lastName' => '<string>',
'linkedinUrl' => '<string>',
'position' => '<string>',
'tagIds' => [
'<string>'
],
'tags' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.salesforge.ai/public/v2/workspaces/{workspaceID}/contacts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"firstName\": \"<string>\",\n \"company\": \"<string>\",\n \"customVars\": {},\n \"email\": \"<string>\",\n \"lastName\": \"<string>\",\n \"linkedinUrl\": \"<string>\",\n \"position\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"tags\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"company": "<string>",
"customVars": {},
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"lastName": "<string>",
"linkedinUrl": "<string>",
"position": "<string>",
"tags": [
"<string>"
]
}{
"data": [
{
"createdAt": "<string>",
"type": "email",
"value": "<string>"
}
],
"message": "<string>"
}{
"data": [
{
"createdAt": "<string>",
"type": "email",
"value": "<string>"
}
],
"message": "<string>"
}Authorizations
Path Parameters
Workspace ID
Body
application/json
Request body
Request body
Minimum string length:
1Show child attributes
Show child attributes
Email of the contact. Either email or linkedinUrl must be provided.
LinkedInUrl of the contact. Either email or linkedinUrl must be provided.
TagIDs are existing tag IDs to apply to the contact. The bulk create endpoint requires at least one tag (tags or tagIds).
TagNames are tag names to apply to the contact. The bulk create endpoint requires at least one tag (tags or tagIds).
