Bulk update pipeline fields
Updates opportunity field definitions for a pipeline in bulk. Identify each field by id/attribute_id or property_name. Opportunity fields are pipeline-scoped, so use this pipeline endpoint. property_name is a stable identifier and cannot be renamed; if you include it with id/attribute_id, it must match the stored field property_name exactly.
curl --request POST \
--url https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"attribute_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"property_name": "<string>",
"name": "<string>",
"current_name": "<string>",
"metadata": {},
"order": 2,
"is_hidden": true
}
]
'import requests
url = "https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update"
payload = [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"attribute_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"property_name": "<string>",
"name": "<string>",
"current_name": "<string>",
"metadata": {},
"order": 2,
"is_hidden": True
}
]
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
attribute_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
property_name: '<string>',
name: '<string>',
current_name: '<string>',
metadata: {},
order: 2,
is_hidden: true
}
])
};
fetch('https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update', 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.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update",
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([
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'attribute_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'property_name' => '<string>',
'name' => '<string>',
'current_name' => '<string>',
'metadata' => [
],
'order' => 2,
'is_hidden' => true
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update"
payload := strings.NewReader("[\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"attribute_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"property_name\": \"<string>\",\n \"name\": \"<string>\",\n \"current_name\": \"<string>\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"attribute_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"property_name\": \"<string>\",\n \"name\": \"<string>\",\n \"current_name\": \"<string>\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"attribute_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"property_name\": \"<string>\",\n \"name\": \"<string>\",\n \"current_name\": \"<string>\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": "<unknown>"
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}Authorizations
Personal API key. Requests act as the workspace member who created the key, with that member's current access, and stop working when the key is disabled or its creator leaves the workspace.
Path Parameters
Pipeline ID.
Body
Array of field definition patches. Maximum 100 items.
1 - 100 elementsAlias for id when updating pipeline fields.
Stable field identifier. This value cannot be changed by update APIs. If supplied with id or attribute_id, it must match the stored field property_name exactly.
^[a-z][a-z0-9_]*$New display name.
New display name.
Can be changed only for custom fields, not system fields.
string, number, checkbox, date, date_range, rating, timestamp, select, multi_select, currency, percentage, location, time, datetime, email, phone, website, url, radio, team_members x >= 1Was this page helpful?
curl --request POST \
--url https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"attribute_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"property_name": "<string>",
"name": "<string>",
"current_name": "<string>",
"metadata": {},
"order": 2,
"is_hidden": true
}
]
'import requests
url = "https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update"
payload = [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"attribute_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"property_name": "<string>",
"name": "<string>",
"current_name": "<string>",
"metadata": {},
"order": 2,
"is_hidden": True
}
]
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
attribute_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
property_name: '<string>',
name: '<string>',
current_name: '<string>',
metadata: {},
order: 2,
is_hidden: true
}
])
};
fetch('https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update', 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.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update",
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([
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'attribute_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'property_name' => '<string>',
'name' => '<string>',
'current_name' => '<string>',
'metadata' => [
],
'order' => 2,
'is_hidden' => true
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update"
payload := strings.NewReader("[\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"attribute_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"property_name\": \"<string>\",\n \"name\": \"<string>\",\n \"current_name\": \"<string>\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"attribute_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"property_name\": \"<string>\",\n \"name\": \"<string>\",\n \"current_name\": \"<string>\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"attribute_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"property_name\": \"<string>\",\n \"name\": \"<string>\",\n \"current_name\": \"<string>\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": "<unknown>"
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}