Supported products
Supported products
Please note: this phase of the beta provides read-only endpoints for your forecasts. You cannot currently create, update, or delete forecasts using this API.
Scope requirements
To use the forecast endpoints, you’ll need to authorize thecrm.objects.forecasts.read scope for your app.
Retrieve forecast data
To retrieve all forecast submissions in your account, make aGET request to /crm/objects/v3/forecasts and provide any comma-separated properties that you want included in the response using the ?properties query parameter.
For example, a GET request to https://api.hubspot.com/crm/objects/v3/forecasts?properties=hs_created_by_user_id,hs_milestone,hs_team_id,hs_year,hs_included_deal_ids would result in a response that resembles the following:
GET request to crm/objects/v3/forecasts/{id}.
The table below provides some common properties you might want to query for when using these APIs.
Retrieve forecast types
Forecast types define how HubSpot calculates and displays revenue projections in the forecasting tool. Each forecast type requires two properties:- Amount property: the aggregate value used in the forecast (e.g., a deal amount, ARR, or a custom revenue field).
- Date property: the time-based field to use for filtering (e.g., a close date or a custom date property).
amount and closedate deal properties. You can create up to four additional custom forecast types to forecast on different revenue metrics, such as forecasting on a Services Amount property for one-time or ongoing professional services revenue.
- When you create a custom forecast type, HubSpot automatically generates the supporting calculated properties to provide multi-currency support and probability-weighted projections.
- If your account has deal splits enabled, a matching set of properties will also be created on the deal split object.
GET request to /forecast-settings/v3/forecast-types. The response always includes the default “Sales Forecast” type (with "id": "0") as the first item, followed by any custom forecast types you’ve configured.
For example, to get all available forecast types, you’d make a GET request to https://api.hubspot.com/forecast-settings/v3/forecast-types. A successful response will resemble the following:
GET request to /forecast-settings/v3/forecast-types/{id}. To retrieve the default forecast type, use 0 as the ID.
The table below provides the properties available for each forecast type:
Deal split properties
When deal splits are enabled for an account, the returned forecast type includes a populateddealSplitProperties object. Deal splits allow a single deal’s revenue to be divided among multiple owners based on percentages.
Because deal splits are stored as a separate CRM object type, forecasts require additional properties to aggregate split amounts correctly. The dealSplitProperties property in the response maps the forecast type’s amount and date properties to their corresponding deal split equivalents.
Based on whether the forecast type is aggregated from the deal object or the deal split object, the following properties are provided within dealSplitProperties:
Deal related properties
The following properties are used when aggregating from the deal object:
Deal split related properties
The following properties are used when aggregating from the deal split object:
If a HubSpot user views their individual forecast with deal splits enabled:
- HubSpot will query the corresponding
deal_splitobject instead of thedealobject. - HubSpot will use the
dealSplitCustomAmountPropertyfield to get each sales rep’s portion of the revenue. - Currency conversion will use the value defined in the
dealSplitCustomAmountPropertyInHomeCurrencyfield. - Weighted projections will use the value defined in either the
dealSplitWeightedCustomAmountPropertyordealSplitWeightedCustomAmountPropertyInHomeCurrencyfields.
GET request to /forecast-settings/v3/forecast-types with the dealSplitProperties property populated: