Ajouter et/ou Supprimer des Fiches d'informations d'une Liste
curl --request PUT \
--url https://api.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recordIdsToAdd": [
"<string>"
],
"recordIdsToRemove": [
"<string>"
]
}
'import requests
url = "https://api.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove"
payload = {
"recordIdsToAdd": ["<string>"],
"recordIdsToRemove": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({recordIdsToAdd: ['<string>'], recordIdsToRemove: ['<string>']})
};
fetch('https://api.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove', 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.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'recordIdsToAdd' => [
'<string>'
],
'recordIdsToRemove' => [
'<string>'
]
]),
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.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove"
payload := strings.NewReader("{\n \"recordIdsToAdd\": [\n \"<string>\"\n ],\n \"recordIdsToRemove\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"recordIdsToAdd\": [\n \"<string>\"\n ],\n \"recordIdsToRemove\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"recordIdsToAdd\": [\n \"<string>\"\n ],\n \"recordIdsToRemove\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"recordIdsMissing": [
"<string>"
],
"recordIdsRemoved": [
"<string>"
],
"recordsIdsAdded": [
"<string>"
]
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Contrôles d'accès
Update list membership
Ajouter et/ou supprimer des fiches d’informations qui ont déjà été créées dans le système vers et/ou depuis une liste.
Ce point de terminaison ne fonctionne que pour les listes ayant un « processingType » de « MANUEL » ou « INSTANTANÉ ».
PUT
/
crm
/
lists
/
2026-03
/
{listId}
/
memberships
/
add-and-remove
Ajouter et/ou Supprimer des Fiches d'informations d'une Liste
curl --request PUT \
--url https://api.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recordIdsToAdd": [
"<string>"
],
"recordIdsToRemove": [
"<string>"
]
}
'import requests
url = "https://api.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove"
payload = {
"recordIdsToAdd": ["<string>"],
"recordIdsToRemove": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({recordIdsToAdd: ['<string>'], recordIdsToRemove: ['<string>']})
};
fetch('https://api.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove', 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.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'recordIdsToAdd' => [
'<string>'
],
'recordIdsToRemove' => [
'<string>'
]
]),
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.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove"
payload := strings.NewReader("{\n \"recordIdsToAdd\": [\n \"<string>\"\n ],\n \"recordIdsToRemove\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"recordIdsToAdd\": [\n \"<string>\"\n ],\n \"recordIdsToRemove\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm/lists/2026-03/{listId}/memberships/add-and-remove")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"recordIdsToAdd\": [\n \"<string>\"\n ],\n \"recordIdsToRemove\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"recordIdsMissing": [
"<string>"
],
"recordIdsRemoved": [
"<string>"
],
"recordsIdsAdded": [
"<string>"
]
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Supported products
Supported products
Required Scopes
Required Scopes
Autorisations
oauth2oauth2oauth2oauth2oauth2oauth2
The access token received from the authorization server in the OAuth 2.0 flow.
Paramètres de chemin
L'ID ILS de la liste « MANUEL » ou « INSTANTANÉ ».
Réponse
successful operation
Les identifiants des fiches d'informations « manquantes » (c.-à-d. qui n'existaient pas dans le portail) et qui n'ont donc pas été « ajoutées » ou « supprimées ».
Les identifiants des fiches d'informations qui ont été « supprimées » de la liste.
Dernière modification le 6 octobre 2026