{ "openapi" : "3.0.1", "info" : { "title" : "Contracts", "description" : "CRM objects such as companies, contacts, deals, line items, products, tickets, and quotes are standard objects in HubSpot’s CRM. These core building blocks support custom properties, store critical information, and play a central role in the HubSpot application.\n\n## Supported Object Types\n\nThis API provides access to collections of CRM objects, which return a map of property names to values. Each object type has its own set of default properties, which can be found by exploring the [CRM Object Properties API](https://developers.hubspot.com/docs/methods/crm-properties/crm-properties-overview).\n\n|Object Type |Properties returned by default |\n|--|--|\n| `companies` | `name`, `domain` |\n| `contacts` | `firstname`, `lastname`, `email` |\n| `deals` | `dealname`, `amount`, `closedate`, `pipeline`, `dealstage` |\n| `products` | `name`, `description`, `price` |\n| `tickets` | `content`, `hs_pipeline`, `hs_pipeline_stage`, `hs_ticket_category`, `hs_ticket_priority`, `subject` |\n\nFind a list of all properties for an object type using the [CRM Object Properties](https://developers.hubspot.com/docs/methods/crm-properties/get-properties) API. e.g. `GET https://api.hubapi.com/properties/v2/companies/properties`. Change the properties returned in the response using the `properties` array in the request body.", "version" : "v3", "x-hubspot-product-tier-requirements" : { "marketing" : "FREE", "sales" : "FREE", "service" : "FREE", "cms" : "FREE", "commerce" : "FREE", "crmHub" : "FREE", "dataHub" : "FREE" } }, "servers" : [ { "url" : "https://api.hubapi.com" } ], "tags" : [ { "name" : "Basic" }, { "name" : "Batch" } ], "paths" : { "/crm/v3/objects/contracts" : { "get" : { "tags" : [ "Basic" ], "summary" : "List", "description" : "Read a page of contracts. Control what is returned via the `properties` query param.", "operationId" : "get-/crm/v3/objects/contracts", "parameters" : [ { "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", "example" : null } }, { "name" : "archived", "in" : "query", "description" : "Whether to return only results that have been archived.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "boolean", "example" : null, "default" : false } }, { "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", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "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", "example" : null, "default" : 10 } }, { "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", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "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 contracts that can be read by a single request.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CollectionResponseSimplePublicObjectWithAssociationsForwardPaging" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "crm.objects.contracts.read" ] } ], "x-hubspot-user-level-auth" : { "internalOnly" : false } } }, "/crm/v3/objects/contracts/batch/read" : { "post" : { "tags" : [ "Batch" ], "summary" : "Read a batch of contracts 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/contracts/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", "example" : null, "default" : false } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchReadInputSimplePublicObjectId" }, "example" : null } }, "required" : true }, "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseSimplePublicObject" }, "example" : null } } }, "207" : { "description" : "multiple statuses", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/BatchResponseSimplePublicObjectWithErrors" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "crm.objects.contracts.read" ] } ], "x-hubspot-user-level-auth" : { "internalOnly" : false } } }, "/crm/v3/objects/contracts/{contractId}" : { "get" : { "tags" : [ "Basic" ], "summary" : "Read", "description" : "Read an Object identified by `{contractId}`. `{contractId}` 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/contracts/{contractId}", "parameters" : [ { "name" : "contractId", "in" : "path", "required" : true, "schema" : { "pattern" : ".+", "type" : "string", "example" : null } }, { "name" : "archived", "in" : "query", "description" : "Whether to return only results that have been archived.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "boolean", "example" : null, "default" : false } }, { "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", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "idProperty", "in" : "query", "description" : "The name of a property whose values are unique for this object type", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "example" : null } }, { "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", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "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", "example" : null, "items" : { "type" : "string", "example" : null } } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/SimplePublicObjectWithAssociations" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "crm.objects.contracts.read" ] } ], "x-hubspot-user-level-auth" : { "internalOnly" : false } } } }, "components" : { "schemas" : { "AssociatedId" : { "required" : [ "id", "type" ], "type" : "object", "properties" : { "id" : { "type" : "string", "description" : "The ID for the association type.", "example" : null }, "type" : { "type" : "string", "description" : "The type of associations.", "example" : "deal_to_contact" } }, "description" : "Contains the id and type of an association", "example" : null }, "BatchReadInputSimplePublicObjectId" : { "required" : [ "inputs", "properties", "propertiesWithHistory" ], "type" : "object", "properties" : { "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.", "example" : null }, "inputs" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/SimplePublicObjectId" } }, "properties" : { "type" : "array", "description" : "Key-value pairs for setting properties for the new object.", "example" : null, "items" : { "type" : "string", "example" : null } }, "propertiesWithHistory" : { "type" : "array", "description" : "Key-value pairs for setting properties for the new object and their histories.", "example" : null, "items" : { "type" : "string", "example" : null } } }, "description" : "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", "example" : null }, "BatchResponseSimplePublicObject" : { "required" : [ "completedAt", "results", "startedAt", "status" ], "type" : "object", "properties" : { "completedAt" : { "type" : "string", "description" : "The timestamp when the batch processing was completed, in ISO 8601 format.", "format" : "date-time", "example" : null }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "An object containing relevant links related to the batch request.", "example" : null }, "requestedAt" : { "type" : "string", "description" : "The timestamp when the batch request was initially made, in ISO 8601 format.", "format" : "date-time", "example" : null }, "results" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/SimplePublicObject" } }, "startedAt" : { "type" : "string", "description" : "The timestamp when the batch processing began, in ISO 8601 format.", "format" : "date-time", "example" : null }, "status" : { "type" : "string", "description" : "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", "example" : null, "enum" : [ "CANCELED", "COMPLETE", "PENDING", "PROCESSING" ] } }, "description" : "A public object batch response object", "example" : null }, "BatchResponseSimplePublicObjectWithErrors" : { "required" : [ "completedAt", "results", "startedAt", "status" ], "type" : "object", "properties" : { "completedAt" : { "type" : "string", "description" : "The timestamp when the batch process was completed, in ISO 8601 format.", "format" : "date-time", "example" : null }, "errors" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/StandardError" } }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "An object containing relevant links related to the batch request.", "example" : null }, "numErrors" : { "type" : "integer", "description" : "The number of errors encountered during the batch process.", "format" : "int32", "example" : null }, "requestedAt" : { "type" : "string", "description" : "The timestamp when the batch process was initiated, in ISO 8601 format.", "format" : "date-time", "example" : null }, "results" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/SimplePublicObject" } }, "startedAt" : { "type" : "string", "description" : "The timestamp when the batch process began execution, in ISO 8601 format.", "format" : "date-time", "example" : null }, "status" : { "type" : "string", "description" : "The status of the batch processing request - \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", "example" : null, "enum" : [ "CANCELED", "COMPLETE", "PENDING", "PROCESSING" ] } }, "description" : "Represents the result of a batch operation on CRM objects, including the processing status, batch results, timestamps, and a list of any errors encountered during the operation.", "example" : null }, "CollectionResponseAssociatedId" : { "required" : [ "results" ], "type" : "object", "properties" : { "paging" : { "$ref" : "#/components/schemas/Paging" }, "results" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/AssociatedId" } } }, "example" : null }, "CollectionResponseSimplePublicObjectWithAssociationsForwardPaging" : { "required" : [ "results" ], "type" : "object", "properties" : { "paging" : { "$ref" : "#/components/schemas/ForwardPaging" }, "results" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/SimplePublicObjectWithAssociations" } } }, "example" : null }, "Error" : { "required" : [ "category", "correlationId", "message" ], "type" : "object", "properties" : { "category" : { "type" : "string", "description" : "The error category", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "Context about the error condition", "example" : "{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}" }, "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" }, "errors" : { "type" : "array", "description" : "further information about the error", "example" : null, "items" : { "$ref" : "#/components/schemas/ErrorDetail" } }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "A map of link names to associated URIs containing documentation about the error or recommended remediation steps", "example" : null }, "message" : { "type" : "string", "description" : "A human readable message describing the error along with remediation steps where appropriate", "example" : "An error occurred" }, "subCategory" : { "type" : "string", "description" : "A specific category that contains more specific detail about the error", "example" : null } }, "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" } } }, "ErrorDetail" : { "required" : [ "message" ], "type" : "object", "properties" : { "code" : { "type" : "string", "description" : "The status code associated with the error detail", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "Context about the error condition", "example" : "{missingScopes=[scope1, scope2]}" }, "in" : { "type" : "string", "description" : "The name of the field or parameter in which the error was found.", "example" : null }, "message" : { "type" : "string", "description" : "A human readable message describing the error along with remediation steps where appropriate", "example" : null }, "subCategory" : { "type" : "string", "description" : "A specific category that contains more specific detail about the error", "example" : null } }, "example" : null }, "ForwardPaging" : { "type" : "object", "properties" : { "next" : { "$ref" : "#/components/schemas/NextPage" } }, "example" : null }, "NextPage" : { "required" : [ "after" ], "type" : "object", "properties" : { "after" : { "type" : "string", "description" : "A paging cursor token for retrieving subsequent pages.", "example" : null }, "link" : { "type" : "string", "description" : "A URL that can be used to retrieve the next page results.", "example" : null } }, "description" : "Specifies the paging information needed to retrieve the next set of results in a paginated API response", "example" : { "after" : "NTI1Cg%3D%3D", "link" : "?after=NTI1Cg%3D%3D" } }, "Paging" : { "type" : "object", "properties" : { "next" : { "$ref" : "#/components/schemas/NextPage" }, "prev" : { "$ref" : "#/components/schemas/PreviousPage" } }, "example" : null }, "PreviousPage" : { "required" : [ "before" ], "type" : "object", "properties" : { "before" : { "type" : "string", "description" : "A paging cursor token for retrieving previous pages.", "example" : null }, "link" : { "type" : "string", "description" : "A URL that can be used to retrieve the previous pages' results.", "example" : null } }, "description" : "specifies the paging information needed to retrieve the previous set of results in a paginated API response", "example" : null }, "PublicObjectWarning" : { "required" : [ "category", "context", "message" ], "type" : "object", "properties" : { "category" : { "type" : "string", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "example" : null }, "message" : { "type" : "string", "example" : null } }, "example" : null }, "SimplePublicObject" : { "required" : [ "archived", "createdAt", "id", "properties", "updatedAt" ], "type" : "object", "properties" : { "archived" : { "type" : "boolean", "description" : "Whether the object is archived.", "example" : null }, "archivedAt" : { "type" : "string", "description" : "The timestamp when the object was archived, in ISO 8601 format.", "format" : "date-time", "example" : null }, "createdAt" : { "type" : "string", "description" : "The timestamp when the object was created, in ISO 8601 format.", "format" : "date-time", "example" : null }, "id" : { "type" : "string", "description" : "The unique ID of the object.", "example" : null }, "objectWriteTraceId" : { "type" : "string", "description" : "An identifier used for tracing the write request for the object.", "example" : null }, "properties" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "Key-value pairs representing the properties of the object.", "example" : null }, "propertiesWithHistory" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/ValueWithTimestamp" } }, "description" : "Key-value pairs representing the properties of the object along with their history.", "example" : null }, "updatedAt" : { "type" : "string", "description" : "The timestamp when the object was last updated, in ISO 8601 format.", "format" : "date-time", "example" : null }, "url" : { "type" : "string", "description" : "The URL associated with the object.", "example" : null }, "warnings" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/PublicObjectWarning" } } }, "description" : "A simple public object.", "example" : { "archived" : false, "createdAt" : "2019-10-30T03:30:17.883Z", "id" : "512", "properties" : { "property_checkbox" : "false", "property_date" : "1572480000000", "property_dropdown" : "choice_b", "property_multiple_checkboxes" : "chocolate;strawberry", "property_number" : "17", "property_radio" : "option_1", "property_string" : "value" }, "updatedAt" : "2019-12-07T16:50:06.678Z" } }, "SimplePublicObjectId" : { "required" : [ "id" ], "type" : "object", "properties" : { "id" : { "type" : "string", "description" : "The unique ID of the object.", "example" : "430001" } }, "description" : "Contains the Id of a Public Object", "example" : null }, "SimplePublicObjectWithAssociations" : { "required" : [ "archived", "createdAt", "id", "properties", "updatedAt" ], "type" : "object", "properties" : { "archived" : { "type" : "boolean", "description" : "Whether the object is archived.", "example" : null }, "archivedAt" : { "type" : "string", "description" : "The timestamp when the object was archived, in ISO 8601 format.", "format" : "date-time", "example" : null }, "associations" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/CollectionResponseAssociatedId" }, "description" : "A list defining relationships with other objects.", "example" : null }, "createdAt" : { "type" : "string", "description" : "The timestamp when the object was created, in ISO 8601 format.", "format" : "date-time", "example" : null }, "id" : { "type" : "string", "description" : "The unique ID of the object.", "example" : null }, "objectWriteTraceId" : { "type" : "string", "description" : "An identifier used for tracing the creation or update request of the object.", "example" : null }, "properties" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "Key value pairs representing the properties of the object.", "example" : null }, "propertiesWithHistory" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/ValueWithTimestamp" } }, "description" : "Key-value pairs representing the properties of the object along with their history.", "example" : null }, "updatedAt" : { "type" : "string", "description" : "The timestamp when the object was last updated, in ISO 8601 format.", "format" : "date-time", "example" : null }, "url" : { "type" : "string", "description" : "The URL on the API that provide direct navigation to the corresponding UI pages for the connectors.", "example" : null }, "warnings" : { "type" : "array", "example" : null, "items" : { "$ref" : "#/components/schemas/PublicObjectWarning" } } }, "description" : "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type.", "example" : null }, "StandardError" : { "required" : [ "category", "context", "errors", "links", "message", "status" ], "type" : "object", "properties" : { "category" : { "type" : "string", "description" : "The main category of the error.", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "Additional context-specific information related to the error.", "example" : null }, "errors" : { "type" : "array", "description" : "The detailed error objects.", "example" : null, "items" : { "$ref" : "#/components/schemas/ErrorDetail" } }, "id" : { "type" : "string", "description" : "A unique ID for the error instance.", "example" : null }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "URLs linking to documentation or resources associated with the error.", "example" : null }, "message" : { "type" : "string", "description" : "A human-readable string describing the error and possible remediation steps.", "example" : null }, "status" : { "type" : "string", "description" : "The HTTP status code associated with the error.", "example" : null }, "subCategory" : { "type" : "object", "properties" : { }, "description" : "A more specific error category within each main category.", "example" : null } }, "description" : "Represents a standard error response in the HubSpot API, providing detailed information about an error that occurred during an API request.", "example" : null }, "ValueWithTimestamp" : { "required" : [ "sourceType", "timestamp", "value" ], "type" : "object", "properties" : { "sourceId" : { "type" : "string", "description" : "The unique ID of the property.", "example" : null }, "sourceLabel" : { "type" : "string", "description" : "A human-readable label.", "example" : null }, "sourceType" : { "type" : "string", "description" : "The property type.", "example" : null }, "timestamp" : { "type" : "string", "description" : "The timestamp when the property was updated, in ISO 8601 format.", "format" : "date-time", "example" : null }, "updatedByUserId" : { "type" : "integer", "description" : "The ID of the user who last updated the property.", "format" : "int32", "example" : null }, "value" : { "type" : "string", "description" : "The property value.", "example" : null } }, "description" : "Property model that includes timestamp.", "example" : null } }, "responses" : { "Error" : { "description" : "An error occurred.", "content" : { "*/*" : { "schema" : { "$ref" : "#/components/schemas/Error" }, "example" : null } } } }, "securitySchemes" : { "developer_hapikey" : { "type" : "apiKey", "name" : "hapikey", "in" : "query" }, "oauth2" : { "type" : "oauth2", "flows" : { "authorizationCode" : { "authorizationUrl" : "https://app.hubspot.com/oauth/authorize", "tokenUrl" : "https://api.hubapi.com/oauth/v1/token", "scopes" : { "crm.objects.commercepayments.read" : "", "crm.objects.contracts.read" : "", "oauth" : "" } } } }, "private_apps" : { "type" : "apiKey", "name" : "private-app", "in" : "header" }, "private_apps_legacy" : { "type" : "apiKey", "name" : "private-app-legacy", "in" : "header" } } }, "x-hubspot-product-tier-requirements" : { "marketing" : "FREE", "sales" : "FREE", "service" : "FREE", "cms" : "FREE", "commerce" : "FREE", "crmHub" : "FREE", "dataHub" : "FREE" } }