curl --request POST \
--url https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"allowedGroupTypes": [],
"groupConfigs": [
{
"groupCategory": "<string>",
"groupName": "<string>",
"ruleConfigurations": [
{
"configuration": {
"calculation": {
"type": "CONSTANT",
"value": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"enabled": true,
"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"
payload = {
"allowedGroupTypes": [],
"groupConfigs": [
{
"groupCategory": "<string>",
"groupName": "<string>",
"ruleConfigurations": [
{
"configuration": {
"calculation": {
"type": "CONSTANT",
"value": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"enabled": True,
"maximumValue": 123,
"minimumValue": 123
}
],
"maxValue": 123,
"minValue": 123
}
],
"name": "<string>",
"objectTypeId": "<string>",
"maxScore": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
allowedGroupTypes: [],
groupConfigs: [
{
groupCategory: '<string>',
groupName: '<string>',
ruleConfigurations: [
{
configuration: {
calculation: {type: 'CONSTANT', value: 123, id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
},
enabled: true,
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', 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",
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([
'allowedGroupTypes' => [
],
'groupConfigs' => [
[
'groupCategory' => '<string>',
'groupName' => '<string>',
'ruleConfigurations' => [
[
'configuration' => [
'calculation' => [
'type' => 'CONSTANT',
'value' => 123,
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'enabled' => true,
'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"
payload := strings.NewReader("{\n \"allowedGroupTypes\": [],\n \"groupConfigs\": [\n {\n \"groupCategory\": \"<string>\",\n \"groupName\": \"<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 \"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("POST", 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.post("https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"allowedGroupTypes\": [],\n \"groupConfigs\": [\n {\n \"groupCategory\": \"<string>\",\n \"groupName\": \"<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 \"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")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.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 \"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 \"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{
"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"
}
}Create Score
Create a new lead scoring configuration in your HubSpot account. This endpoint allows you to define scoring criteria for leads, which can help in prioritizing and managing leads effectively. The request body must include the necessary configuration details for the scoring setup.
curl --request POST \
--url https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"allowedGroupTypes": [],
"groupConfigs": [
{
"groupCategory": "<string>",
"groupName": "<string>",
"ruleConfigurations": [
{
"configuration": {
"calculation": {
"type": "CONSTANT",
"value": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"enabled": true,
"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"
payload = {
"allowedGroupTypes": [],
"groupConfigs": [
{
"groupCategory": "<string>",
"groupName": "<string>",
"ruleConfigurations": [
{
"configuration": {
"calculation": {
"type": "CONSTANT",
"value": 123,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"enabled": True,
"maximumValue": 123,
"minimumValue": 123
}
],
"maxValue": 123,
"minValue": 123
}
],
"name": "<string>",
"objectTypeId": "<string>",
"maxScore": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
allowedGroupTypes: [],
groupConfigs: [
{
groupCategory: '<string>',
groupName: '<string>',
ruleConfigurations: [
{
configuration: {
calculation: {type: 'CONSTANT', value: 123, id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
},
enabled: true,
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', 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",
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([
'allowedGroupTypes' => [
],
'groupConfigs' => [
[
'groupCategory' => '<string>',
'groupName' => '<string>',
'ruleConfigurations' => [
[
'configuration' => [
'calculation' => [
'type' => 'CONSTANT',
'value' => 123,
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'enabled' => true,
'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"
payload := strings.NewReader("{\n \"allowedGroupTypes\": [],\n \"groupConfigs\": [\n {\n \"groupCategory\": \"<string>\",\n \"groupName\": \"<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 \"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("POST", 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.post("https://api.hubapi.com/marketing/lead-scoring/2026-09-beta/scores")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"allowedGroupTypes\": [],\n \"groupConfigs\": [\n {\n \"groupCategory\": \"<string>\",\n \"groupName\": \"<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 \"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")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.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 \"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 \"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{
"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.
Body
Response
The general category of the error.
A unique identifier for tracking the error across different systems.
"aeb5f871-7f07-4993-9211-075dc63e7cbf"
A human-readable message describing the error.
"An error occurred"
An object containing additional context about the error condition.
Show child attributes
Show child attributes
"{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}"
An array of ErrorDetail objects, each providing specific information about individual errors that occurred.
Show child attributes
Show child attributes
An object containing URLs or references to additional resources or documentation related to the error.
Show child attributes
Show child attributes
A more specific category providing additional detail about the error.
Was this page helpful?