curl --request POST \
--url https://api.reply.io/v3/email-accounts/procurement/users \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "john.doe@company.com",
"firstName": "John",
"lastName": "Doe",
"company": "Company Inc",
"country": "US",
"state": "California",
"city": "San Francisco",
"addressLineOne": "500 Market Street",
"addressLineTwo": "Suite 400",
"postalCode": "94105",
"phoneCc": "1",
"phone": "415 555 0142",
"languagePreference": "en"
}
'import requests
url = "https://api.reply.io/v3/email-accounts/procurement/users"
payload = {
"email": "john.doe@company.com",
"firstName": "John",
"lastName": "Doe",
"company": "Company Inc",
"country": "US",
"state": "California",
"city": "San Francisco",
"addressLineOne": "500 Market Street",
"addressLineTwo": "Suite 400",
"postalCode": "94105",
"phoneCc": "1",
"phone": "415 555 0142",
"languagePreference": "en"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: 'john.doe@company.com',
firstName: 'John',
lastName: 'Doe',
company: 'Company Inc',
country: 'US',
state: 'California',
city: 'San Francisco',
addressLineOne: '500 Market Street',
addressLineTwo: 'Suite 400',
postalCode: '94105',
phoneCc: '1',
phone: '415 555 0142',
languagePreference: 'en'
})
};
fetch('https://api.reply.io/v3/email-accounts/procurement/users', 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://api.reply.io/v3/email-accounts/procurement/users",
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([
'email' => 'john.doe@company.com',
'firstName' => 'John',
'lastName' => 'Doe',
'company' => 'Company Inc',
'country' => 'US',
'state' => 'California',
'city' => 'San Francisco',
'addressLineOne' => '500 Market Street',
'addressLineTwo' => 'Suite 400',
'postalCode' => '94105',
'phoneCc' => '1',
'phone' => '415 555 0142',
'languagePreference' => 'en'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.reply.io/v3/email-accounts/procurement/users"
payload := strings.NewReader("{\n \"email\": \"john.doe@company.com\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"company\": \"Company Inc\",\n \"country\": \"US\",\n \"state\": \"California\",\n \"city\": \"San Francisco\",\n \"addressLineOne\": \"500 Market Street\",\n \"addressLineTwo\": \"Suite 400\",\n \"postalCode\": \"94105\",\n \"phoneCc\": \"1\",\n \"phone\": \"415 555 0142\",\n \"languagePreference\": \"en\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.reply.io/v3/email-accounts/procurement/users")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"john.doe@company.com\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"company\": \"Company Inc\",\n \"country\": \"US\",\n \"state\": \"California\",\n \"city\": \"San Francisco\",\n \"addressLineOne\": \"500 Market Street\",\n \"addressLineTwo\": \"Suite 400\",\n \"postalCode\": \"94105\",\n \"phoneCc\": \"1\",\n \"phone\": \"415 555 0142\",\n \"languagePreference\": \"en\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/email-accounts/procurement/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"john.doe@company.com\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"company\": \"Company Inc\",\n \"country\": \"US\",\n \"state\": \"California\",\n \"city\": \"San Francisco\",\n \"addressLineOne\": \"500 Market Street\",\n \"addressLineTwo\": \"Suite 400\",\n \"postalCode\": \"94105\",\n \"phoneCc\": \"1\",\n \"phone\": \"415 555 0142\",\n \"languagePreference\": \"en\"\n}"
response = http.request(request)
puts response.read_bodyRegister The Procurement User
Coming soon. This endpoint will be available by late September 2026.
channels:write scope (or a broader one that includes it).
Contact details and postal address that domain registrations are filed under.
Register once per team — the other Mailbox Procurement endpoints return 403 until you do.
curl --request POST \
--url https://api.reply.io/v3/email-accounts/procurement/users \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "john.doe@company.com",
"firstName": "John",
"lastName": "Doe",
"company": "Company Inc",
"country": "US",
"state": "California",
"city": "San Francisco",
"addressLineOne": "500 Market Street",
"addressLineTwo": "Suite 400",
"postalCode": "94105",
"phoneCc": "1",
"phone": "415 555 0142",
"languagePreference": "en"
}
'import requests
url = "https://api.reply.io/v3/email-accounts/procurement/users"
payload = {
"email": "john.doe@company.com",
"firstName": "John",
"lastName": "Doe",
"company": "Company Inc",
"country": "US",
"state": "California",
"city": "San Francisco",
"addressLineOne": "500 Market Street",
"addressLineTwo": "Suite 400",
"postalCode": "94105",
"phoneCc": "1",
"phone": "415 555 0142",
"languagePreference": "en"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: 'john.doe@company.com',
firstName: 'John',
lastName: 'Doe',
company: 'Company Inc',
country: 'US',
state: 'California',
city: 'San Francisco',
addressLineOne: '500 Market Street',
addressLineTwo: 'Suite 400',
postalCode: '94105',
phoneCc: '1',
phone: '415 555 0142',
languagePreference: 'en'
})
};
fetch('https://api.reply.io/v3/email-accounts/procurement/users', 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://api.reply.io/v3/email-accounts/procurement/users",
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([
'email' => 'john.doe@company.com',
'firstName' => 'John',
'lastName' => 'Doe',
'company' => 'Company Inc',
'country' => 'US',
'state' => 'California',
'city' => 'San Francisco',
'addressLineOne' => '500 Market Street',
'addressLineTwo' => 'Suite 400',
'postalCode' => '94105',
'phoneCc' => '1',
'phone' => '415 555 0142',
'languagePreference' => 'en'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.reply.io/v3/email-accounts/procurement/users"
payload := strings.NewReader("{\n \"email\": \"john.doe@company.com\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"company\": \"Company Inc\",\n \"country\": \"US\",\n \"state\": \"California\",\n \"city\": \"San Francisco\",\n \"addressLineOne\": \"500 Market Street\",\n \"addressLineTwo\": \"Suite 400\",\n \"postalCode\": \"94105\",\n \"phoneCc\": \"1\",\n \"phone\": \"415 555 0142\",\n \"languagePreference\": \"en\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.reply.io/v3/email-accounts/procurement/users")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"john.doe@company.com\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"company\": \"Company Inc\",\n \"country\": \"US\",\n \"state\": \"California\",\n \"city\": \"San Francisco\",\n \"addressLineOne\": \"500 Market Street\",\n \"addressLineTwo\": \"Suite 400\",\n \"postalCode\": \"94105\",\n \"phoneCc\": \"1\",\n \"phone\": \"415 555 0142\",\n \"languagePreference\": \"en\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/email-accounts/procurement/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"john.doe@company.com\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"company\": \"Company Inc\",\n \"country\": \"US\",\n \"state\": \"California\",\n \"city\": \"San Francisco\",\n \"addressLineOne\": \"500 Market Street\",\n \"addressLineTwo\": \"Suite 400\",\n \"postalCode\": \"94105\",\n \"phoneCc\": \"1\",\n \"phone\": \"415 555 0142\",\n \"languagePreference\": \"en\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Authenticate every request with a Bearer token. Pass your Reply API key in the
Authorization header:
Authorization: Bearer <your-api-key>
Get your API key from the Reply dashboard: Settings → API Key.
Body
320Latin letters, spaces, hyphens, apostrophes and periods only
128Latin letters, spaces, hyphens, apostrophes and periods only
128Latin letters, digits, spaces and common punctuation only
128Two-letter ISO 3166-1 alpha-2 code, e.g. US
2128Latin letters, digits, spaces, hyphens, apostrophes and periods only
128Latin letters, digits, spaces and common punctuation only
128Latin letters, digits, spaces and hyphens only
32Country calling code, 1 to 3 digits, without the plus sign, e.g. 1
3Digits, spaces, hyphens and parentheses only
32ISO 639-1 language code, e.g. en
2Latin letters, digits, spaces and common punctuation only
128Latin letters, digits, spaces and common punctuation only
128Response
Contact registered. The response body is empty.