Share a contact list
curl --request POST \
--url https://api.reply.io/v3/contact-lists/{id}/share \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reply.io/v3/contact-lists/{id}/share"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reply.io/v3/contact-lists/{id}/share', 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/contact-lists/{id}/share",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.reply.io/v3/contact-lists/{id}/share"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/contact-lists/{id}/share")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/contact-lists/{id}/share")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body"<unknown>"{
"title": "Validation failed",
"status": 400,
"detail": "The request contains validation errors.",
"errors": [
{
"pointer": "id",
"detail": "The 'id' parameter must be a positive integer."
}
]
}{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "Sharing is not available for your team edition.",
"code": "contactsList.accessChangeRejected"
}{
"title": "Not Found",
"status": 404,
"detail": "List with ID 42 not found.",
"code": "contactsList.notFound"
}{
"title": "Conflict",
"status": 409,
"detail": "A shared list with this name already exists.",
"code": "contactsList.duplicateName"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit exceeded. Retry after 60 seconds."
}Contact Lists
Share a contact list
Requires the
contacts:write scope (or a broader one that includes it).
Use this endpoint when you need to make one of your private contact lists visible to the rest of your team. To reverse it later, use the unshare endpoint.
POST
/
v3
/
contact-lists
/
{id}
/
share
Share a contact list
curl --request POST \
--url https://api.reply.io/v3/contact-lists/{id}/share \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reply.io/v3/contact-lists/{id}/share"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reply.io/v3/contact-lists/{id}/share', 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/contact-lists/{id}/share",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.reply.io/v3/contact-lists/{id}/share"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/contact-lists/{id}/share")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/contact-lists/{id}/share")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body"<unknown>"{
"title": "Validation failed",
"status": 400,
"detail": "The request contains validation errors.",
"errors": [
{
"pointer": "id",
"detail": "The 'id' parameter must be a positive integer."
}
]
}{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "Sharing is not available for your team edition.",
"code": "contactsList.accessChangeRejected"
}{
"title": "Not Found",
"status": 404,
"detail": "List with ID 42 not found.",
"code": "contactsList.notFound"
}{
"title": "Conflict",
"status": 409,
"detail": "A shared list with this name already exists.",
"code": "contactsList.duplicateName"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit exceeded. Retry after 60 seconds."
}Authorizations
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.
Path Parameters
Contact list ID
Response
Contact list shared successfully. The response body is empty.
Empty body
⌘I