curl --request PUT \
--url https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"allowedGroupTypes": [],
"groupConfigs": [
{
"groupCategory": "<string>",
"groupName": "<string>",
"id": "<string>",
"ruleConfigurations": [
{
"configuration": {
"calculation": {
"type": "CONSTANT",
"value": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"enabled": true,
"id": "<string>",
"maximumValue": 123,
"minimumValue": 123
}
],
"maxValue": 123,
"minValue": 123
}
],
"name": "<string>",
"objectTypeId": "<string>",
"maxScore": 123
}
'import requests
url = "https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft"
payload = {
"allowedGroupTypes": [],
"groupConfigs": [
{
"groupCategory": "<string>",
"groupName": "<string>",
"id": "<string>",
"ruleConfigurations": [
{
"configuration": {
"calculation": {
"type": "CONSTANT",
"value": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"enabled": True,
"id": "<string>",
"maximumValue": 123,
"minimumValue": 123
}
],
"maxValue": 123,
"minValue": 123
}
],
"name": "<string>",
"objectTypeId": "<string>",
"maxScore": 123
}
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({
allowedGroupTypes: [],
groupConfigs: [
{
groupCategory: '<string>',
groupName: '<string>',
id: '<string>',
ruleConfigurations: [
{
configuration: {
calculation: {type: 'CONSTANT', value: 123, id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
},
enabled: true,
id: '<string>',
maximumValue: 123,
minimumValue: 123
}
],
maxValue: 123,
minValue: 123
}
],
name: '<string>',
objectTypeId: '<string>',
maxScore: 123
})
};
fetch('https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft', 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/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft",
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([
'allowedGroupTypes' => [
],
'groupConfigs' => [
[
'groupCategory' => '<string>',
'groupName' => '<string>',
'id' => '<string>',
'ruleConfigurations' => [
[
'configuration' => [
'calculation' => [
'type' => 'CONSTANT',
'value' => 123,
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'enabled' => true,
'id' => '<string>',
'maximumValue' => 123,
'minimumValue' => 123
]
],
'maxValue' => 123,
'minValue' => 123
]
],
'name' => '<string>',
'objectTypeId' => '<string>',
'maxScore' => 123
]),
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/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft"
payload := strings.NewReader("{\n \"allowedGroupTypes\": [],\n \"groupConfigs\": [\n {\n \"groupCategory\": \"<string>\",\n \"groupName\": \"<string>\",\n \"id\": \"<string>\",\n \"ruleConfigurations\": [\n {\n \"configuration\": {\n \"calculation\": {\n \"type\": \"CONSTANT\",\n \"value\": 123,\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"enabled\": true,\n \"id\": \"<string>\",\n \"maximumValue\": 123,\n \"minimumValue\": 123\n }\n ],\n \"maxValue\": 123,\n \"minValue\": 123\n }\n ],\n \"name\": \"<string>\",\n \"objectTypeId\": \"<string>\",\n \"maxScore\": 123\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/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"allowedGroupTypes\": [],\n \"groupConfigs\": [\n {\n \"groupCategory\": \"<string>\",\n \"groupName\": \"<string>\",\n \"id\": \"<string>\",\n \"ruleConfigurations\": [\n {\n \"configuration\": {\n \"calculation\": {\n \"type\": \"CONSTANT\",\n \"value\": 123,\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"enabled\": true,\n \"id\": \"<string>\",\n \"maximumValue\": 123,\n \"minimumValue\": 123\n }\n ],\n \"maxValue\": 123,\n \"minValue\": 123\n }\n ],\n \"name\": \"<string>\",\n \"objectTypeId\": \"<string>\",\n \"maxScore\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft")
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 \"allowedGroupTypes\": [],\n \"groupConfigs\": [\n {\n \"groupCategory\": \"<string>\",\n \"groupName\": \"<string>\",\n \"id\": \"<string>\",\n \"ruleConfigurations\": [\n {\n \"configuration\": {\n \"calculation\": {\n \"type\": \"CONSTANT\",\n \"value\": 123,\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"enabled\": true,\n \"id\": \"<string>\",\n \"maximumValue\": 123,\n \"minimumValue\": 123\n }\n ],\n \"maxValue\": 123,\n \"minValue\": 123\n }\n ],\n \"name\": \"<string>\",\n \"objectTypeId\": \"<string>\",\n \"maxScore\": 123\n}"
response = http.request(request)
puts response.read_body{
"allowedGroupTypes": [],
"groupConfigs": [
{
"groupCategory": "<string>",
"groupName": "<string>",
"id": "<string>",
"ruleConfigurations": [
{
"configuration": {
"calculation": {
"type": "CONSTANT",
"value": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"enabled": true,
"id": "<string>",
"maximumValue": 123,
"minimumValue": 123
}
],
"groupDecay": {
"decayIntervalDays": 123,
"percentToDecayPerInterval": 123
},
"maxValue": 123,
"minValue": 123
}
],
"id": "<string>",
"name": "<string>",
"objectTypeId": "<string>",
"scoreStatus": "<string>",
"scoreType": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"filterConfiguration": {
"listIds": [
123
]
},
"maxScore": 123,
"outputConfiguration": {
"limitsByCategory": {},
"propertyWriters": [
{
"groupsAndCalculators": {
"calculator": {
"outputIfNoThresholdMet": "<string>",
"thresholds": [
{
"output": "<string>",
"threshold": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tagColor": "<string>"
}
],
"type": "THRESHOLD",
"defaultTagColor": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"offset": 123
},
"groupCategories": [
"<string>"
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "<string>",
"outputIsEnabled": true,
"propertyToWriteTo": "<string>",
"propertyDescription": "<string>",
"propertyGroup": "<string>",
"propertyLabel": "<string>"
}
]
},
"publishedAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"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"
}
}Update draft
Update the draft configuration of a lead scoring model identified by the scoreId. This operation allows you to modify the draft settings of an existing lead scoring model, which can be useful for testing or adjusting scoring criteria before publishing.
curl --request PUT \
--url https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"allowedGroupTypes": [],
"groupConfigs": [
{
"groupCategory": "<string>",
"groupName": "<string>",
"id": "<string>",
"ruleConfigurations": [
{
"configuration": {
"calculation": {
"type": "CONSTANT",
"value": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"enabled": true,
"id": "<string>",
"maximumValue": 123,
"minimumValue": 123
}
],
"maxValue": 123,
"minValue": 123
}
],
"name": "<string>",
"objectTypeId": "<string>",
"maxScore": 123
}
'import requests
url = "https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft"
payload = {
"allowedGroupTypes": [],
"groupConfigs": [
{
"groupCategory": "<string>",
"groupName": "<string>",
"id": "<string>",
"ruleConfigurations": [
{
"configuration": {
"calculation": {
"type": "CONSTANT",
"value": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"enabled": True,
"id": "<string>",
"maximumValue": 123,
"minimumValue": 123
}
],
"maxValue": 123,
"minValue": 123
}
],
"name": "<string>",
"objectTypeId": "<string>",
"maxScore": 123
}
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({
allowedGroupTypes: [],
groupConfigs: [
{
groupCategory: '<string>',
groupName: '<string>',
id: '<string>',
ruleConfigurations: [
{
configuration: {
calculation: {type: 'CONSTANT', value: 123, id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
},
enabled: true,
id: '<string>',
maximumValue: 123,
minimumValue: 123
}
],
maxValue: 123,
minValue: 123
}
],
name: '<string>',
objectTypeId: '<string>',
maxScore: 123
})
};
fetch('https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft', 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/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft",
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([
'allowedGroupTypes' => [
],
'groupConfigs' => [
[
'groupCategory' => '<string>',
'groupName' => '<string>',
'id' => '<string>',
'ruleConfigurations' => [
[
'configuration' => [
'calculation' => [
'type' => 'CONSTANT',
'value' => 123,
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'enabled' => true,
'id' => '<string>',
'maximumValue' => 123,
'minimumValue' => 123
]
],
'maxValue' => 123,
'minValue' => 123
]
],
'name' => '<string>',
'objectTypeId' => '<string>',
'maxScore' => 123
]),
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/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft"
payload := strings.NewReader("{\n \"allowedGroupTypes\": [],\n \"groupConfigs\": [\n {\n \"groupCategory\": \"<string>\",\n \"groupName\": \"<string>\",\n \"id\": \"<string>\",\n \"ruleConfigurations\": [\n {\n \"configuration\": {\n \"calculation\": {\n \"type\": \"CONSTANT\",\n \"value\": 123,\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"enabled\": true,\n \"id\": \"<string>\",\n \"maximumValue\": 123,\n \"minimumValue\": 123\n }\n ],\n \"maxValue\": 123,\n \"minValue\": 123\n }\n ],\n \"name\": \"<string>\",\n \"objectTypeId\": \"<string>\",\n \"maxScore\": 123\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/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"allowedGroupTypes\": [],\n \"groupConfigs\": [\n {\n \"groupCategory\": \"<string>\",\n \"groupName\": \"<string>\",\n \"id\": \"<string>\",\n \"ruleConfigurations\": [\n {\n \"configuration\": {\n \"calculation\": {\n \"type\": \"CONSTANT\",\n \"value\": 123,\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"enabled\": true,\n \"id\": \"<string>\",\n \"maximumValue\": 123,\n \"minimumValue\": 123\n }\n ],\n \"maxValue\": 123,\n \"minValue\": 123\n }\n ],\n \"name\": \"<string>\",\n \"objectTypeId\": \"<string>\",\n \"maxScore\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft")
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 \"allowedGroupTypes\": [],\n \"groupConfigs\": [\n {\n \"groupCategory\": \"<string>\",\n \"groupName\": \"<string>\",\n \"id\": \"<string>\",\n \"ruleConfigurations\": [\n {\n \"configuration\": {\n \"calculation\": {\n \"type\": \"CONSTANT\",\n \"value\": 123,\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"enabled\": true,\n \"id\": \"<string>\",\n \"maximumValue\": 123,\n \"minimumValue\": 123\n }\n ],\n \"maxValue\": 123,\n \"minValue\": 123\n }\n ],\n \"name\": \"<string>\",\n \"objectTypeId\": \"<string>\",\n \"maxScore\": 123\n}"
response = http.request(request)
puts response.read_body{
"allowedGroupTypes": [],
"groupConfigs": [
{
"groupCategory": "<string>",
"groupName": "<string>",
"id": "<string>",
"ruleConfigurations": [
{
"configuration": {
"calculation": {
"type": "CONSTANT",
"value": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"enabled": true,
"id": "<string>",
"maximumValue": 123,
"minimumValue": 123
}
],
"groupDecay": {
"decayIntervalDays": 123,
"percentToDecayPerInterval": 123
},
"maxValue": 123,
"minValue": 123
}
],
"id": "<string>",
"name": "<string>",
"objectTypeId": "<string>",
"scoreStatus": "<string>",
"scoreType": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"filterConfiguration": {
"listIds": [
123
]
},
"maxScore": 123,
"outputConfiguration": {
"limitsByCategory": {},
"propertyWriters": [
{
"groupsAndCalculators": {
"calculator": {
"outputIfNoThresholdMet": "<string>",
"thresholds": [
{
"output": "<string>",
"threshold": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tagColor": "<string>"
}
],
"type": "THRESHOLD",
"defaultTagColor": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"offset": 123
},
"groupCategories": [
"<string>"
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "<string>",
"outputIsEnabled": true,
"propertyToWriteTo": "<string>",
"propertyDescription": "<string>",
"propertyGroup": "<string>",
"propertyLabel": "<string>"
}
]
},
"publishedAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"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
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The unique identifier of the lead scoring model whose draft configuration is to be updated.
Body
Response
successful operation
An array of strings representing the types of groups that are allowed in this score configuration.
FIT, INTENT An array of group configurations that define the rules and settings for scoring groups.
Show child attributes
Show child attributes
The unique identifier for this score configuration.
The name of the score configuration.
The identifier for the type of object that this score configuration applies to.
The current status of the score, indicating its operational state.
The type of scoring being applied, defining the scoring method or category.
The date and time when this score configuration was created, in ISO 8601 format.
Show child attributes
Show child attributes
The maximum score that can be assigned within this configuration.
Show child attributes
Show child attributes
The date and time when this score configuration was published, in ISO 8601 format.
The date and time when this score configuration was last updated, in ISO 8601 format.
Was this page helpful?