Contacts
Create Contact
Creates a new contact in your AutoSend project.
POST
/
contacts
curl --request POST \
--url https://api.autosend.com/v1/contacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}'
import requests
url = "https://api.autosend.com/v1/contacts"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
payload = {
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
fetch('https://api.autosend.com/v1/contacts', {
method: 'POST',
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/contacts';
$data = [
'email' => '[email protected]',
'firstName' => 'John',
'lastName' => 'Doe',
'userId' => 'user_12345',
'contactProperties' => [
'company' => 'Acme Corp',
'role' => 'Developer',
'plan' => 'premium'
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer <token>',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
url := "https://api.autosend.com/v1/contacts"
payload := map[string]interface{}{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": map[string]string{
"company": "Acme Corp",
"role": "Developer",
"plan": "premium",
},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class CreateContact {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/contacts");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Authorization", "Bearer <token>");
con.setRequestProperty("Content-Type", "application/json");
con.setDoOutput(true);
String jsonInputString = "{\n" +
" \"email\": \"[email protected]\",\n" +
" \"firstName\": \"John\",\n" +
" \"lastName\": \"Doe\",\n" +
" \"userId\": \"user_12345\",\n" +
" \"contactProperties\": {\n" +
" \"company\": \"Acme Corp\",\n" +
" \"role\": \"Developer\",\n" +
" \"plan\": \"premium\"\n" +
" }\n" +
"}";
try (OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int status = con.getResponseCode();
System.out.println("Response Status: " + status);
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://api.autosend.com/v1/contacts')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path)
request['Authorization'] = 'Bearer <token>'
request['Content-Type'] = 'application/json'
request.body = {
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
}.to_json
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"id": "507f1f77bcf86cd799439011",
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
},
"listIds": ["507f1f77bcf86cd799439011"],
"updatedAt": "2024-01-15T10:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z",
"projectId": "229f1f77bcf86cd9273048038"
}
}
curl --request POST \
--url https://api.autosend.com/v1/contacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}'
import requests
url = "https://api.autosend.com/v1/contacts"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
payload = {
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
fetch('https://api.autosend.com/v1/contacts', {
method: 'POST',
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/contacts';
$data = [
'email' => '[email protected]',
'firstName' => 'John',
'lastName' => 'Doe',
'userId' => 'user_12345',
'contactProperties' => [
'company' => 'Acme Corp',
'role' => 'Developer',
'plan' => 'premium'
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer <token>',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
url := "https://api.autosend.com/v1/contacts"
payload := map[string]interface{}{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": map[string]string{
"company": "Acme Corp",
"role": "Developer",
"plan": "premium",
},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class CreateContact {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/contacts");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Authorization", "Bearer <token>");
con.setRequestProperty("Content-Type", "application/json");
con.setDoOutput(true);
String jsonInputString = "{\n" +
" \"email\": \"[email protected]\",\n" +
" \"firstName\": \"John\",\n" +
" \"lastName\": \"Doe\",\n" +
" \"userId\": \"user_12345\",\n" +
" \"contactProperties\": {\n" +
" \"company\": \"Acme Corp\",\n" +
" \"role\": \"Developer\",\n" +
" \"plan\": \"premium\"\n" +
" }\n" +
"}";
try (OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int status = con.getResponseCode();
System.out.println("Response Status: " + status);
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://api.autosend.com/v1/contacts')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path)
request['Authorization'] = 'Bearer <token>'
request['Content-Type'] = 'application/json'
request.body = {
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
}.to_json
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"id": "507f1f77bcf86cd799439011",
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
},
"listIds": ["507f1f77bcf86cd799439011"],
"updatedAt": "2024-01-15T10:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z",
"projectId": "229f1f77bcf86cd9273048038"
}
}
Use this API when you know the contact is new. Use Upsert Contact when the contact may already exist. It will create or update without throwing an error.
Authorizations
string | header
required
Bearer authentication header of the form Bearer
<token>, where <token> is your auth token.Body
Contact information to createstring<email>
required
Valid email address (automatically normalized to lowercase)Example:
"[email protected]"string
Contact’s first nameExample:
"John"string
Contact’s last nameExample:
"Doe"string
An optional reference field to store your application’s user ID. Use this to map your internal users to AutoSend contacts.Example:
"user_12345"array
IDs of the contact lists to add this contact to. You can find list IDs in your AutoSend Dashboard.Do not pass segment IDs here. Segments are computed automatically based on contact field values. Adding a contact to a list will also trigger any live automations associated with that list.Example:
["507f1f77bcf86cd799439011"]object
Key-value pairs for custom contact attributes. There are four supported value types:
Example:
string, number, boolean, and date. Learn more about contact properties.Show child attributes
Show child attributes
string
contactProperties: {
"company": "Acme Corp",
"isPremium": true,
"loginCount": 42,
"trialEndsAt": "2024-03-01"
}
Response
Contact created successfullyboolean
Indicates if the request was successfulExample:
trueobject
Show child attributes
Show child attributes
string
Contact IDExample:
"507f1f77bcf86cd799439011"string
Contact email addressExample:
"[email protected]"string
Contact’s first nameExample:
"John"string
Contact’s last nameExample:
"Doe"string
Your application’s user identifierExample:
"user_12345"object
Custom contact attributes
Example:
Show child attributes
Show child attributes
string
{
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
string
Contact creation timestampExample:
"2024-01-15T10:30:00.000Z"string
Contact last update timestampExample:
"2024-01-15T10:30:00.000Z"string
Project ID that the contact belongs toExample:
"229f1f77bcf86cd9273048038"array
Contact List IDsExample:
["507f1f77bcf86cd799439011"]Was this page helpful?
⌘I
curl --request POST \
--url https://api.autosend.com/v1/contacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}'
import requests
url = "https://api.autosend.com/v1/contacts"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
payload = {
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
fetch('https://api.autosend.com/v1/contacts', {
method: 'POST',
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/contacts';
$data = [
'email' => '[email protected]',
'firstName' => 'John',
'lastName' => 'Doe',
'userId' => 'user_12345',
'contactProperties' => [
'company' => 'Acme Corp',
'role' => 'Developer',
'plan' => 'premium'
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer <token>',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
url := "https://api.autosend.com/v1/contacts"
payload := map[string]interface{}{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": map[string]string{
"company": "Acme Corp",
"role": "Developer",
"plan": "premium",
},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class CreateContact {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/contacts");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Authorization", "Bearer <token>");
con.setRequestProperty("Content-Type", "application/json");
con.setDoOutput(true);
String jsonInputString = "{\n" +
" \"email\": \"[email protected]\",\n" +
" \"firstName\": \"John\",\n" +
" \"lastName\": \"Doe\",\n" +
" \"userId\": \"user_12345\",\n" +
" \"contactProperties\": {\n" +
" \"company\": \"Acme Corp\",\n" +
" \"role\": \"Developer\",\n" +
" \"plan\": \"premium\"\n" +
" }\n" +
"}";
try (OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int status = con.getResponseCode();
System.out.println("Response Status: " + status);
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://api.autosend.com/v1/contacts')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path)
request['Authorization'] = 'Bearer <token>'
request['Content-Type'] = 'application/json'
request.body = {
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
}.to_json
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"id": "507f1f77bcf86cd799439011",
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
},
"listIds": ["507f1f77bcf86cd799439011"],
"updatedAt": "2024-01-15T10:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z",
"projectId": "229f1f77bcf86cd9273048038"
}
}