Contacts
Bulk Update Contacts
Updates or creates multiple contacts in a single API request. Each contact is either created (if it doesn’t exist) or updated (if it does) based on the email address. Maximum limit: 100 contacts per request.
POST
/
contacts
/
bulk-update
curl --request POST \
--url https://api.autosend.com/v1/contacts/bulk-update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"contacts": [
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}
],
"runWorkflow": false
}'
import requests
url = "https://api.autosend.com/v1/contacts/bulk-update"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
payload = {
"contacts": [
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}
],
"runWorkflow": False
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
fetch('https://api.autosend.com/v1/contacts/bulk-update', {
method: 'POST',
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
contacts: [
{
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
}
],
runWorkflow: false
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/contacts/bulk-update';
$data = [
'contacts' => [
[
'email' => '[email protected]',
'firstName' => 'John',
'lastName' => 'Doe',
'userId' => 'user_12345',
'contactProperties' => [
'company' => 'Acme Corp',
'role' => 'Developer',
'plan' => 'premium'
]
]
],
'runWorkflow' => false
];
$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/bulk-update"
payload := map[string]interface{}{
"contacts": []map[string]interface{}{
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": map[string]string{
"company": "Acme Corp",
"role": "Developer",
"plan": "premium",
},
},
},
"runWorkflow": false,
}
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 BulkUpdateContacts {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/contacts/bulk-update");
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" +
" \"contacts\": [\n" +
" {\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" +
" }\n" +
" ],\n" +
" \"runWorkflow\": false\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/bulk-update')
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 = {
contacts: [
{
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
}
],
runWorkflow: false
}.to_json
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"successCount": 1,
"failedCount": 0,
"totalCount": 1
}
}
curl --request POST \
--url https://api.autosend.com/v1/contacts/bulk-update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"contacts": [
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}
],
"runWorkflow": false
}'
import requests
url = "https://api.autosend.com/v1/contacts/bulk-update"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
payload = {
"contacts": [
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}
],
"runWorkflow": False
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
fetch('https://api.autosend.com/v1/contacts/bulk-update', {
method: 'POST',
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
contacts: [
{
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
}
],
runWorkflow: false
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/contacts/bulk-update';
$data = [
'contacts' => [
[
'email' => '[email protected]',
'firstName' => 'John',
'lastName' => 'Doe',
'userId' => 'user_12345',
'contactProperties' => [
'company' => 'Acme Corp',
'role' => 'Developer',
'plan' => 'premium'
]
]
],
'runWorkflow' => false
];
$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/bulk-update"
payload := map[string]interface{}{
"contacts": []map[string]interface{}{
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": map[string]string{
"company": "Acme Corp",
"role": "Developer",
"plan": "premium",
},
},
},
"runWorkflow": false,
}
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 BulkUpdateContacts {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/contacts/bulk-update");
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" +
" \"contacts\": [\n" +
" {\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" +
" }\n" +
" ],\n" +
" \"runWorkflow\": false\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/bulk-update')
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 = {
contacts: [
{
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
}
],
runWorkflow: false
}.to_json
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"successCount": 1,
"failedCount": 0,
"totalCount": 1
}
}
Authorizations
string | header
required
Bearer authentication header of the form Bearer
<token>, where <token> is your auth token.Body
Array of contacts to update or createobject[]
required
Array of contact objects (minimum 1, maximum 100)
Maximum 100 contacts per request.
Show child attributes
Show child attributes
string<string>
Valid email address (automatically normalized to lowercase)Example:
"[email protected]"string
Contact’s first nameExample:
"John"string
Contact’s last nameExample:
"Doe"string
Your application’s user identifierExample:
"user_12345"boolean
Whether to trigger workflows for updated contactsExample:
falseResponse
Bulk update completedboolean
Example:
trueWas this page helpful?
⌘I
curl --request POST \
--url https://api.autosend.com/v1/contacts/bulk-update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"contacts": [
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}
],
"runWorkflow": false
}'
import requests
url = "https://api.autosend.com/v1/contacts/bulk-update"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
payload = {
"contacts": [
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": {
"company": "Acme Corp",
"role": "Developer",
"plan": "premium"
}
}
],
"runWorkflow": False
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
fetch('https://api.autosend.com/v1/contacts/bulk-update', {
method: 'POST',
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
contacts: [
{
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
}
],
runWorkflow: false
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/contacts/bulk-update';
$data = [
'contacts' => [
[
'email' => '[email protected]',
'firstName' => 'John',
'lastName' => 'Doe',
'userId' => 'user_12345',
'contactProperties' => [
'company' => 'Acme Corp',
'role' => 'Developer',
'plan' => 'premium'
]
]
],
'runWorkflow' => false
];
$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/bulk-update"
payload := map[string]interface{}{
"contacts": []map[string]interface{}{
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"userId": "user_12345",
"contactProperties": map[string]string{
"company": "Acme Corp",
"role": "Developer",
"plan": "premium",
},
},
},
"runWorkflow": false,
}
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 BulkUpdateContacts {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/contacts/bulk-update");
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" +
" \"contacts\": [\n" +
" {\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" +
" }\n" +
" ],\n" +
" \"runWorkflow\": false\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/bulk-update')
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 = {
contacts: [
{
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
userId: 'user_12345',
contactProperties: {
company: 'Acme Corp',
role: 'Developer',
plan: 'premium'
}
}
],
runWorkflow: false
}.to_json
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"successCount": 1,
"failedCount": 0,
"totalCount": 1
}
}