cURL
curl --request POST \
--url https://app.masivo.ai/api/storefront/v1/contacts/migrate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-account-id: <x-account-id>' \
--header 'x-timezone: <x-timezone>' \
--data '{}'import requests
url = "https://app.masivo.ai/api/storefront/v1/contacts/migrate"
payload = {}
headers = {
"x-account-id": "<x-account-id>",
"x-timezone": "<x-timezone>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-account-id': '<x-account-id>',
'x-timezone': '<x-timezone>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://app.masivo.ai/api/storefront/v1/contacts/migrate', 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://app.masivo.ai/api/storefront/v1/contacts/migrate",
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([
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-account-id: <x-account-id>",
"x-timezone: <x-timezone>"
],
]);
$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://app.masivo.ai/api/storefront/v1/contacts/migrate"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-account-id", "<x-account-id>")
req.Header.Add("x-timezone", "<x-timezone>")
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://app.masivo.ai/api/storefront/v1/contacts/migrate")
.header("x-account-id", "<x-account-id>")
.header("x-timezone", "<x-timezone>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.masivo.ai/api/storefront/v1/contacts/migrate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-account-id"] = '<x-account-id>'
request["x-timezone"] = '<x-timezone>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"data": {
"message": "Contacts batch enqueued successfully"
}
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}Contacts
Migrate contacts
Migrate contacts in bulk from an external system to Masivo. This endpoint allows you to import up to 10,000 contacts at once. Production accounts can send up to 15 requests every 5 seconds and 10,000 requests per hour to this endpoint.
POST
/
contacts
/
migrate
cURL
curl --request POST \
--url https://app.masivo.ai/api/storefront/v1/contacts/migrate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-account-id: <x-account-id>' \
--header 'x-timezone: <x-timezone>' \
--data '{}'import requests
url = "https://app.masivo.ai/api/storefront/v1/contacts/migrate"
payload = {}
headers = {
"x-account-id": "<x-account-id>",
"x-timezone": "<x-timezone>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-account-id': '<x-account-id>',
'x-timezone': '<x-timezone>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://app.masivo.ai/api/storefront/v1/contacts/migrate', 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://app.masivo.ai/api/storefront/v1/contacts/migrate",
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([
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-account-id: <x-account-id>",
"x-timezone: <x-timezone>"
],
]);
$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://app.masivo.ai/api/storefront/v1/contacts/migrate"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-account-id", "<x-account-id>")
req.Header.Add("x-timezone", "<x-timezone>")
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://app.masivo.ai/api/storefront/v1/contacts/migrate")
.header("x-account-id", "<x-account-id>")
.header("x-timezone", "<x-timezone>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.masivo.ai/api/storefront/v1/contacts/migrate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-account-id"] = '<x-account-id>'
request["x-timezone"] = '<x-timezone>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"data": {
"message": "Contacts batch enqueued successfully"
}
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Your account ID
Timezone for processing (e.g., 'America/New_York', 'UTC')
Example:
"UTC"
Body
application/json
Array of contacts to migrate
Required array length:
1 - 10000 elementsShow child attributes
Show child attributes
Response
Contacts batch enqueued successfully
Show child attributes
Show child attributes
⌘I