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",
"customFields": {
"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",
"customFields": {
"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',
customFields: {
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',
'customFields' => [
'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",
"customFields": 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" +
" \"customFields\": {\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',
customFields: {
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",
"customFields": {
"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",
"customFields": {
"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',
customFields: {
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',
'customFields' => [
'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",
"customFields": 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" +
" \"customFields\": {\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',
customFields: {
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
Bearer authentication header of the form Bearer
<token>, where <token> is your auth token.Body
Array of contacts to update or createArray of contact objects (minimum 1, maximum 100)
Maximum 100 contacts per request.
Show child attributes
Show child attributes
Valid email address (automatically normalized to lowercase)Example:
"[email protected]"Contact’s first nameExample:
"John"Contact’s last nameExample:
"Doe"Your application’s user identifierExample:
"user_12345"Whether to trigger workflows for updated contactsExample:
falseResponse
Bulk update completedExample:
trueRelated topics
Bulk Add Contacts to ListWas 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",
"customFields": {
"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",
"customFields": {
"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',
customFields: {
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',
'customFields' => [
'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",
"customFields": 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" +
" \"customFields\": {\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',
customFields: {
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
}
}