Supported products
Supported products
Scope requirements
Scope requirements
Create a lead score
To create a new score configuration, make aPOST request to /marketing/lead-scoring/2026-09-beta/scores.
Include the following in the request body:
The request creates a new score with an initial draft configuration. Drafts must be published to become active scores that evaluate records.
201 with a Location header pointing to the new score resource, with a scoreStatus of "draft".
Publish a draft
To publish a draft, make aPOST request to /marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft/publish.
For new scores, this turns on the score and triggers an evaluation of records. For existing scores, the score is updated and the request triggers a re-evaluation of records based on the updated criteria.
A successful response returns the score with a scoreStatus of "published".
Retrieve scores
To retrieve a paginated list of lead scores, make aGET request to /marketing/lead-scoring/2026-09-beta/scores. Include the limit and after query parameters to specify the number of scores returned and to paginate results.
The response will look similar to the following, with a results array of score summaries and a paging object for pagination.
Retrieve score configurations
- To retrieve the published configuration for a score, make a
GETrequest to/marketing/lead-scoring/2026-09-beta/scores/{scoreId}. - To retrieve the current draft configuration for a score, make a
GETrequest to/marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft.
scoreStatus field indicates whether the score is published or published_with_draft.
Upsert a draft
To update the active draft for a score, make aPUT request to /marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft.
This request fully updates the configuration, meaning the entire draft is overwritten with the updated request body. If no draft exists, a new one is created.
200 with the updated draft. Validation failures return a VALIDATION_ERROR response.
Revert a draft to the published configuration
To discard all unpublished changes and revert the draft to the live configuration, make aPOST request to /marketing/lead-scoring/2026-09-beta/scores/{scoreId}/draft/reset.
No request body is required. A successful response returns 204 No Content.
Deactivate a score
To turn a score off, while preserving the score configuration, make aPOST request to /marketing/lead-scoring/2026-09-beta/scores/{scoreId}/deactivate.
No request body is required. The response returns the score metadata reflecting its new inactive state.
groupConfigs are retained.
Clone a score
To duplicate an existing score configuration into a new score, make aPOST request to /marketing/lead-scoring/2026-09-beta/scores/{scoreId}/clone. In the request body, include the scoreName. This is the name for the new cloned score.
If the source score has an active draft, the clone is created from the draft configuration. If no draft exists, the published configuration is cloned.
201 with the scoreStatus as "draft".
Delete a score
To delete a score, make aDELETE request to /marketing/lead-scoring/2026-09-beta/scores/{scoreId}.
No request body is required. A successful response returns 204 No Content.
Read record score values
You can retrieve record score values via the objects API. In your request, retrieve each score’soutputProperty.
For example, to retrieve contacts’ value for the New Lead Score, with the output property hubspot_lead_score:
- To retrieve an individual contact with their score value, make a
GETrequest to/crm/objects/2026-03/contacts/{recordId}?properties=hubspot_lead_score. - To retrieve all contacts with their score values, make a
GETrequest to/crm/objects/2026-03/contacts?properties=hubspot_lead_score. - To retrieve multiple specific contacts with their score values, make a
POSTrequest to/crm/objects/2026-03/contacts/batch/read. In your request body, include the score property in thepropertiesarray, and theidvalues of records to retrieve asinputs. For example:
outputProperty. For example, to search for contacts with a New Lead Score (outputProperty:hubspot_lead_score) value over 50, make a POST request to /crm/objects/2026-03/contacts/search and use the following request body: