There's a new version of the HubSpot API

As of November 30, 2022, HubSpot API keys are no longer a supported authentication method for accessing HubSpot APIs. Instead, you should use a private app access token or OAuth to authenticate API calls. Learn more about this change and how to migrate an API key integration to use a private app instead.

Using the Deal Properties API

Deal properties are used to store specific information for your deal records.  HubSpot has several default properties, but you can also create custom properties to store any data you need for your deals.  Deal properties can also be used to filter deals that show up in your view when viewing your records in HubSpot.

The Deal Properties API is used to get the details of your deal properties, and to create or modify custom properties.

Each property will have the following data.

{
  "name": "example_property",
  // String; The internal name of the property. When using this property with the Deals API, you must reference the property by the name.
  "label": "Example property",
  // String; A human-readable label for the property. HubSpot displays the label when showing the property.
  "description": "",
  // String; A description of the property
  "groupName": "dealinformation",
  // String; The property group that the property belongs to. HubSpot displays properties in the same group together.
  "type": "enumeration",
  // String, one of string, number, date, datetime, or enumeration
  // The data type of the property. See creating a property for more details.
  "fieldType": "checkbox",
  // This field currently has no use as deal properties cannot be used in forms.
  "updatedUserId": 10101,
  // Integer, read-only; The internal user ID of the last user to modify the property in HubSpot.
  // This field may not be present for properties that have only been modified using the API
  "deleted": false,
  // Boolean; Whether or not the property is deleted. This will effectively always be false, as deleted properties will not appear in the API.
  "options": [
  // A list of valid options for the property.
  // Required for enumerated properties.
  // This list will be empty for other property types.
  // Each option will have the following format
    {
      "description": null,
      // null or string; A description for the option.
      "label": "Option A",
      // String; The label of the option.  The label will be displayed inside the HubSpot app.
      "displayOrder": 0,
      // Integer; Options are displayed in order starting with the lowest positive integer value.
      // Values of -1 will cause the option to be displayed after any positive values.
      "hidden": false,
      // Boolean; Hidden options will not be displayed in HubSpot.
      "readOnly": null,
      // DEPRECATED, has no effect on the option.
      "doubleData": null,
      // DEPRECATED, has no effect on the option.
      "value": "option_a"
      // String; the internal value of the option.  The value of the option must be used when setting the value of the property through the API.
    },
    {
      "description": null,
      "label": "Option B",
      "displayOrder": 1,
      "hidden": false,
      "readOnly": null,
      "doubleData": null,
      "value": "option_b"
    },
    {
      "description": null,
      "label": "Option C",
      "displayOrder": 2,
      "hidden": false,
      "readOnly": null,
      "doubleData": null,
      "value": "option_c"
    }
  ],
  "formField": true,
  // Boolean; Has no effect for deal properties
  "displayOrder": 63,
  // Integer; Proeprties are displayed in order starting with the lowest positive integer value.
  // Values of -1 will cause the option to be displayed after any positive values.
  "readOnlyValue": false,
  // Boolean; A value of true means that the value cannot be set manually, and that only the HubSpot system can update the property.
  // Custom properties should always have this set to false, or the value can't be updated through the API.
  "readOnlyDefinition": false,
  // Boolean; A value of true means that the property settings can't be modified.
  // Custom properties should always have this as false, or the property can't be updated or deleted.
  "hidden": false,
  // Boolean; Hidden fields will not appear in the HubSpot UI
  "mutableDefinitionNotDeletable": false,
  // Boolean; true indicates that the property settings can be modified, but the property cannot be deleted
  // Custom properties should use false
  "favorited": false,
  // DEPRECATED, has no effect on the property
  "favoritedOrder": -1,
  // DEPRECATED, has no effect on the property
  "calculated": false,
  // Boolean; For system properties, true indicates that the property is calculated by a HubSpot process
  // Has no effect for custom properties
  "externalOptions": false,
  // Boolean; For system properties, true indicates that the options are stored 
  // Has no effect on custom properties
  "displayMode": "current_value",
  // DEPRECATED, has no effect on the property
  "createdUserId": 10101
  // Integer, read-only. The internal user ID of the user that created the property in the HubSpot app.
  // This field may not exist if the property was not created inside HubSpot.
}

Docs for this section or API