{
  "openapi": "3.0.1",
  "info": {
    "title": "Products",
    "description": "",
    "version": "v3",
    "x-hubspot-product-tier-requirements": {
      "marketing": "FREE",
      "sales": "FREE",
      "service": "FREE",
      "cms": "FREE"
    },
    "x-hubspot-api-use-case": "To prepare for an upcoming product launch, use the products API to create a set of products to represent your new offerings. Sales reps can then use these products when creating payment links, invoices, and more.",
    "x-hubspot-related-documentation": [
      {
        "name": "Products guide",
        "url": "https://developers.hubspot.com/docs/guides/api/crm/objects/products"
      }
    ],
    "x-hubspot-introduction": "Use the products API to create and manage your product library, which is the collection of goods and services that your company offers. Products in your product library can be used as line items when creating deals, payment links, invoices, and quotes.",
    "x-jentic-source-url": "https://raw.githubusercontent.com/HubSpot/HubSpot-public-api-spec-collection/HEAD/PublicApiSpecs/CRM/Products/Rollouts/424/v3/products.json"
  },
  "servers": [
    {
      "url": "https://api.hubapi.com"
    }
  ],
  "paths": {
    "/crm/v3/objects/products/batch/read": {
      "post": {
        "tags": [
          "Batch"
        ],
        "summary": "Read a batch of products by internal ID, or unique property values",
        "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ",
        "operationId": "post-/crm/v3/objects/products/batch/read_read",
        "parameters": [
          {
            "name": "archived",
            "in": "query",
            "description": "Whether to return only results that have been archived.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchReadInputSimplePublicObjectId"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponseSimplePublicObject"
                }
              }
            }
          },
          "207": {
            "description": "multiple statuses",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponseSimplePublicObjectWithErrors"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.read"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.read"
            ]
          }
        ]
      }
    },
    "/crm/v3/objects/products/{productId}": {
      "get": {
        "tags": [
          "Basic"
        ],
        "summary": "Read",
        "description": "Read an Object identified by `{productId}`. `{productId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param.  Control what is returned via the `properties` query param.",
        "operationId": "get-/crm/v3/objects/products/{productId}_getById",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "properties",
            "in": "query",
            "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "propertiesWithHistory",
            "in": "query",
            "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "associations",
            "in": "query",
            "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "archived",
            "in": "query",
            "description": "Whether to return only results that have been archived.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "idProperty",
            "in": "query",
            "description": "The name of a property whose values are unique for this object",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimplePublicObjectWithAssociations"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.read"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.read"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Basic"
        ],
        "summary": "Archive",
        "description": "Move an Object identified by `{productId}` to the recycling bin.",
        "operationId": "delete-/crm/v3/objects/products/{productId}_archive",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No content",
            "content": {}
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.write"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.write"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Basic"
        ],
        "summary": "Update",
        "description": "Perform a partial update of an Object identified by `{productId}`or optionally a unique property value as specified by the `idProperty` query param. `{productId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.",
        "operationId": "patch-/crm/v3/objects/products/{productId}_update",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "idProperty",
            "in": "query",
            "description": "The name of a property whose values are unique for this object",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimplePublicObjectInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimplePublicObject"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.write"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.write"
            ]
          }
        ]
      }
    },
    "/crm/v3/objects/products/batch/archive": {
      "post": {
        "tags": [
          "Batch"
        ],
        "summary": "Archive a batch of products by ID",
        "operationId": "post-/crm/v3/objects/products/batch/archive_archive",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInputSimplePublicObjectId"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No content",
            "content": {}
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.write"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.write"
            ]
          }
        ]
      }
    },
    "/crm/v3/objects/products/batch/create": {
      "post": {
        "tags": [
          "Batch"
        ],
        "summary": "Create a batch of products",
        "operationId": "post-/crm/v3/objects/products/batch/create_create",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInputForCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponseSimplePublicObject"
                }
              }
            }
          },
          "207": {
            "description": "multiple statuses",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponseSimplePublicObjectWithErrors"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.write"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.write"
            ]
          }
        ]
      }
    },
    "/crm/v3/objects/products/batch/update": {
      "post": {
        "tags": [
          "Batch"
        ],
        "summary": "Update a batch of products by internal ID, or unique property values",
        "operationId": "post-/crm/v3/objects/products/batch/update_update",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponseSimplePublicObject"
                }
              }
            }
          },
          "207": {
            "description": "multiple statuses",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponseSimplePublicObjectWithErrors"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.write"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.write"
            ]
          }
        ]
      }
    },
    "/crm/v3/objects/products": {
      "get": {
        "tags": [
          "Basic"
        ],
        "summary": "List",
        "description": "Read a page of products. Control what is returned via the `properties` query param.",
        "operationId": "get-/crm/v3/objects/products_getPage",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of results to display per page.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "properties",
            "in": "query",
            "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "propertiesWithHistory",
            "in": "query",
            "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "associations",
            "in": "query",
            "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "archived",
            "in": "query",
            "description": "Whether to return only results that have been archived.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionResponseSimplePublicObjectWithAssociationsForwardPaging"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.read"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.read"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Basic"
        ],
        "summary": "Create",
        "description": "Create a product with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard products is provided.",
        "operationId": "post-/crm/v3/objects/products_create",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimplePublicObject"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.write"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.write"
            ]
          }
        ]
      }
    },
    "/crm/v3/objects/products/batch/upsert": {
      "post": {
        "tags": [
          "Batch"
        ],
        "summary": "Create or update a batch of products by unique property values",
        "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.",
        "operationId": "post-/crm/v3/objects/products/batch/upsert_upsert",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInputUpsert"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponseSimplePublicUpsertObject"
                }
              }
            }
          },
          "207": {
            "description": "multiple statuses",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponseSimplePublicUpsertObjectWithErrors"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.write"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.write"
            ]
          }
        ]
      }
    },
    "/crm/v3/objects/products/search": {
      "post": {
        "tags": [
          "Search"
        ],
        "operationId": "post-/crm/v3/objects/products/search_doSearch",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicObjectSearchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionResponseWithTotalSimplePublicObjectForwardPaging"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "oauth2": [
              "crm.objects.products.read"
            ]
          },
          {
            "private_apps": [
              "crm.objects.products.read"
            ]
          }
        ],
        "x-hubspot-rate-limit-exemptions": [
          "ten-secondly"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "StandardError": {
        "required": [
          "category",
          "context",
          "errors",
          "links",
          "message",
          "status"
        ],
        "type": "object",
        "properties": {
          "subCategory": {
            "type": "object",
            "properties": {}
          },
          "context": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "id": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorDetail"
            }
          },
          "status": {
            "type": "string"
          }
        }
      },
      "CollectionResponseAssociatedId": {
        "required": [
          "results"
        ],
        "type": "object",
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/Paging"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssociatedId"
            }
          }
        }
      },
      "PublicAssociationsForObject": {
        "required": [
          "to",
          "types"
        ],
        "type": "object",
        "properties": {
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssociationSpec"
            }
          },
          "to": {
            "$ref": "#/components/schemas/PublicObjectId"
          }
        }
      },
      "BatchResponseSimplePublicObject": {
        "required": [
          "completedAt",
          "results",
          "startedAt",
          "status"
        ],
        "type": "object",
        "properties": {
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time"
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicObject"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "PROCESSING",
              "CANCELED",
              "COMPLETE"
            ]
          }
        }
      },
      "FilterGroup": {
        "required": [
          "filters"
        ],
        "type": "object",
        "properties": {
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Filter"
            }
          }
        }
      },
      "ErrorDetail": {
        "required": [
          "message"
        ],
        "type": "object",
        "properties": {
          "subCategory": {
            "type": "string",
            "description": "A specific category that contains more specific detail about the error"
          },
          "code": {
            "type": "string",
            "description": "The status code associated with the error detail"
          },
          "in": {
            "type": "string",
            "description": "The name of the field or parameter in which the error was found."
          },
          "context": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Context about the error condition",
            "example": {
              "missingScopes": [
                "scope1",
                "scope2"
              ]
            }
          },
          "message": {
            "type": "string",
            "description": "A human readable message describing the error along with remediation steps where appropriate"
          }
        }
      },
      "ForwardPaging": {
        "type": "object",
        "properties": {
          "next": {
            "$ref": "#/components/schemas/NextPage"
          }
        }
      },
      "SimplePublicObjectId": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "BatchResponseSimplePublicUpsertObjectWithErrors": {
        "required": [
          "completedAt",
          "results",
          "startedAt",
          "status"
        ],
        "type": "object",
        "properties": {
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "numErrors": {
            "type": "integer",
            "format": "int32"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time"
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicUpsertObject"
            }
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StandardError"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "PROCESSING",
              "CANCELED",
              "COMPLETE"
            ]
          }
        }
      },
      "BatchReadInputSimplePublicObjectId": {
        "required": [
          "inputs",
          "properties",
          "propertiesWithHistory"
        ],
        "type": "object",
        "properties": {
          "propertiesWithHistory": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "idProperty": {
            "type": "string",
            "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."
          },
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicObjectId"
            }
          },
          "properties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "BatchResponseSimplePublicUpsertObject": {
        "required": [
          "completedAt",
          "results",
          "startedAt",
          "status"
        ],
        "type": "object",
        "properties": {
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time"
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicUpsertObject"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "PROCESSING",
              "CANCELED",
              "COMPLETE"
            ]
          }
        }
      },
      "BatchInputSimplePublicObjectId": {
        "required": [
          "inputs"
        ],
        "type": "object",
        "properties": {
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicObjectId"
            }
          }
        }
      },
      "ValueWithTimestamp": {
        "required": [
          "sourceType",
          "timestamp",
          "value"
        ],
        "type": "object",
        "properties": {
          "sourceId": {
            "type": "string"
          },
          "sourceType": {
            "type": "string"
          },
          "sourceLabel": {
            "type": "string"
          },
          "updatedByUserId": {
            "type": "integer",
            "format": "int32"
          },
          "value": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BatchInputSimplePublicObjectBatchInputUpsert": {
        "required": [
          "inputs"
        ],
        "type": "object",
        "properties": {
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicObjectBatchInputUpsert"
            }
          }
        }
      },
      "CollectionResponseWithTotalSimplePublicObjectForwardPaging": {
        "required": [
          "results",
          "total"
        ],
        "type": "object",
        "properties": {
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "paging": {
            "$ref": "#/components/schemas/ForwardPaging"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicObject"
            }
          }
        }
      },
      "SimplePublicObject": {
        "required": [
          "createdAt",
          "id",
          "properties",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "archived": {
            "type": "boolean",
            "example": false
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "propertiesWithHistory": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ValueWithTimestamp"
              }
            }
          },
          "id": {
            "type": "string",
            "example": "512"
          },
          "objectWriteTraceId": {
            "type": "string"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "property_date": "1572480000000",
              "property_radio": "option_1",
              "property_number": "17",
              "property_string": "value",
              "property_checkbox": "false",
              "property_dropdown": "choice_b",
              "property_multiple_checkboxes": "chocolate;strawberry"
            }
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "example": {
          "archived": false,
          "createdAt": "2019-10-30T03:30:17.883Z",
          "id": "512",
          "properties": {
            "createdate": "2019-10-30T03:30:17.883Z",
            "description": "Onboarding service for data product",
            "hs_cost_of_goods_sold": "600.00",
            "hs_lastmodifieddate": "2019-12-07T16:50:06.678Z",
            "hs_recurring_billing_period": "12",
            "hs_sku": "191902",
            "name": "Implementation Service ",
            "price": "6000.00"
          },
          "updatedAt": "2019-12-07T16:50:06.678Z"
        }
      },
      "PublicObjectId": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "Paging": {
        "type": "object",
        "properties": {
          "next": {
            "$ref": "#/components/schemas/NextPage"
          },
          "prev": {
            "$ref": "#/components/schemas/PreviousPage"
          }
        }
      },
      "PublicObjectSearchRequest": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "after": {
            "type": "string"
          },
          "sorts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "properties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filterGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FilterGroup"
            }
          }
        }
      },
      "Error": {
        "required": [
          "category",
          "correlationId",
          "message"
        ],
        "type": "object",
        "properties": {
          "subCategory": {
            "type": "string",
            "description": "A specific category that contains more specific detail about the error"
          },
          "context": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Context about the error condition",
            "example": {
              "missingScopes": [
                "scope1",
                "scope2"
              ],
              "invalidPropertyName": [
                "propertyValue"
              ]
            }
          },
          "correlationId": {
            "type": "string",
            "description": "A unique identifier for the request. Include this value with any error reports or support tickets",
            "format": "uuid",
            "example": "aeb5f871-7f07-4993-9211-075dc63e7cbf"
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of link names to associated URIs containing documentation about the error or recommended remediation steps",
            "example": {
              "knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
            }
          },
          "message": {
            "type": "string",
            "description": "A human readable message describing the error along with remediation steps where appropriate",
            "example": "Invalid input (details will vary based on the error)"
          },
          "category": {
            "type": "string",
            "description": "The error category",
            "example": "VALIDATION_ERROR"
          },
          "errors": {
            "type": "array",
            "description": "further information about the error",
            "items": {
              "$ref": "#/components/schemas/ErrorDetail"
            }
          }
        },
        "example": {
          "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"
          }
        }
      },
      "SimplePublicObjectBatchInputUpsert": {
        "required": [
          "id",
          "properties"
        ],
        "type": "object",
        "properties": {
          "idProperty": {
            "type": "string",
            "description": "The name of a property whose values are unique for this object"
          },
          "objectWriteTraceId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "BatchResponseSimplePublicObjectWithErrors": {
        "required": [
          "completedAt",
          "results",
          "startedAt",
          "status"
        ],
        "type": "object",
        "properties": {
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "numErrors": {
            "type": "integer",
            "format": "int32"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time"
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicObject"
            }
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StandardError"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "PROCESSING",
              "CANCELED",
              "COMPLETE"
            ]
          }
        }
      },
      "SimplePublicObjectInput": {
        "required": [
          "properties"
        ],
        "type": "object",
        "properties": {
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "example": {
              "property_date": "1572480000000",
              "property_radio": "option_1",
              "property_number": "17",
              "property_string": "value",
              "property_checkbox": "false",
              "property_dropdown": "choice_b",
              "property_multiple_checkboxes": "chocolate;strawberry"
            }
          }
        },
        "example": {
          "properties": {
            "name": "Implementation Service ",
            "price": "6000.00",
            "hs_sku": "191902",
            "description": "Onboarding service for data product",
            "hs_cost_of_goods_sold": "600.00",
            "hs_recurring_billing_period": "12"
          },
          "associations": [
            {
              "to": {
                "id": "101"
              },
              "types": [
                {
                  "associationCategory": "HUBSPOT_DEFINED",
                  "associationTypeId": 2
                }
              ]
            }
          ]
        }
      },
      "CollectionResponseSimplePublicObjectWithAssociationsForwardPaging": {
        "required": [
          "results"
        ],
        "type": "object",
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/ForwardPaging"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicObjectWithAssociations"
            }
          }
        }
      },
      "AssociationSpec": {
        "required": [
          "associationCategory",
          "associationTypeId"
        ],
        "type": "object",
        "properties": {
          "associationCategory": {
            "type": "string",
            "enum": [
              "HUBSPOT_DEFINED",
              "USER_DEFINED",
              "INTEGRATOR_DEFINED"
            ]
          },
          "associationTypeId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "SimplePublicObjectWithAssociations": {
        "required": [
          "createdAt",
          "id",
          "properties",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "associations": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/CollectionResponseAssociatedId"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "archived": {
            "type": "boolean"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "propertiesWithHistory": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ValueWithTimestamp"
              }
            }
          },
          "id": {
            "type": "string"
          },
          "objectWriteTraceId": {
            "type": "string"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            }
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "example": {
          "properties": {
            "createdate": "2019-10-30T03:30:17.883Z",
            "description": "Onboarding service for data product",
            "hs_cost_of_goods_sold": "600.00",
            "hs_lastmodifieddate": "2019-12-07T16:50:06.678Z",
            "hs_recurring_billing_period": "12",
            "hs_sku": "191902",
            "name": "Implementation Service ",
            "price": "6000.00"
          }
        }
      },
      "Filter": {
        "required": [
          "operator",
          "propertyName"
        ],
        "type": "object",
        "properties": {
          "highValue": {
            "type": "string"
          },
          "propertyName": {
            "type": "string"
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "value": {
            "type": "string"
          },
          "operator": {
            "type": "string",
            "description": "null",
            "enum": [
              "EQ",
              "NEQ",
              "LT",
              "LTE",
              "GT",
              "GTE",
              "BETWEEN",
              "IN",
              "NOT_IN",
              "HAS_PROPERTY",
              "NOT_HAS_PROPERTY",
              "CONTAINS_TOKEN",
              "NOT_CONTAINS_TOKEN"
            ]
          }
        }
      },
      "BatchInputSimplePublicObjectBatchInput": {
        "required": [
          "inputs"
        ],
        "type": "object",
        "properties": {
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicObjectBatchInput"
            }
          }
        }
      },
      "PreviousPage": {
        "required": [
          "before"
        ],
        "type": "object",
        "properties": {
          "before": {
            "type": "string"
          },
          "link": {
            "type": "string"
          }
        }
      },
      "SimplePublicUpsertObject": {
        "required": [
          "createdAt",
          "id",
          "new",
          "properties",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "archived": {
            "type": "boolean"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "new": {
            "type": "boolean"
          },
          "propertiesWithHistory": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ValueWithTimestamp"
              }
            }
          },
          "id": {
            "type": "string"
          },
          "objectWriteTraceId": {
            "type": "string"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SimplePublicObjectBatchInput": {
        "required": [
          "id",
          "properties"
        ],
        "type": "object",
        "properties": {
          "idProperty": {
            "type": "string",
            "description": "The name of a property whose values are unique for this object",
            "example": "my_unique_property_name"
          },
          "objectWriteTraceId": {
            "type": "string"
          },
          "id": {
            "type": "string",
            "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "example": {
          "id": "1",
          "properties": {
            "name": "Implementation Service ",
            "price": "6000.00",
            "hs_sku": "191902",
            "description": "Onboarding service for data product",
            "hs_cost_of_goods_sold": "600.00",
            "hs_recurring_billing_period": "12"
          }
        }
      },
      "SimplePublicObjectBatchInputForCreate": {
        "required": [
          "properties"
        ],
        "type": "object",
        "properties": {
          "associations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicAssociationsForObject"
            }
          },
          "objectWriteTraceId": {
            "type": "string"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "AssociatedId": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "NextPage": {
        "required": [
          "after"
        ],
        "type": "object",
        "properties": {
          "link": {
            "type": "string",
            "example": "?after=NTI1Cg%3D%3D"
          },
          "after": {
            "type": "string",
            "example": "NTI1Cg%3D%3D"
          }
        },
        "example": {
          "after": "NTI1Cg%3D%3D",
          "link": "?after=NTI1Cg%3D%3D"
        }
      },
      "SimplePublicObjectInputForCreate": {
        "required": [
          "properties"
        ],
        "type": "object",
        "properties": {
          "associations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicAssociationsForObject"
            }
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "example": {
          "properties": {
            "name": "Implementation Service ",
            "price": "6000.00",
            "hs_sku": "191902",
            "description": "Onboarding service for data product",
            "hs_cost_of_goods_sold": "600.00",
            "hs_recurring_billing_period": "12"
          },
          "associations": [
            {
              "to": {
                "id": "101"
              },
              "types": [
                {
                  "associationCategory": "HUBSPOT_DEFINED",
                  "associationTypeId": 2
                }
              ]
            }
          ]
        }
      },
      "BatchInputSimplePublicObjectBatchInputForCreate": {
        "required": [
          "inputs"
        ],
        "type": "object",
        "properties": {
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePublicObjectBatchInputForCreate"
            }
          }
        }
      }
    },
    "responses": {
      "Error": {
        "description": "An error occurred.",
        "content": {
          "*/*": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://app.hubspot.com/oauth/authorize",
            "tokenUrl": "https://api.hubapi.com/oauth/v1/token",
            "scopes": {
              "crm.objects.deals.read": " ",
              "crm.objects.subscriptions.read": "Read Commerce Subscriptions",
              "crm.objects.services.read": "Read services",
              "crm.objects.orders.read": "Read Orders",
              "crm.objects.listings.write": "Write listings",
              "crm.objects.custom.read": "View custom object records",
              "crm.objects.companies.write": " ",
              "crm.objects.custom.sensitive.write.v2": "Change custom object records (sensitive)",
              "crm.objects.custom.highly_sensitive.write.v2": "Change custom object records (highly-sensitive)",
              "crm.objects.companies.read": " ",
              "crm.objects.appointments.sensitive.read.v2": "Read appointments (sensitive)",
              "crm.objects.contacts.highly_sensitive.read.v2": "View contact records (highly-sensitive)",
              "crm.objects.companies.sensitive.read.v2": " ",
              "media_bridge.read": "Read media and media events",
              "crm.objects.deals.highly_sensitive.read.v2": "View deal records (highly-sensitive)",
              "crm.objects.contacts.highly_sensitive.write.v2": "Change contact records (highly-sensitive)",
              "crm.objects.companies.highly_sensitive.read.v2": "View company records (highly-sensitive)",
              "crm.objects.commercepayments.write": "Write commerce payments",
              "crm.objects.invoices.write": "Write invoices",
              "crm.objects.contacts.sensitive.write.v2": " ",
              "crm.objects.users.write": "Write User CRM objects",
              "crm.objects.custom.sensitive.read.v2": "View custom object records (sensitive)",
              "crm.objects.users.read": "Read User CRM objects",
              "crm.objects.partner-services.read": "View Partner Service CRM objects",
              "crm.objects.orders.write": "Write orders",
              "crm.objects.partner-services.write": "Modify Partner Service CRM objects",
              "crm.objects.appointments.write": "Write appointments",
              "crm.objects.carts.write": "Write cart",
              "tickets": "Read and write tickets",
              "crm.objects.commercepayments.read": "Read the COMMERCE_PAYMENT object.",
              "crm.objects.products.write": "Write to my Product Library",
              "crm.objects.services.write": "Write services",
              "crm.objects.subscriptions.write": "Write to Commerce Subscriptions",
              "crm.objects.deals.sensitive.write.v2": " ",
              "crm.objects.contacts.read": " ",
              "crm.objects.appointments.sensitive.write.v2": "Write appointments (sensitive)",
              "crm.objects.invoices.read": "Read invoices objects",
              "tickets.sensitive.v2": "Tickets (sensitive)",
              "crm.objects.custom.write": "Change custom object records",
              "crm.objects.deals.write": " ",
              "e-commerce": "e-commerce",
              "crm.objects.appointments.read": "Read appointments",
              "crm.objects.companies.sensitive.write.v2": " ",
              "crm.objects.deals.highly_sensitive.write.v2": "Change deal records (highly-sensitive)",
              "crm.objects.custom.highly_sensitive.read.v2": "View custom object records (highly-sensitive)",
              "crm.objects.companies.highly_sensitive.write.v2": "Change company records (highly-sensitive)",
              "crm.objects.goals.write": "Write goals",
              "crm.objects.line_items.write": "Line Items",
              "crm.objects.contacts.write": " ",
              "crm.objects.goals.read": "Read goals",
              "crm.objects.partner-clients.write": "Modify Partner Client CRM objects",
              "crm.objects.line_items.read": "Line Items",
              "crm.objects.deals.sensitive.read.v2": " ",
              "tickets.highly_sensitive.v2": "Tickets (highly-sensitive)",
              "crm.objects.quotes.write": "Quotes",
              "crm.objects.leads.read": "Read lead objects",
              "crm.objects.leads.write": "Modify lead objects",
              "crm.objects.carts.read": "Read carts",
              "crm.objects.quotes.read": "Quotes",
              "crm.objects.courses.write": "Write courses",
              "crm.objects.partner-clients.read": "View Partner Client CRM objects",
              "crm.objects.courses.read": "Read courses",
              "crm.objects.listings.read": "Read listings",
              "crm.objects.contacts.sensitive.read.v2": " ",
              "crm.objects.products.read": "Read from my Product Library"
            }
          }
        }
      },
      "private_apps_legacy": {
        "type": "apiKey",
        "name": "private-app-legacy",
        "in": "header"
      },
      "private_apps": {
        "type": "apiKey",
        "name": "private-app",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "private_apps_legacy": []
    }
  ],
  "tags": [
    {
      "name": "Batch"
    },
    {
      "name": "Basic"
    },
    {
      "name": "Search"
    }
  ],
  "x-hubspot-available-client-libraries": [
    "PHP",
    "Node",
    "Ruby",
    "Python"
  ],
  "x-hubspot-product-tier-requirements": {
    "marketing": "FREE",
    "sales": "FREE",
    "service": "FREE",
    "cms": "FREE"
  }
}