Skip to main content
PUT
/
crm
/
lists
/
2026-03
/
folders
/
move-list
Moves a list to a given folder
curl --request PUT \
  --url https://api.hubapi.com/crm/lists/2026-03/folders/move-list \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "listId": "<string>",
  "newFolderId": "<string>"
}
'
import requests

url = "https://api.hubapi.com/crm/lists/2026-03/folders/move-list"

payload = {
"listId": "<string>",
"newFolderId": "<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({listId: '<string>', newFolderId: '<string>'})
};

fetch('https://api.hubapi.com/crm/lists/2026-03/folders/move-list', 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/folders/move-list",
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([
'listId' => '<string>',
'newFolderId' => '<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/folders/move-list"

payload := strings.NewReader("{\n \"listId\": \"<string>\",\n \"newFolderId\": \"<string>\"\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/folders/move-list")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"listId\": \"<string>\",\n \"newFolderId\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.hubapi.com/crm/lists/2026-03/folders/move-list")

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 \"listId\": \"<string>\",\n \"newFolderId\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
This response has no body data.
{
"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

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json
listId
string
required

The Id of the list to move.

newFolderId
string
required

The Id of folder to move the list to, the root folder is Id 0.

Response

Last modified on March 31, 2026