HubSpot CRM

CRM and marketing platform

developers.hubspot.com/docs/api ↗
Version
v3
OpenAPI
3.0.1
Endpoints
172
Schemas
104
Updated
3 days ago
Crm crm marketing sales
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.hubapi.com

Authentication

oauth2 oauth2 apiKey apiKey apiKey

Endpoints

Clear filters

Basic 9 endpoints

POST /crm/v3/objects/companies

Create a company with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard companies is provided.

operationId: Basic_createCompanyObject

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/objects/companies
POST /crm/v3/objects/contacts

Create a contact with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard contacts is provided.

operationId: Basic_createContactObject

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/objects/contacts
POST /crm/v3/objects/deals

Create a deal with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard deals is provided.

operationId: Basic_createDealObject

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/objects/deals
POST /crm/v3/objects/feedback_submissions

Create a feedback submission with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard feedback submissions is provided.

operationId: Basic_createFeedbackSubmission

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/objects/feedback_submissions
POST /crm/v3/objects/line_items

Create a line item with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard line items is provided.

operationId: Basic_createLineItemObject

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/objects/line_items
POST /crm/v3/objects/products

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: Basic_createProductObject

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/objects/products
POST /crm/v3/objects/quotes

Create a quote with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard quotes is provided.

operationId: Basic_createQuoteObject

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/objects/quotes
POST /crm/v3/objects/tickets

Create a ticket with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard tickets is provided.

operationId: Basic_createTicketObject

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/objects/tickets
POST /crm/v3/objects/{objectType}

Create a CRM object with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard objects is provided.

operationId: Basic_createCRMObject

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/objects/{objectType}

Batch 39 endpoints

POST /crm/v3/objects/companies/batch/archive
operationId: Batch_archiveCompaniesByIdBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/companies/batch/archive
POST /crm/v3/objects/companies/batch/create
operationId: Batch_createCompaniesBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
207 multiple statuses
POST /crm/v3/objects/companies/batch/create
POST /crm/v3/objects/companies/batch/read
operationId: Batch_readCompaniesByProperties

Parameters

Name In Required Type Description
archived query optional boolean Whether to return only results that have been archived.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchReadInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/companies/batch/read
POST /crm/v3/objects/companies/batch/update
operationId: Batch_updateCompaniesBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/companies/batch/update
POST /crm/v3/objects/contacts/batch/archive
operationId: Batch_archiveContactsByIdBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/contacts/batch/archive
POST /crm/v3/objects/contacts/batch/create
operationId: Batch_createContacts

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
207 multiple statuses
POST /crm/v3/objects/contacts/batch/create
POST /crm/v3/objects/contacts/batch/read
operationId: Batch_readContactsByProperties

Parameters

Name In Required Type Description
archived query optional boolean Whether to return only results that have been archived.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchReadInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/contacts/batch/read
POST /crm/v3/objects/contacts/batch/update
operationId: Batch_updateContactsBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/contacts/batch/update
POST /crm/v3/objects/deals/batch/archive
operationId: Batch_archiveDealsByIds

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/deals/batch/archive
POST /crm/v3/objects/deals/batch/create
operationId: Batch_createDealsObject

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
207 multiple statuses
POST /crm/v3/objects/deals/batch/create
POST /crm/v3/objects/deals/batch/read
operationId: Batch_readDealsByInternalIdOrPropertyValues

Parameters

Name In Required Type Description
archived query optional boolean Whether to return only results that have been archived.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchReadInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/deals/batch/read
POST /crm/v3/objects/deals/batch/update
operationId: Batch_updateDealsObjects

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/deals/batch/update
POST /crm/v3/objects/feedback_submissions/batch/archive
operationId: Batch_archiveFeedbackSubmissionsById

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/feedback_submissions/batch/archive
POST /crm/v3/objects/feedback_submissions/batch/create
operationId: Batch_createFeedbackSubmissions

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
207 multiple statuses
POST /crm/v3/objects/feedback_submissions/batch/create
POST /crm/v3/objects/feedback_submissions/batch/read
operationId: Batch_readFeedbackSubmissions

Parameters

Name In Required Type Description
archived query optional boolean Whether to return only results that have been archived.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchReadInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/feedback_submissions/batch/read
POST /crm/v3/objects/feedback_submissions/batch/update
operationId: Batch_updateFeedbackSubmissions

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/feedback_submissions/batch/update
POST /crm/v3/objects/line_items/batch/archive
operationId: Batch_archiveLineItemsByIds

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/line_items/batch/archive
POST /crm/v3/objects/line_items/batch/create
operationId: Batch_lineItemsCreateBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
207 multiple statuses
POST /crm/v3/objects/line_items/batch/create
POST /crm/v3/objects/line_items/batch/read
operationId: Batch_readLineItems

Parameters

Name In Required Type Description
archived query optional boolean Whether to return only results that have been archived.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchReadInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/line_items/batch/read
POST /crm/v3/objects/line_items/batch/update
operationId: Batch_updateLineItems

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/line_items/batch/update
POST /crm/v3/objects/products/batch/archive
operationId: Batch_archiveProductsByIds

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/products/batch/archive
POST /crm/v3/objects/products/batch/create
operationId: Batch_createProductsBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
207 multiple statuses
POST /crm/v3/objects/products/batch/create
POST /crm/v3/objects/products/batch/read
operationId: Batch_readByProperties

Parameters

Name In Required Type Description
archived query optional boolean Whether to return only results that have been archived.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchReadInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/products/batch/read
POST /crm/v3/objects/products/batch/update
operationId: Batch_updateProductsBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/products/batch/update
POST /crm/v3/objects/quotes/batch/archive
operationId: Batch_archiveQuotesByIdBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/quotes/batch/archive
POST /crm/v3/objects/quotes/batch/create
operationId: Batch_createQuotesBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
207 multiple statuses
POST /crm/v3/objects/quotes/batch/create
POST /crm/v3/objects/quotes/batch/read
operationId: Batch_readQuotesByPropertyValues

Parameters

Name In Required Type Description
archived query optional boolean Whether to return only results that have been archived.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchReadInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/quotes/batch/read
POST /crm/v3/objects/quotes/batch/update
operationId: Batch_updateQuotesBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/quotes/batch/update
POST /crm/v3/objects/tickets/batch/archive
operationId: Batch_archiveTicketsById

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/tickets/batch/archive
POST /crm/v3/objects/tickets/batch/create
operationId: Batch_ticketCreationBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
207 multiple statuses
POST /crm/v3/objects/tickets/batch/create
POST /crm/v3/objects/tickets/batch/read
operationId: Batch_readTicketsByProperties

Parameters

Name In Required Type Description
archived query optional boolean Whether to return only results that have been archived.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchReadInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/tickets/batch/read
POST /crm/v3/objects/tickets/batch/update
operationId: Batch_updateTicketsBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/tickets/batch/update
POST /crm/v3/objects/{objectType}/batch/archive
operationId: Batch_archiveObjectsById

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/{objectType}/batch/archive
POST /crm/v3/objects/{objectType}/batch/create
operationId: Batch_createObjects

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectInputForCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
207 multiple statuses
POST /crm/v3/objects/{objectType}/batch/create
POST /crm/v3/objects/{objectType}/batch/read
operationId: Batch_readObjectsByInternalIdOrPropertyValues

Parameters

Name In Required Type Description
objectType path required string
archived query optional boolean Whether to return only results that have been archived.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchReadInputSimplePublicObjectId"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/{objectType}/batch/read
POST /crm/v3/objects/{objectType}/batch/update
operationId: Batch_updateObjectsByInternalIdOrPropertyValues

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputSimplePublicObjectBatchInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/objects/{objectType}/batch/update
POST /crm/v3/properties/{objectType}/batch/archive

Archive a provided list of properties. This method will return a 204 No Content response on success regardless of the initial state of the property (e.g. active, already archived, non-existent).

operationId: Batch_archiveProperties

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputPropertyName"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/properties/{objectType}/batch/archive
POST /crm/v3/properties/{objectType}/batch/create

Create a batch of properties using the same rules as when creating an individual property.

operationId: Batch_propertiesCreateBatch

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputPropertyCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
207 multiple statuses
POST /crm/v3/properties/{objectType}/batch/create
POST /crm/v3/properties/{objectType}/batch/read

Read a provided list of properties.

operationId: Batch_readProperties

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchReadInputPropertyName"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
207 multiple statuses
POST /crm/v3/properties/{objectType}/batch/read

Core 5 endpoints

POST /crm/v3/imports

Begins importing data from the specified file resources. This uploads the corresponding file and uses the import request object to convert rows in the files to objects.

operationId: Core_startImport

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/CoreStartImportRequest"
      }
    }
  }
}

Responses

default
200 successful operation
POST /crm/v3/imports
POST /crm/v3/imports/{importId}/cancel

This allows a developer to cancel an active import.

operationId: Core_cancelImport

Parameters

Name In Required Type Description
importId path required integer

Responses

default
200 successful operation
POST /crm/v3/imports/{importId}/cancel
POST /crm/v3/properties/{objectType}

Create and return a copy of a new property for the specified object type.

operationId: Core_createProperty

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PropertyCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/properties/{objectType}
POST /crm/v3/schemas

Define a new object schema, along with custom properties and associations. The entire object schema, including its object type ID, properties, and associations will be returned in the response.

operationId: Core_defineObjectSchema

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ObjectSchemaEgg"
      }
    }
  },
  "required": true,
  "description": "Object schema definition, including properties and associations."
}

Responses

default
201 successful operation
POST /crm/v3/schemas
POST /crm/v3/schemas/{objectType}/associations

Defines a new association between the primary schema's object type and other object types.

operationId: Core_createAssociation

Parameters

Name In Required Type Description
objectType path required string Fully qualified name or object type ID of your schema.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/AssociationDefinitionEgg"
      }
    }
  },
  "required": true,
  "description": "Attributes that define the association."
}

Responses

default
201 successful operation
POST /crm/v3/schemas/{objectType}/associations

Events 2 endpoints

POST /crm/v3/timeline/events

Creates an instance of a timeline event based on an event template. Once created, this event is immutable on the object timeline and cannot be modified. If the event template was configured to update object properties via `objectPropertyName`, this call will also attempt to updates those properties, or add them if they don't exist.

operationId: Events_createSingleEvent

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TimelineEvent"
      }
    }
  },
  "required": true,
  "description": "The timeline event definition."
}

Responses

default
201 successful operation
POST /crm/v3/timeline/events
POST /crm/v3/timeline/events/batch/create

Creates multiple instances of timeline events based on an event template. Once created, these event are immutable on the object timeline and cannot be modified. If the event template was configured to update object properties via `objectPropertyName`, this call will also attempt to updates those properties, or add them if they don't exist.

operationId: Events_createMultipleBatch

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/BatchInputTimelineEvent"
      }
    }
  },
  "required": true,
  "description": "The timeline event definition."
}

Responses

default
200
201 successful operation
207 multiple statuses
POST /crm/v3/timeline/events/batch/create

Gdpr 8 endpoints

POST /crm/v3/objects/companies/gdpr-delete

Permanently delete a contact and all associated content to follow GDPR. Use optional property 'idProperty' set to 'email' to identify contact by email address. If email address is not found, the email address will be added to a blocklist and prevent it from being used in the future.

operationId: Gdpr_permanentlyDeleteContact

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicGdprDeleteInput"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/companies/gdpr-delete
POST /crm/v3/objects/contacts/gdpr-delete

Permanently delete a contact and all associated content to follow GDPR. Use optional property 'idProperty' set to 'email' to identify contact by email address. If email address is not found, the email address will be added to a blocklist and prevent it from being used in the future.

operationId: Gdpr_permanentlyDeleteContact

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicGdprDeleteInput"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/contacts/gdpr-delete
POST /crm/v3/objects/deals/gdpr-delete

Permanently delete a contact and all associated content to follow GDPR. Use optional property 'idProperty' set to 'email' to identify contact by email address. If email address is not found, the email address will be added to a blocklist and prevent it from being used in the future.

operationId: Gdpr_permanentlyDeleteDeal

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicGdprDeleteInput"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/deals/gdpr-delete
POST /crm/v3/objects/feedback_submissions/gdpr-delete

Permanently delete a contact and all associated content to follow GDPR. Use optional property 'idProperty' set to 'email' to identify contact by email address. If email address is not found, the email address will be added to a blocklist and prevent it from being used in the future.

operationId: Gdpr_permanentlyDeleteContact

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicGdprDeleteInput"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/feedback_submissions/gdpr-delete
POST /crm/v3/objects/line_items/gdpr-delete

Permanently delete a contact and all associated content to follow GDPR. Use optional property 'idProperty' set to 'email' to identify contact by email address. If email address is not found, the email address will be added to a blocklist and prevent it from being used in the future.

operationId: Gdpr_deleteContactContent

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicGdprDeleteInput"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/line_items/gdpr-delete
POST /crm/v3/objects/products/gdpr-delete

Permanently delete a contact and all associated content to follow GDPR. Use optional property 'idProperty' set to 'email' to identify contact by email address. If email address is not found, the email address will be added to a blocklist and prevent it from being used in the future.

operationId: Gdpr_deleteContact

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicGdprDeleteInput"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/products/gdpr-delete
POST /crm/v3/objects/quotes/gdpr-delete

Permanently delete a contact and all associated content to follow GDPR. Use optional property 'idProperty' set to 'email' to identify contact by email address. If email address is not found, the email address will be added to a blocklist and prevent it from being used in the future.

operationId: Gdpr_permanentlyDeleteContact

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicGdprDeleteInput"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/quotes/gdpr-delete
POST /crm/v3/objects/tickets/gdpr-delete

Permanently delete a contact and all associated content to follow GDPR. Use optional property 'idProperty' set to 'email' to identify contact by email address. If email address is not found, the email address will be added to a blocklist and prevent it from being used in the future.

operationId: Gdpr_permanentlyDeleteContact

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicGdprDeleteInput"
      }
    }
  },
  "required": true
}

Responses

default
204 No content
POST /crm/v3/objects/tickets/gdpr-delete

Groups 1 endpoints

POST /crm/v3/properties/{objectType}/groups

Create and return a copy of a new property group.

operationId: Groups_createCopy

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PropertyGroupCreate"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/properties/{objectType}/groups

Pipeline stages 1 endpoints

POST /crm/v3/pipelines/{objectType}/{pipelineId}/stages

Create a new stage associated with the pipeline identified by `{pipelineId}`. The entire stage object, including its unique ID, will be returned in the response.

operationId: PipelineStages_createStageObject

Parameters

Name In Required Type Description
objectType path required string
pipelineId path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PipelineStageInput"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/pipelines/{objectType}/{pipelineId}/stages

Pipelines 1 endpoints

POST /crm/v3/pipelines/{objectType}

Create a new pipeline with the provided property values. The entire pipeline object, including its unique ID, will be returned in the response.

operationId: Pipelines_createNewPipelineObject

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PipelineInput"
      }
    }
  },
  "required": true
}

Responses

default
201 successful operation
POST /crm/v3/pipelines/{objectType}

Public object 9 endpoints

POST /crm/v3/objects/companies/merge
operationId: PublicObject_mergeCompaniesSameType

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicMergeInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
POST /crm/v3/objects/companies/merge
POST /crm/v3/objects/contacts/merge
operationId: PublicObject_mergeContactsSameType

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicMergeInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
POST /crm/v3/objects/contacts/merge
POST /crm/v3/objects/deals/merge
operationId: PublicObject_mergeDealsSameType

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicMergeInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
POST /crm/v3/objects/deals/merge
POST /crm/v3/objects/feedback_submissions/merge
operationId: PublicObject_mergeFeedbackSubmissions

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicMergeInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
POST /crm/v3/objects/feedback_submissions/merge
POST /crm/v3/objects/line_items/merge
operationId: PublicObject_mergeLineItemsSameType

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicMergeInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
POST /crm/v3/objects/line_items/merge
POST /crm/v3/objects/products/merge
operationId: PublicObject_mergeProductsSameType

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicMergeInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
POST /crm/v3/objects/products/merge
POST /crm/v3/objects/quotes/merge
operationId: PublicObject_mergeTwoQuotesSameType

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicMergeInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
POST /crm/v3/objects/quotes/merge
POST /crm/v3/objects/tickets/merge
operationId: PublicObject_mergeTicketsSameType

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicMergeInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
POST /crm/v3/objects/tickets/merge
POST /crm/v3/objects/{objectType}/merge
operationId: PublicObject_mergeObjectsWithType

Parameters

Name In Required Type Description
objectType path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PublicMergeInput"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
POST /crm/v3/objects/{objectType}/merge

Recording settings 1 endpoints

POST /crm/v3/extensions/calling/{appId}/settings/recording
operationId: RecordingSettings_setCallRecording

Parameters

Name In Required Type Description
appId path required integer

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/RecordingSettingsRequest"
      }
    }
  },
  "required": true
}

Responses

default
200 successful operation
POST /crm/v3/extensions/calling/{appId}/settings/recording

Settings 1 endpoints

POST /crm/v3/extensions/calling/{appId}/settings

Used to set the menu label, target iframe URL, and dimensions for your calling extension.

operationId: Settings_configureCallingExtension

Parameters

Name In Required Type Description
appId path required integer The ID of the target app.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SettingsRequest"
      }
    }
  },
  "required": true,
  "description": "Settings state to create with."
}

Responses

default
200 successful operation
POST /crm/v3/extensions/calling/{appId}/settings

Templates 1 endpoints

POST /crm/v3/timeline/{appId}/event-templates

Event templates define the general structure for a custom timeline event. This includes formatted copy for its heading and details, as well as any custom property definitions. The event could be something like viewing a video, registering for a webinar, or filling out a survey. A single app can define multiple event templates. Event templates will be created for contacts by default, but they can be created for companies, tickets, and deals as well. Each event template contains its own set of tokens and `Markdown` templates. These tokens can be associated with any CRM object properties via the `objectPropertyName` field to fully build out CRM objects. You must create an event template before you can create events.

operationId: Templates_createEventTemplateForApp

Parameters

Name In Required Type Description
appId path required integer The ID of the target app.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TimelineEventTemplateCreateRequest"
      }
    }
  },
  "required": true,
  "description": "The new event template definition."
}

Responses

default
201 successful operation
POST /crm/v3/timeline/{appId}/event-templates

Tokens 1 endpoints

POST /crm/v3/timeline/{appId}/event-templates/{eventTemplateId}/tokens

Once you've defined an event template, it's likely that you'll want to define tokens for it as well. You can do this on the event template itself or update individual tokens here. Event type tokens allow you to attach custom data to events displayed in a timeline or used for list segmentation. You can also use `objectPropertyName` to associate any CRM object properties. This will allow you to fully build out CRM objects. Token names should be unique across the template.

operationId: Tokens_addToEventTemplate

Parameters

Name In Required Type Description
eventTemplateId path required string The event template ID.
appId path required integer The ID of the target app.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TimelineEventTemplateToken"
      }
    }
  },
  "required": true,
  "description": "The new token definition."
}

Responses

default
200 successful operation
POST /crm/v3/timeline/{appId}/event-templates/{eventTemplateId}/tokens

Schemas

object ActionResponse
{
  "type": "object",
  "required": [
    "completedAt",
    "startedAt",
    "status"
  ],
  "properties": {
    "links": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "status": {
      "enum": [
        "PENDING",
        "PROCESSING",
        "CANCELED",
        "COMPLETE"
      ],
      "type": "string"
    },
    "startedAt": {
      "type": "string",
      "format": "date-time"
    },
    "completedAt": {
      "type": "string",
      "format": "date-time"
    },
    "requestedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
object AssociatedId
{
  "type": "object",
  "required": [
    "id",
    "type"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "type": {
      "type": "string"
    }
  }
}
object AssociationDefinition
{
  "type": "object",
  "example": {
    "id": "105",
    "name": "my_object_to_contact",
    "toObjectTypeId": "0-1",
    "fromObjectTypeId": "2-123456"
  },
  "required": [
    "fromObjectTypeId",
    "id",
    "toObjectTypeId"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "105",
      "description": "A unique ID for this association."
    },
    "name": {
      "type": "string",
      "example": "my_object_to_contact",
      "description": "A unique name for this association."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "When the association was defined."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "When the association was last updated."
    },
    "toObjectTypeId": {
      "type": "string",
      "example": "0-1",
      "description": "ID of the target object type ID to link to."
    },
    "fromObjectTypeId": {
      "type": "string",
      "example": "2-123456",
      "description": "ID of the primary object type to link from."
    }
  },
  "description": "Defines an association between two object types."
}
object AssociationDefinitionEgg
{
  "type": "object",
  "example": {
    "name": "my_object_to_contact",
    "toObjectTypeId": "contact",
    "fromObjectTypeId": "2-123456"
  },
  "required": [
    "fromObjectTypeId",
    "toObjectTypeId"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "my_object_to_contact",
      "description": "A unique name for this association."
    },
    "toObjectTypeId": {
      "type": "string",
      "example": "contact",
      "description": "ID of the target object type ID to link to."
    },
    "fromObjectTypeId": {
      "type": "string",
      "example": "2-123456",
      "description": "ID of the primary object type to link from."
    }
  },
  "description": "Defines an association between two object types."
}
object AssociationSpec
{
  "type": "object",
  "required": [
    "associationCategory",
    "associationTypeId"
  ],
  "properties": {
    "associationTypeId": {
      "type": "integer",
      "format": "int32"
    },
    "associationCategory": {
      "enum": [
        "HUBSPOT_DEFINED",
        "USER_DEFINED",
        "INTEGRATOR_DEFINED"
      ],
      "type": "string"
    }
  }
}
object BatchInputPropertyCreate
{
  "type": "object",
  "required": [
    "inputs"
  ],
  "properties": {
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PropertyCreate"
      }
    }
  }
}
object BatchInputPropertyName
{
  "type": "object",
  "required": [
    "inputs"
  ],
  "properties": {
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PropertyName"
      }
    }
  }
}
object BatchInputSimplePublicObjectBatchInput
{
  "type": "object",
  "required": [
    "inputs"
  ],
  "properties": {
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SimplePublicObjectBatchInput"
      }
    }
  }
}
object BatchInputSimplePublicObjectId
{
  "type": "object",
  "required": [
    "inputs"
  ],
  "properties": {
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SimplePublicObjectId"
      }
    }
  }
}
object BatchInputSimplePublicObjectInputForCreate
{
  "type": "object",
  "required": [
    "inputs"
  ],
  "properties": {
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SimplePublicObjectInputForCreate"
      }
    }
  }
}
object BatchInputTimelineEvent
{
  "type": "object",
  "example": {
    "inputs": [
      {
        "email": "art3mis-pup@petspot.com",
        "tokens": {
          "petAge": 3,
          "petName": "Art3mis",
          "petColor": "black"
        },
        "extraData": {
          "questions": [
            {
              "answer": "Bark!",
              "question": "Who's a good girl?"
            },
            {
              "answer": "Woof!",
              "question": "Do you wanna go on a walk?"
            }
          ]
        },
        "timelineIFrame": {
          "url": "https://my.petspot.com/pets/Art3mis",
          "width": 600,
          "height": 400,
          "linkLabel": "View Art3mis",
          "headerLabel": "Art3mis dog"
        },
        "eventTemplateId": "1001298"
      },
      {
        "email": "pocket-tiger@petspot.com",
        "tokens": {
          "petAge": 3,
          "petName": "Pocket",
          "petColor": "yellow"
        },
        "extraData": {
          "questions": [
            {
              "answer": "Purr...",
              "question": "Who's a good kitty?"
            },
            {
              "answer": "Meow!",
              "question": "Will you stop playing with that?"
            }
          ]
        },
        "timelineIFrame": {
          "url": "https://my.petspot.com/pets/Pocket",
          "width": 600,
          "height": 400,
          "linkLabel": "View Pocket",
          "headerLabel": "Pocket Tiger"
        },
        "eventTemplateId": "1001298"
      }
    ]
  },
  "required": [
    "inputs"
  ],
  "properties": {
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimelineEvent"
      },
      "example": [
        {
          "email": "art3mis-pup@petspot.com",
          "tokens": {
            "petAge": 3,
            "petName": "Art3mis",
            "petColor": "black"
          },
          "extraData": {
            "questions": [
              {
                "answer": "Bark!",
                "question": "Who's a good girl?"
              },
              {
                "answer": "Woof!",
                "question": "Do you wanna go on a walk?"
              }
            ]
          },
          "timelineIFrame": {
            "url": "https://my.petspot.com/pets/Art3mis",
            "width": 600,
            "height": 400,
            "linkLabel": "View Art3mis",
            "headerLabel": "Art3mis dog"
          },
          "eventTemplateId": "1001298"
        },
        {
          "email": "pocket-tiger@petspot.com",
          "tokens": {
            "petAge": 3,
            "petName": "Pocket",
            "petColor": "yellow"
          },
          "extraData": {
            "questions": [
              {
                "answer": "Purr...",
                "question": "Who's a good kitty?"
              },
              {
                "answer": "Meow!",
                "question": "Will you stop playing with that?"
              }
            ]
          },
          "timelineIFrame": {
            "url": "https://my.petspot.com/pets/Pocket",
            "width": 600,
            "height": 400,
            "linkLabel": "View Pocket",
            "headerLabel": "Pocket Tiger"
          },
          "eventTemplateId": "1001298"
        }
      ],
      "description": "A collection of timeline events we want to create."
    }
  },
  "description": "Used to create timeline events in batches."
}
object BatchReadInputPropertyName
{
  "type": "object",
  "required": [
    "archived",
    "inputs"
  ],
  "properties": {
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PropertyName"
      }
    },
    "archived": {
      "type": "boolean"
    }
  }
}
object BatchReadInputSimplePublicObjectId
{
  "type": "object",
  "required": [
    "inputs",
    "properties",
    "propertiesWithHistory"
  ],
  "properties": {
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SimplePublicObjectId"
      }
    },
    "idProperty": {
      "type": "string"
    },
    "properties": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "propertiesWithHistory": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
object BatchResponseProperty
{
  "type": "object",
  "required": [
    "completedAt",
    "results",
    "startedAt",
    "status"
  ],
  "properties": {
    "links": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "status": {
      "enum": [
        "PENDING",
        "PROCESSING",
        "CANCELED",
        "COMPLETE"
      ],
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Property"
      }
    },
    "startedAt": {
      "type": "string",
      "format": "date-time"
    },
    "completedAt": {
      "type": "string",
      "format": "date-time"
    },
    "requestedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
object BatchResponsePropertyWithErrors
{
  "type": "object",
  "required": [
    "completedAt",
    "results",
    "startedAt",
    "status"
  ],
  "properties": {
    "links": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StandardError"
      }
    },
    "status": {
      "enum": [
        "PENDING",
        "PROCESSING",
        "CANCELED",
        "COMPLETE"
      ],
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Property"
      }
    },
    "numErrors": {
      "type": "integer",
      "format": "int32"
    },
    "startedAt": {
      "type": "string",
      "format": "date-time"
    },
    "completedAt": {
      "type": "string",
      "format": "date-time"
    },
    "requestedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
object BatchResponseSimplePublicObject
{
  "type": "object",
  "required": [
    "completedAt",
    "results",
    "startedAt",
    "status"
  ],
  "properties": {
    "links": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "status": {
      "enum": [
        "PENDING",
        "PROCESSING",
        "CANCELED",
        "COMPLETE"
      ],
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SimplePublicObject"
      }
    },
    "startedAt": {
      "type": "string",
      "format": "date-time"
    },
    "completedAt": {
      "type": "string",
      "format": "date-time"
    },
    "requestedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
object BatchResponseSimplePublicObjectWithErrors
{
  "type": "object",
  "required": [
    "completedAt",
    "results",
    "startedAt",
    "status"
  ],
  "properties": {
    "links": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StandardError"
      }
    },
    "status": {
      "enum": [
        "PENDING",
        "PROCESSING",
        "CANCELED",
        "COMPLETE"
      ],
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SimplePublicObject"
      }
    },
    "numErrors": {
      "type": "integer",
      "format": "int32"
    },
    "startedAt": {
      "type": "string",
      "format": "date-time"
    },
    "completedAt": {
      "type": "string",
      "format": "date-time"
    },
    "requestedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
object BatchResponseTimelineEventResponse
{
  "type": "object",
  "example": {
    "status": "COMPLETE",
    "results": [
      {
        "id": "petspot:1001298:art3mis-pup@petspot.com-6edaa73d-d734-404d-908f-74774d58ac2bX",
        "email": "art3mis-pup@petspot.com",
        "tokens": {
          "petAge": "3",
          "petName": "Art3mis",
          "petColor": "black"
        },
        "objectId": "28001",
        "extraData": {
          "questions": [
            {
              "answer": "Bark!",
              "question": "Who's a good girl?"
            },
            {
              "answer": "Woof!",
              "question": "Do you wanna go on a walk?"
            }
          ]
        },
        "timestamp": "2020-01-30T18:13:25.665Z",
        "objectType": "contacts",
        "timelineIFrame": {
          "url": "https://my.petspot.com/pets/Art3mis",
          "width": 600,
          "height": 400,
          "linkLabel": "View Art3mis",
          "headerLabel": "Art3mis dog"
        },
        "eventTemplateId": "1001298"
      },
      {
        "id": "petspot:1001298:pocket-tiger@petspot.com-0df6277b-6eba-4d1f-8c19-1994cbfaa4caX",
        "email": "pocket-tiger@petspot.com",
        "tokens": {
          "petAge": "3",
          "petName": "Pocket",
          "petColor": "yellow"
        },
        "objectId": "28651",
        "extraData": {
          "questions": [
            {
              "answer": "Purr...",
              "question": "Who's a good kitty?"
            },
            {
              "answer": "Meow!",
              "question": "Will you stop playing with that?"
            }
          ]
        },
        "timestamp": "2020-01-30T18:13:25.665Z",
        "objectType": "contacts",
        "timelineIFrame": {
          "url": "https://my.petspot.com/pets/Pocket",
          "width": 600,
          "height": 400,
          "linkLabel": "View Pocket",
          "headerLabel": "Pocket Tiger"
        },
        "eventTemplateId": "1001298"
      }
    ],
    "startedAt": "2020-01-30T18:13:24.974023Z",
    "completedAt": "2020-01-30T18:13:26.227559Z"
  },
  "required": [
    "completedAt",
    "results",
    "startedAt",
    "status"
  ],
  "properties": {
    "links": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "status": {
      "enum": [
        "PENDING",
        "PROCESSING",
        "CANCELED",
        "COMPLETE"
      ],
      "type": "string",
      "example": "COMPLETE",
      "description": "The status of the batch response. Should always be COMPLETED if processed."
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimelineEventResponse"
      },
      "example": [
        {
          "id": "petspot:1001298:art3mis-pup@petspot.com-6edaa73d-d734-404d-908f-74774d58ac2b",
          "email": "art3mis-pup@petspot.com",
          "tokens": {
            "petAge": "3",
            "petName": "Art3mis",
            "petColor": "black"
          },
          "objectId": "28001",
          "extraData": {
            "questions": [
              {
                "answer": "Bark!",
                "question": "Who's a good girl?"
              },
              {
                "answer": "Woof!",
                "question": "Do you wanna go on a walk?"
              }
            ]
          },
          "timestamp": "2020-01-30T18:13:25.665Z",
          "objectType": "contacts",
          "timelineIFrame": {
            "url": "https://my.petspot.com/pets/Art3mis",
            "width": 600,
            "height": 400,
            "linkLabel": "View Art3mis",
            "headerLabel": "Art3mis dog"
          },
          "eventTemplateId": "1001298"
        },
        {
          "id": "petspot:1001298:pocket-tiger@petspot.com-0df6277b-6eba-4d1f-8c19-1994cbfaa4ca",
          "email": "pocket-tiger@petspot.com",
          "tokens": {
            "petAge": "3",
            "petName": "Pocket",
            "petColor": "yellow"
          },
          "objectId": "28651",
          "extraData": {
            "questions": [
              {
                "answer": "Purr...",
                "question": "Who's a good kitty?"
              },
              {
                "answer": "Meow!",
                "question": "Will you stop playing with that?"
              }
            ]
          },
          "timestamp": "2020-01-30T18:13:25.665Z",
          "objectType": "contacts",
          "timelineIFrame": {
            "url": "https://my.petspot.com/pets/Pocket",
            "width": 600,
            "height": 400,
            "linkLabel": "View Pocket",
            "headerLabel": "Pocket Tiger"
          },
          "eventTemplateId": "1001298"
        }
      ],
      "description": "Successfully created events."
    },
    "startedAt": {
      "type": "string",
      "format": "date-time",
      "description": "The time the request began processing."
    },
    "completedAt": {
      "type": "string",
      "format": "date-time",
      "description": "The time the request was completed."
    },
    "requestedAt": {
      "type": "string",
      "format": "date-time",
      "description": "The time the request occurred."
    }
  },
  "description": "The state of the batch event request."
}
object BatchResponseTimelineEventResponseWithErrors
{
  "type": "object",
  "required": [
    "completedAt",
    "results",
    "startedAt",
    "status"
  ],
  "properties": {
    "links": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StandardError"
      }
    },
    "status": {
      "enum": [
        "PENDING",
        "PROCESSING",
        "CANCELED",
        "COMPLETE"
      ],
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimelineEventResponse"
      }
    },
    "numErrors": {
      "type": "integer",
      "format": "int32"
    },
    "startedAt": {
      "type": "string",
      "format": "date-time"
    },
    "completedAt": {
      "type": "string",
      "format": "date-time"
    },
    "requestedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
object CollectionResponseAssociatedId
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "paging": {
      "$ref": "#/components/schemas/Paging"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AssociatedId"
      }
    }
  }
}
object CollectionResponseObjectSchemaNoPaging
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObjectSchema"
      }
    }
  }
}
object CollectionResponsePipelineNoPaging
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Pipeline"
      }
    }
  }
}
object CollectionResponsePipelineStageNoPaging
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PipelineStage"
      }
    }
  }
}
object CollectionResponsePropertyGroupNoPaging
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PropertyGroup"
      }
    }
  }
}
object CollectionResponsePropertyNoPaging
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Property"
      }
    }
  }
}
object CollectionResponsePublicAuditInfoNoPaging
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicAuditInfo"
      }
    }
  }
}
object CollectionResponsePublicImportErrorForwardPaging
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "paging": {
      "$ref": "#/components/schemas/ForwardPaging"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicImportError"
      }
    }
  }
}
object CollectionResponsePublicImportResponse
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "paging": {
      "$ref": "#/components/schemas/Paging"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicImportResponse"
      }
    }
  }
}
object CollectionResponsePublicOwnerForwardPaging
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "paging": {
      "$ref": "#/components/schemas/ForwardPaging"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicOwner"
      }
    }
  }
}
object CollectionResponseSimplePublicObjectWithAssociationsForwardPaging
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "paging": {
      "$ref": "#/components/schemas/ForwardPaging"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SimplePublicObjectWithAssociations"
      }
    }
  }
}
object CollectionResponseTimelineEventTemplateNoPaging
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimelineEventTemplate"
      }
    }
  }
}
object CollectionResponseWithTotalSimplePublicObjectForwardPaging
{
  "type": "object",
  "required": [
    "results",
    "total"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32"
    },
    "paging": {
      "$ref": "#/components/schemas/ForwardPaging"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SimplePublicObject"
      }
    }
  }
}
object CoreStartImportRequest
{
  "type": "object",
  "properties": {
    "files": {
      "type": "string",
      "format": "binary",
      "description": "A list of files containing the data to import"
    },
    "importRequest": {
      "type": "string",
      "description": "JSON formatted metadata about the import. This includes a name for the import and the column mappings for each file. See the overview tab for more on the required format."
    }
  }
}
object Error
{
  "type": "object",
  "example": {
    "links": {
      "knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
    },
    "message": "Invalid input (details will vary based on the error)",
    "category": "VALIDATION_ERROR",
    "correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf"
  },
  "required": [
    "category",
    "correlationId",
    "message"
  ],
  "properties": {
    "links": {
      "type": "object",
      "example": {
        "knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
      },
      "description": "A map of link names to associated URIs containing documentation about the error or recommended remediation steps",
      "additionalProperties": {
        "type": "string"
      }
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ErrorDetail"
      },
      "description": "further information about the error"
    },
    "context": {
      "type": "object",
      "example": {
        "missingScopes": [
          "scope1",
          "scope2"
        ],
        "invalidPropertyName": [
          "propertyValue"
        ]
      },
      "description": "Context about the error condition",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "message": {
      "type": "string",
      "example": "Invalid input (details will vary based on the error)",
      "description": "A human readable message describing the error along with remediation steps where appropriate"
    },
    "category": {
      "type": "string",
      "example": "VALIDATION_ERROR",
      "description": "The error category"
    },
    "subCategory": {
      "type": "string",
      "description": "A specific category that contains more specific detail about the error"
    },
    "correlationId": {
      "type": "string",
      "format": "uuid",
      "example": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
      "description": "A unique identifier for the request. Include this value with any error reports or support tickets"
    }
  }
}
object ErrorDetail
{
  "type": "object",
  "required": [
    "message"
  ],
  "properties": {
    "in": {
      "type": "string",
      "description": "The name of the field or parameter in which the error was found."
    },
    "code": {
      "type": "string",
      "description": "The status code associated with the error detail"
    },
    "context": {
      "type": "object",
      "example": {
        "missingScopes": [
          "scope1",
          "scope2"
        ]
      },
      "description": "Context about the error condition",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "message": {
      "type": "string",
      "description": "A human readable message describing the error along with remediation steps where appropriate"
    },
    "subCategory": {
      "type": "string",
      "description": "A specific category that contains more specific detail about the error"
    }
  }
}
object EventDetail
{
  "type": "object",
  "example": {
    "details": "<p>Registration occurred at Jan 30, 2020, 1:13:25 PM</p><h4>Questions</h4><p><strong>Who&#x27;s a good kitty?</strong>: Purr...</p><p><strong>Will you stop playing with that?</strong>: Meow!</p><p>EDIT</p>"
  },
  "required": [
    "details"
  ],
  "properties": {
    "details": {
      "type": "string",
      "example": "<p>Registration occurred at Jan 30, 2020, 1:13:25 PM</p><h4>Questions</h4><p><strong>Who&#x27;s a good kitty?</strong>: Purr...</p><p><strong>Will you stop playing with that?</strong>: Meow!</p><p>EDIT</p>",
      "description": "The details Markdown rendered as HTML."
    }
  },
  "description": "The details Markdown rendered as HTML."
}
object EventsCreateMultipleBatchResponse
{
  "type": "object",
  "example": {
    "status": "COMPLETE",
    "results": [
      {
        "id": "petspot:1001298:art3mis-pup@petspot.com-b9d73144-41bb-46c8-9a3f-f0849c1ad7e6",
        "email": "art3mis-pup@petspot.com",
        "tokens": {
          "petAge": "3",
          "petName": "Art3mis",
          "petColor": "black"
        },
        "objectId": "28001",
        "extraData": {
          "questions": [
            {
              "answer": "Bark!",
              "question": "Who's a good girl?"
            },
            {
              "answer": "Woof!",
              "question": "Do you wanna go on a walk?"
            }
          ]
        },
        "timestamp": "2020-01-30T18:10:17.057Z",
        "objectType": "contacts",
        "timelineIFrame": {
          "url": "https://my.petspot.com/pets/Art3mis",
          "width": 600,
          "height": 400,
          "linkLabel": "View Art3mis",
          "headerLabel": "Art3mis dog"
        },
        "eventTemplateId": "1001298"
      },
      {
        "id": "petspot:1001298:pocket-tiger@petspot.com-c09a620f-60a4-46a8-be9f-fe0609fc3f0e",
        "email": "pocket-tiger@petspot.com",
        "tokens": {
          "petAge": "3",
          "petName": "Pocket",
          "petColor": "yellow"
        },
        "objectId": "28651",
        "extraData": {
          "questions": [
            {
              "answer": "Purr...",
              "question": "Who's a good kitty?"
            },
            {
              "answer": "Meow!",
              "question": "Will you stop playing with that?"
            }
          ]
        },
        "timestamp": "2020-01-30T18:10:17.057Z",
        "objectType": "contacts",
        "timelineIFrame": {
          "url": "https://my.petspot.com/pets/Pocket",
          "width": 600,
          "height": 400,
          "linkLabel": "View Pocket",
          "headerLabel": "Pocket Tiger"
        },
        "eventTemplateId": "1001298"
      }
    ],
    "startedAt": "2020-01-30T18:10:16.478734Z",
    "completedAt": "2020-01-30T18:10:17.793206Z"
  },
  "properties": {
    "status": {
      "type": "string",
      "example": "COMPLETE"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "petspot:1001298:art3mis-pup@petspot.com-b9d73144-41bb-46c8-9a3f-f0849c1ad7e6"
          },
          "email": {
            "type": "string",
            "example": "art3mis-pup@petspot.com"
          },
          "tokens": {
            "type": "object",
            "properties": {
              "petAge": {
                "type": "string",
                "example": "3"
              },
              "petName": {
                "type": "string",
                "example": "Art3mis"
              },
              "petColor": {
                "type": "string",
                "example": "black"
              }
            }
          },
          "objectId": {
            "type": "string",
            "example": "28001"
          },
          "extraData": {
            "type": "object",
            "properties": {
              "questions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "answer": {
                      "type": "string",
                      "example": "Bark!"
                    },
                    "question": {
                      "type": "string",
                      "example": "Who's a good girl?"
                    }
                  }
                }
              }
            }
          },
          "timestamp": {
            "type": "string",
            "example": "2020-01-30T18:10:17.057Z"
          },
          "objectType": {
            "type": "string",
            "example": "contacts"
          },
          "timelineIFrame": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "example": "https://my.petspot.com/pets/Art3mis"
              },
              "width": {
                "type": "number",
                "example": 600
              },
              "height": {
                "type": "number",
                "example": 400
              },
              "linkLabel": {
                "type": "string",
                "example": "View Art3mis"
              },
              "headerLabel": {
                "type": "string",
                "example": "Art3mis dog"
              }
            }
          },
          "eventTemplateId": {
            "type": "string",
            "example": "1001298"
          }
        }
      }
    },
    "startedAt": {
      "type": "string",
      "example": "2020-01-30T18:10:16.478734Z"
    },
    "completedAt": {
      "type": "string",
      "example": "2020-01-30T18:10:17.793206Z"
    }
  }
}
string EventsRenderingHtmlResponse
{
  "type": "string"
}
object ExternalSettings
{
  "type": "object",
  "example": {
    "userVerifyUrl": "https://example.com/user-verify",
    "createMeetingUrl": "https://example.com/create-meeting",
    "deleteMeetingUrl": "https://example.com/delete-meeting",
    "updateMeetingUrl": "https://example.com/update-meeting"
  },
  "required": [
    "createMeetingUrl"
  ],
  "properties": {
    "userVerifyUrl": {
      "type": "string",
      "example": "https://example.com/user-verify",
      "description": "The URL that HubSpot will use to verify that a user exists in the video conference application."
    },
    "createMeetingUrl": {
      "type": "string",
      "example": "https://example.com/create-meeting",
      "description": "The URL that HubSpot will send requests to create a new video conference."
    },
    "deleteMeetingUrl": {
      "type": "string",
      "example": "https://example.com/delete-meeting",
      "description": "The URL that HubSpot will send notifications of meetings that have been deleted in HubSpot."
    },
    "fetchAccountsUri": {
      "type": "string"
    },
    "updateMeetingUrl": {
      "type": "string",
      "example": "https://example.com/update-meeting",
      "description": "The URL that HubSpot will send updates to existing meetings. Typically called when the user changes the topic or times of a meeting."
    }
  },
  "description": "The URLs of the various actions provided by the video conferencing application. All URLs must use the `https` protocol."
}
object Filter
{
  "type": "object",
  "required": [
    "operator",
    "propertyName"
  ],
  "properties": {
    "value": {
      "type": "string"
    },
    "values": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "operator": {
      "enum": [
        "EQ",
        "NEQ",
        "LT",
        "LTE",
        "GT",
        "GTE",
        "BETWEEN",
        "IN",
        "NOT_IN",
        "HAS_PROPERTY",
        "NOT_HAS_PROPERTY",
        "CONTAINS_TOKEN",
        "NOT_CONTAINS_TOKEN"
      ],
      "type": "string",
      "description": "null"
    },
    "highValue": {
      "type": "string"
    },
    "propertyName": {
      "type": "string"
    }
  }
}
object FilterGroup
{
  "type": "object",
  "required": [
    "filters"
  ],
  "properties": {
    "filters": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Filter"
      }
    }
  }
}
object ForwardPaging
{
  "type": "object",
  "properties": {
    "next": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object ImportRowCore
{
  "type": "object",
  "required": [
    "fileId",
    "lineNumber",
    "rowData"
  ],
  "properties": {
    "fileId": {
      "type": "integer",
      "format": "int32"
    },
    "rowData": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "pageName": {
      "type": "string"
    },
    "lineNumber": {
      "type": "integer",
      "format": "int32"
    }
  }
}
object ImportTemplate
{
  "type": "object",
  "required": [
    "templateId",
    "templateType"
  ],
  "properties": {
    "templateId": {
      "type": "integer",
      "format": "int32"
    },
    "templateType": {
      "enum": [
        "admin_defined",
        "previous_import",
        "user_file"
      ],
      "type": "string"
    }
  }
}
object NextPage
{
  "type": "object",
  "example": {
    "link": "?after=NTI1Cg%3D%3D",
    "after": "NTI1Cg%3D%3D"
  },
  "required": [
    "after"
  ],
  "properties": {
    "link": {
      "type": "string",
      "example": "?after=NTI1Cg%3D%3D"
    },
    "after": {
      "type": "string",
      "example": "NTI1Cg%3D%3D"
    }
  }
}
object ObjectSchema
{
  "type": "object",
  "example": {
    "id": "123456X",
    "name": "my_object",
    "labels": {
      "plural": "My objects",
      "singular": "My object"
    },
    "metaType": "PORTAL_SPECIFIC",
    "createdAt": "2020-02-20T18:07:11.390Z",
    "updatedAt": "2020-02-20T18:09:07.555Z",
    "properties": [
      {
        "name": "my_object_property",
        "type": "string",
        "label": "My object property",
        "archived": false,
        "createdAt": "2020-02-20T18:07:11.802Z",
        "fieldType": "text",
        "groupName": "my_object_information",
        "updatedAt": "2020-02-20T18:07:11.802Z",
        "calculated": false,
        "displayOrder": -1,
        "hasUniqueValue": false,
        "externalOptions": false
      }
    ],
    "associations": [
      {
        "id": "123X",
        "name": "my_object_to_contact",
        "toObjectTypeId": "0-1",
        "fromObjectTypeId": "2-123456"
      }
    ],
    "fullyQualifiedName": "p7878787_my_object\"",
    "requiredProperties": [
      "my_object_property"
    ],
    "searchableProperties": [
      "my_object_property"
    ],
    "primaryDisplayProperty": "my_object_property"
  },
  "required": [
    "associations",
    "id",
    "labels",
    "name",
    "properties",
    "requiredProperties"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "123456",
      "description": "A unique ID for this schema's object type. Will be defined as {meta-type}-{unique ID}."
    },
    "name": {
      "type": "string",
      "example": "my_object",
      "description": "A unique name for the schema's object type."
    },
    "labels": {
      "$ref": "#/components/schemas/ObjectTypeDefinitionLabels"
    },
    "archived": {
      "type": "boolean"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "When the object schema was created."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "When the object schema was last updated."
    },
    "properties": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Property"
      },
      "example": [
        {
          "name": "my_object_property",
          "type": "string",
          "label": "My object property",
          "archived": false,
          "createdAt": "2020-02-20T18:07:11.802Z",
          "fieldType": "text",
          "groupName": "my_object_information",
          "updatedAt": "2020-02-20T18:07:11.802Z",
          "calculated": false,
          "displayOrder": -1,
          "hasUniqueValue": false,
          "externalOptions": false
        }
      ],
      "description": "Properties defined for this object type."
    },
    "description": {
      "type": "string"
    },
    "associations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AssociationDefinition"
      },
      "example": [
        {
          "id": "123",
          "name": "my_object_to_contact",
          "toObjectTypeId": "0-1",
          "fromObjectTypeId": "2-123456"
        }
      ],
      "description": "Associations defined for a given object type."
    },
    "objectTypeId": {
      "type": "string"
    },
    "fullyQualifiedName": {
      "type": "string",
      "example": "p7878787_my_object\"",
      "description": "An assigned unique ID for the object, including portal ID and object name."
    },
    "requiredProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "my_object_property"
      ],
      "description": "The names of properties that should be **required** when creating an object of this type."
    },
    "searchableProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "my_object_property"
      ],
      "description": "Names of properties that will be indexed for this object type in by HubSpot's product search."
    },
    "primaryDisplayProperty": {
      "type": "string",
      "example": "my_object_property",
      "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type."
    },
    "secondaryDisplayProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type."
    }
  },
  "description": "Defines an object schema, including its properties and associations."
}
object ObjectSchemaEgg
{
  "type": "object",
  "example": {
    "name": "my_object",
    "labels": {
      "plural": "My objects",
      "singular": "My object"
    },
    "metaType": "PORTAL_SPECIFIC",
    "properties": [
      {
        "name": "my_object_property",
        "label": "My object property",
        "isPrimaryDisplayLabel": true
      }
    ],
    "associatedObjects": [
      "CONTACT"
    ],
    "requiredProperties": [
      "my_object_property"
    ],
    "primaryDisplayProperty": "my_object_property"
  },
  "required": [
    "associatedObjects",
    "labels",
    "name",
    "properties",
    "requiredProperties"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "my_object",
      "description": "A unique name for this object. For internal use only."
    },
    "labels": {
      "$ref": "#/components/schemas/ObjectTypeDefinitionLabels"
    },
    "properties": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObjectTypePropertyCreate"
      },
      "example": [
        {
          "name": "my_object_property",
          "label": "My object property",
          "isPrimaryDisplayLabel": true
        }
      ],
      "description": "Properties defined for this object type."
    },
    "description": {
      "type": "string"
    },
    "associatedObjects": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "CONTACT"
      ],
      "description": "Associations defined for this object type."
    },
    "requiredProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "my_object_property"
      ],
      "description": "The names of properties that should be **required** when creating an object of this type."
    },
    "searchableProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Names of properties that will be indexed for this object type in by HubSpot's product search."
    },
    "primaryDisplayProperty": {
      "type": "string",
      "example": "my_object_property",
      "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type."
    },
    "secondaryDisplayProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type."
    }
  },
  "description": "Defines a new object type, its properties, and associations."
}
object ObjectTypeDefinition
{
  "type": "object",
  "example": {
    "id": "123456",
    "name": "my_object",
    "labels": {
      "plural": "My objects",
      "singular": "My object"
    },
    "metaType": "PORTAL_SPECIFIC",
    "portalId": 12345678,
    "createdAt": "2020-02-20T18:07:11.390Z",
    "updatedAt": "2020-02-21T14:13:28.818002Z",
    "requiredProperties": [
      "my_object_property"
    ],
    "searchableProperties": [
      "my_object_property"
    ],
    "primaryDisplayProperty": "my_object_property"
  },
  "required": [
    "id",
    "labels",
    "name",
    "requiredProperties"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "123456",
      "description": "A unique ID for this object type. Will be defined as {meta-type}-{unique ID}."
    },
    "name": {
      "type": "string",
      "example": "my_object",
      "description": "A unique name for this object. For internal use only."
    },
    "labels": {
      "$ref": "#/components/schemas/ObjectTypeDefinitionLabels"
    },
    "archived": {
      "type": "boolean"
    },
    "portalId": {
      "type": "integer",
      "format": "int32",
      "example": 12345678,
      "description": "The ID of the account that this object type is specific to."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "When the object type was created."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "When the object type was last updated."
    },
    "description": {
      "type": "string"
    },
    "objectTypeId": {
      "type": "string"
    },
    "fullyQualifiedName": {
      "type": "string"
    },
    "requiredProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "my_object_property"
      ],
      "description": "The names of properties that should be **required** when creating an object of this type."
    },
    "searchableProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "my_object_property"
      ],
      "description": "Names of properties that will be indexed for this object type in by HubSpot's product search."
    },
    "primaryDisplayProperty": {
      "type": "string",
      "example": "my_object_property",
      "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type."
    },
    "secondaryDisplayProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type."
    }
  },
  "description": "Defines an object type."
}
object ObjectTypeDefinitionLabels
{
  "type": "object",
  "example": {
    "plural": "My objects",
    "singular": "My object"
  },
  "properties": {
    "plural": {
      "type": "string",
      "example": "My objects",
      "description": "The word for multiple objects. (There’s no way to change this later.)"
    },
    "singular": {
      "type": "string",
      "example": "My object",
      "description": "The word for one object. (There’s no way to change this later.)"
    }
  },
  "description": "Singular and plural labels for the object. Used in CRM display."
}
object ObjectTypeDefinitionPatch
{
  "type": "object",
  "example": {
    "requiredProperties": [
      "my_object_property"
    ],
    "searchableProperties": [
      "my_object_property"
    ],
    "primaryDisplayProperty": "my_object_property"
  },
  "properties": {
    "labels": {
      "$ref": "#/components/schemas/ObjectTypeDefinitionLabels"
    },
    "restorable": {
      "type": "boolean"
    },
    "description": {
      "type": "string"
    },
    "requiredProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "my_object_property"
      ],
      "description": "The names of properties that should be **required** when creating an object of this type."
    },
    "searchableProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "my_object_property"
      ],
      "description": "Names of properties that will be indexed for this object type in by HubSpot's product search."
    },
    "primaryDisplayProperty": {
      "type": "string",
      "example": "my_object_property",
      "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type."
    },
    "secondaryDisplayProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type."
    }
  },
  "description": "Defines attributes to update on an object type."
}
object ObjectTypePropertyCreate
{
  "type": "object",
  "example": {
    "type": "enumeration",
    "label": "My object property",
    "options": [
      {
        "label": "Option A",
        "value": "A",
        "description": "Choice number one",
        "displayOrder": 1
      },
      {
        "label": "Option B",
        "value": "B",
        "description": "Choice number two",
        "displayOrder": 2
      }
    ],
    "fieldType": "select",
    "groupName": "my_object_information",
    "displayOrder": 2,
    "hasUniqueValue": false
  },
  "required": [
    "fieldType",
    "label",
    "name",
    "type"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The internal property name, which must be used when referencing the property from the API."
    },
    "type": {
      "enum": [
        "string",
        "number",
        "date",
        "datetime",
        "enumeration",
        "bool"
      ],
      "type": "string",
      "example": "enumeration",
      "description": "The data type of the property."
    },
    "label": {
      "type": "string",
      "example": "My object property",
      "description": "A human-readable property label that will be shown in HubSpot."
    },
    "hidden": {
      "type": "boolean"
    },
    "options": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OptionInput"
      },
      "example": [
        {
          "label": "Option A",
          "value": "A",
          "description": "Choice number one",
          "displayOrder": 1
        },
        {
          "label": "Option B",
          "value": "B",
          "description": "Choice number two",
          "displayOrder": 2
        }
      ],
      "description": "A list of available options for the property. This field is only required for enumerated properties."
    },
    "fieldType": {
      "type": "string",
      "example": "select",
      "description": "Controls how the property appears in HubSpot."
    },
    "formField": {
      "type": "boolean",
      "description": "Whether the property can be used in a HubSpot form."
    },
    "groupName": {
      "type": "string",
      "example": "my_object_information",
      "description": "The name of the group this property belongs to."
    },
    "description": {
      "type": "string",
      "description": "A description of the property that will be shown as help text in HubSpot."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 2,
      "description": "The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values."
    },
    "hasUniqueValue": {
      "type": "boolean",
      "example": false,
      "description": "Whether or not the property's value must be unique. Once set, this can't be changed."
    },
    "textDisplayHint": {
      "enum": [
        "unformatted_single_line",
        "multi_line",
        "email",
        "phone_number",
        "domain_name",
        "ip_address",
        "physical_address",
        "postal_code"
      ],
      "type": "string",
      "description": "Controls how text properties are formatted in the HubSpot UI"
    },
    "numberDisplayHint": {
      "enum": [
        "unformatted",
        "formatted",
        "currency",
        "percentage",
        "duration",
        "probability"
      ],
      "type": "string",
      "description": "Controls how numeric properties are formatted in the HubSpot UI"
    },
    "optionSortStrategy": {
      "enum": [
        "DISPLAY_ORDER",
        "ALPHABETICAL"
      ],
      "type": "string",
      "description": "Controls how the property options will be sorted in the HubSpot UI."
    },
    "showCurrencySymbol": {
      "type": "boolean",
      "description": "Whether the property will display the currency symbol in the HubSpot UI."
    },
    "referencedObjectType": {
      "type": "string",
      "description": "Defines the options this property will return, e.g. OWNER would return name of users on the portal."
    },
    "searchableInGlobalSearch": {
      "type": "boolean",
      "description": "Allow users to search for information entered to this field (limited to 3 properties)"
    }
  },
  "description": "Defines a property to create."
}
object Option
{
  "type": "object",
  "example": {
    "label": "Option A",
    "value": "A",
    "hidden": false,
    "description": "Choice number one",
    "displayOrder": 1
  },
  "required": [
    "hidden",
    "label",
    "value"
  ],
  "properties": {
    "label": {
      "type": "string",
      "example": "Option A",
      "description": "A human-readable option label that will be shown in HubSpot."
    },
    "value": {
      "type": "string",
      "example": "A",
      "description": "The internal value of the option, which must be used when setting the property value through the API."
    },
    "hidden": {
      "type": "boolean",
      "example": false,
      "description": "Hidden options will not be displayed in HubSpot."
    },
    "description": {
      "type": "string",
      "example": "Choice number one",
      "description": "A description of the option."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 1,
      "description": "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."
    }
  },
  "description": "The options available when a property is an enumeration"
}
object OptionInput
{
  "type": "object",
  "example": {
    "label": "Option A",
    "value": "A",
    "hidden": false,
    "description": "Choice number one",
    "displayOrder": 1
  },
  "required": [
    "displayOrder",
    "hidden",
    "label",
    "value"
  ],
  "properties": {
    "label": {
      "type": "string",
      "example": "Option A",
      "description": "A human-readable option label that will be shown in HubSpot."
    },
    "value": {
      "type": "string",
      "example": "A",
      "description": "The internal value of the option, which must be used when setting the property value through the API."
    },
    "hidden": {
      "type": "boolean",
      "example": false,
      "description": "Hidden options won't be shown in HubSpot."
    },
    "description": {
      "type": "string",
      "example": "Choice number one",
      "description": "A description of the option."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 1,
      "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values."
    }
  },
  "description": "Defines a enumeration property option"
}
object Paging
{
  "type": "object",
  "properties": {
    "next": {
      "$ref": "#/components/schemas/NextPage"
    },
    "prev": {
      "$ref": "#/components/schemas/PreviousPage"
    }
  }
}
object Pipeline
{
  "type": "object",
  "example": {
    "id": "812723471",
    "label": "My ticket pipeline",
    "stages": [
      {
        "id": "1234912X",
        "label": "In Progress",
        "archived": false,
        "metadata": {
          "ticketState": "OPEN"
        },
        "createdAt": "2019-10-30T03:30:17.883Z",
        "updatedAt": "2019-12-07T16:50:06.678Z",
        "displayOrder": 0
      },
      {
        "id": "1234914X",
        "label": "Done",
        "archived": false,
        "metadata": {
          "ticketState": "CLOSED"
        },
        "createdAt": "2019-10-30T03:30:17.883Z",
        "updatedAt": "2019-12-07T16:50:06.678Z",
        "displayOrder": 0
      }
    ],
    "archived": false,
    "createdAt": "2019-10-30T03:30:17.883Z",
    "updatedAt": "2019-12-07T16:50:06.678Z",
    "displayOrder": 0
  },
  "required": [
    "archived",
    "createdAt",
    "displayOrder",
    "id",
    "label",
    "stages",
    "updatedAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "812723471",
      "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline."
    },
    "label": {
      "type": "string",
      "example": "My ticket pipeline",
      "description": "A unique label used to organize pipelines in HubSpot's UI"
    },
    "stages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PipelineStage"
      },
      "example": [
        {
          "id": "1234912X",
          "label": "In Progress",
          "archived": false,
          "metadata": {
            "ticketState": "OPEN"
          },
          "createdAt": "2019-10-30T03:30:17.883Z",
          "updatedAt": "2019-12-07T16:50:06.678Z",
          "displayOrder": 0
        },
        {
          "id": "1234914",
          "label": "Done",
          "archived": false,
          "metadata": {
            "ticketState": "CLOSED"
          },
          "createdAt": "2019-10-30T03:30:17.883Z",
          "updatedAt": "2019-12-07T16:50:06.678Z",
          "displayOrder": 0
        }
      ],
      "description": "The stages associated with the pipeline. They can be retrieved and updated via the pipeline stages endpoints."
    },
    "archived": {
      "type": "boolean",
      "example": false,
      "description": "Whether the pipeline is archived."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "The date the pipeline was created. The default pipelines will have createdAt = 0."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "The date the pipeline was last updated."
    },
    "archivedAt": {
      "type": "string",
      "format": "date-time",
      "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label."
    }
  },
  "description": "A pipeline definition."
}
object PipelineInput
{
  "type": "object",
  "example": {
    "label": "My replaced pipeline",
    "stages": [
      {
        "label": "In Progress",
        "metadata": {
          "ticketState": "OPEN"
        },
        "displayOrder": 0
      },
      {
        "label": "Done",
        "metadata": {
          "ticketState": "CLOSED"
        },
        "displayOrder": 1
      }
    ],
    "displayOrder": 0
  },
  "required": [
    "displayOrder",
    "label",
    "stages"
  ],
  "properties": {
    "label": {
      "type": "string",
      "example": "My replaced pipeline",
      "description": "A unique label used to organize pipelines in HubSpot's UI"
    },
    "stages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PipelineStageInput"
      },
      "example": [
        {
          "label": "In Progress",
          "metadata": {
            "ticketState": "OPEN"
          },
          "displayOrder": 0
        },
        {
          "label": "Done",
          "metadata": {
            "ticketState": "CLOSED"
          },
          "displayOrder": 1
        }
      ],
      "description": "Pipeline stage inputs used to create the new or replacement pipeline."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label."
    }
  },
  "description": "An input used to create or replace a pipeline's definition."
}
object PipelinePatchInput
{
  "type": "object",
  "example": {
    "label": "My updated pipeline",
    "displayOrder": 0
  },
  "properties": {
    "label": {
      "type": "string",
      "example": "My updated pipeline",
      "description": "A unique label used to organize pipelines in HubSpot's UI"
    },
    "archived": {
      "type": "boolean",
      "description": "Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label."
    }
  },
  "description": "An input used to update some properties on a pipeline definition."
}
object PipelineStage
{
  "type": "object",
  "example": {
    "id": "1234912",
    "label": "In Progress",
    "archived": false,
    "metadata": {
      "ticketState": "OPEN"
    },
    "createdAt": "2019-10-30T03:30:17.883Z",
    "updatedAt": "2019-12-07T16:50:06.678Z",
    "displayOrder": 0
  },
  "required": [
    "archived",
    "createdAt",
    "displayOrder",
    "id",
    "label",
    "metadata",
    "updatedAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "1234912",
      "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage."
    },
    "label": {
      "type": "string",
      "example": "In Progress",
      "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline."
    },
    "archived": {
      "type": "boolean",
      "example": false,
      "description": "Whether the pipeline is archived."
    },
    "metadata": {
      "type": "object",
      "example": {
        "ticketState": "OPEN"
      },
      "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "The date the pipeline stage was last updated."
    },
    "archivedAt": {
      "type": "string",
      "format": "date-time",
      "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label."
    },
    "writePermissions": {
      "enum": [
        "CRM_PERMISSIONS_ENFORCEMENT",
        "READ_ONLY",
        "INTERNAL_ONLY"
      ],
      "type": "string"
    }
  },
  "description": "A pipeline stage definition."
}
object PipelineStageInput
{
  "type": "object",
  "example": {
    "label": "Done",
    "metadata": {
      "ticketState": "CLOSED"
    },
    "displayOrder": 1
  },
  "required": [
    "displayOrder",
    "label",
    "metadata"
  ],
  "properties": {
    "label": {
      "type": "string",
      "example": "Done",
      "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline."
    },
    "metadata": {
      "type": "object",
      "example": {
        "ticketState": "CLOSED"
      },
      "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 1,
      "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label."
    }
  },
  "description": "An input used to create or replace a pipeline stage's definition."
}
object PipelineStagePatchInput
{
  "type": "object",
  "example": {
    "label": "Done",
    "metadata": {
      "ticketState": "CLOSED"
    },
    "displayOrder": 1
  },
  "required": [
    "metadata"
  ],
  "properties": {
    "label": {
      "type": "string",
      "example": "Done",
      "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline."
    },
    "archived": {
      "type": "boolean",
      "description": "Whether the pipeline is archived."
    },
    "metadata": {
      "type": "object",
      "example": {
        "ticketState": "CLOSED"
      },
      "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 1,
      "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label."
    }
  },
  "description": "An input used to update some properties on a pipeline definition."
}
object PreviousPage
{
  "type": "object",
  "required": [
    "before"
  ],
  "properties": {
    "link": {
      "type": "string"
    },
    "before": {
      "type": "string"
    }
  }
}
object Property
{
  "type": "object",
  "example": {
    "name": "my_contact_property",
    "type": "enumeration",
    "label": "My Contact Property",
    "hidden": false,
    "options": [
      {
        "label": "Option A",
        "value": "A",
        "hidden": false,
        "description": "Choice number one",
        "displayOrder": 1
      },
      {
        "label": "Option B",
        "value": "B",
        "hidden": false,
        "description": "Choice number two",
        "displayOrder": 2
      }
    ],
    "fieldType": "select",
    "formField": true,
    "groupName": "contactinformation",
    "displayOrder": 2,
    "hasUniqueValue": false,
    "modificationMetadata": {
      "archivable": true,
      "readOnlyValue": false,
      "readOnlyOptions": false,
      "readOnlyDefinition": false
    }
  },
  "required": [
    "description",
    "fieldType",
    "groupName",
    "label",
    "name",
    "options",
    "type"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "my_contact_property",
      "description": "The internal property name, which must be used when referencing the property via the API."
    },
    "type": {
      "type": "string",
      "example": "enumeration",
      "description": "The property data type."
    },
    "label": {
      "type": "string",
      "example": "My Contact Property",
      "description": "A human-readable property label that will be shown in HubSpot."
    },
    "hidden": {
      "type": "boolean",
      "example": false,
      "description": "Whether or not the property will be hidden from the HubSpot UI. It's recommended this be set to false for custom properties."
    },
    "options": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Option"
      },
      "example": [
        {
          "label": "Option A",
          "value": "A",
          "hidden": false,
          "description": "Choice number one",
          "displayOrder": 1
        },
        {
          "label": "Option B",
          "value": "B",
          "hidden": false,
          "description": "Choice number two",
          "displayOrder": 2
        }
      ],
      "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types."
    },
    "archived": {
      "type": "boolean",
      "description": "Whether or not the property is archived."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": ""
    },
    "fieldType": {
      "type": "string",
      "example": "select",
      "description": "Controls how the property appears in HubSpot."
    },
    "formField": {
      "type": "boolean",
      "example": true,
      "description": "Whether or not the property can be used in a HubSpot form."
    },
    "groupName": {
      "type": "string",
      "example": "contactinformation",
      "description": "The name of the property group the property belongs to."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": ""
    },
    "archivedAt": {
      "type": "string",
      "format": "date-time",
      "description": "When the property was archived."
    },
    "calculated": {
      "type": "boolean",
      "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties."
    },
    "description": {
      "type": "string",
      "description": "A description of the property that will be shown as help text in HubSpot."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 2,
      "description": "Properties are shown in order, starting with the lowest positive integer value."
    },
    "createdUserId": {
      "type": "string",
      "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot."
    },
    "updatedUserId": {
      "type": "string",
      "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot."
    },
    "hasUniqueValue": {
      "type": "boolean",
      "example": false,
      "description": "Whether or not the property's value must be unique. Once set, this can't be changed."
    },
    "hubspotDefined": {
      "type": "boolean",
      "description": "This will be true for default object properties built into HubSpot."
    },
    "externalOptions": {
      "type": "boolean",
      "description": "For default properties, true indicates that the options are stored externally to the property settings."
    },
    "calculationFormula": {
      "type": "string",
      "description": "Represents a formula that is used to compute a calculated property."
    },
    "showCurrencySymbol": {
      "type": "boolean",
      "description": "Whether or not the property will display the currency symbol set in the account settings."
    },
    "modificationMetadata": {
      "$ref": "#/components/schemas/PropertyModificationMetadata"
    },
    "referencedObjectType": {
      "type": "string",
      "description": "If this property is related to other object(s), they'll be listed here."
    }
  },
  "description": "Defines a property"
}
object PropertyCreate
{
  "type": "object",
  "example": {
    "type": "enumeration",
    "label": "My Contact Property",
    "hidden": false,
    "options": [
      {
        "label": "Option A",
        "value": "A",
        "hidden": false,
        "description": "Choice number one",
        "displayOrder": 1
      },
      {
        "label": "Option B",
        "value": "B",
        "hidden": false,
        "description": "Choice number two",
        "displayOrder": 2
      }
    ],
    "fieldType": "select",
    "formField": true,
    "groupName": "contactinformation",
    "displayOrder": 2,
    "hasUniqueValue": false
  },
  "required": [
    "fieldType",
    "groupName",
    "label",
    "name",
    "type"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The internal property name, which must be used when referencing the property via the API."
    },
    "type": {
      "enum": [
        "string",
        "number",
        "date",
        "datetime",
        "enumeration",
        "bool"
      ],
      "type": "string",
      "example": "enumeration",
      "description": "The data type of the property."
    },
    "label": {
      "type": "string",
      "example": "My Contact Property",
      "description": "A human-readable property label that will be shown in HubSpot."
    },
    "hidden": {
      "type": "boolean",
      "example": false,
      "description": "If true, the property won't be visible and can't be used in HubSpot."
    },
    "options": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OptionInput"
      },
      "example": [
        {
          "label": "Option A",
          "value": "A",
          "hidden": false,
          "description": "Choice number one",
          "displayOrder": 1
        },
        {
          "label": "Option B",
          "value": "B",
          "hidden": false,
          "description": "Choice number two",
          "displayOrder": 2
        }
      ],
      "description": "A list of valid options for the property. This field is required for enumerated properties."
    },
    "fieldType": {
      "enum": [
        "textarea",
        "text",
        "date",
        "file",
        "number",
        "select",
        "radio",
        "checkbox",
        "booleancheckbox",
        "calculation_equation"
      ],
      "type": "string",
      "example": "select",
      "description": "Controls how the property appears in HubSpot."
    },
    "formField": {
      "type": "boolean",
      "example": true,
      "description": "Whether or not the property can be used in a HubSpot form."
    },
    "groupName": {
      "type": "string",
      "example": "contactinformation",
      "description": "The name of the property group the property belongs to."
    },
    "description": {
      "type": "string",
      "description": "A description of the property that will be shown as help text in HubSpot."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 2,
      "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values."
    },
    "hasUniqueValue": {
      "type": "boolean",
      "example": false,
      "description": "Whether or not the property's value must be unique. Once set, this can't be changed."
    },
    "externalOptions": {
      "type": "boolean",
      "description": "Applicable only for 'enumeration' type properties.  Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'.  Otherwise false."
    },
    "calculationFormula": {
      "type": "string",
      "description": "Represents a formula that is used to compute a calculated property."
    },
    "referencedObjectType": {
      "type": "string",
      "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users."
    }
  }
}
object PropertyGroup
{
  "type": "object",
  "example": {
    "name": "mypropertygroup",
    "label": "My Property Group",
    "displayOrder": -1
  },
  "required": [
    "archived",
    "displayOrder",
    "label",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "mypropertygroup",
      "description": "The internal property group name, which must be used when referencing the property group via the API."
    },
    "label": {
      "type": "string",
      "example": "My Property Group",
      "description": "A human-readable label that will be shown in HubSpot."
    },
    "archived": {
      "type": "boolean"
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": -1,
      "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values."
    }
  },
  "description": "An ID for a group of properties"
}
object PropertyGroupCreate
{
  "type": "object",
  "example": {
    "name": "mypropertygroup",
    "label": "My Property Group",
    "displayOrder": -1
  },
  "required": [
    "label",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "mypropertygroup",
      "description": "The internal property group name, which must be used when referencing the property group via the API."
    },
    "label": {
      "type": "string",
      "example": "My Property Group",
      "description": "A human-readable label that will be shown in HubSpot."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": -1,
      "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values."
    }
  }
}
object PropertyGroupUpdate
{
  "type": "object",
  "example": {
    "label": "My Property Group",
    "displayOrder": -1
  },
  "properties": {
    "label": {
      "type": "string",
      "example": "My Property Group",
      "description": "A human-readable label that will be shown in HubSpot."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": -1,
      "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values."
    }
  }
}
object PropertyModificationMetadata
{
  "type": "object",
  "required": [
    "archivable",
    "readOnlyDefinition",
    "readOnlyValue"
  ],
  "properties": {
    "archivable": {
      "type": "boolean",
      "description": ""
    },
    "readOnlyValue": {
      "type": "boolean",
      "description": ""
    },
    "readOnlyOptions": {
      "type": "boolean",
      "description": ""
    },
    "readOnlyDefinition": {
      "type": "boolean",
      "description": ""
    }
  }
}
object PropertyName
{
  "type": "object",
  "example": {
    "name": "my_custom_property"
  },
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "my_custom_property",
      "description": "The name of the property to read or modify."
    }
  }
}
object PropertyUpdate
{
  "type": "object",
  "example": {
    "type": "enumeration",
    "label": "My Contact Property",
    "hidden": false,
    "options": [
      {
        "label": "Option A",
        "value": "A",
        "hidden": false,
        "description": "Choice number one",
        "displayOrder": 1
      },
      {
        "label": "Option B",
        "value": "B",
        "hidden": false,
        "description": "Choice number two",
        "displayOrder": 2
      }
    ],
    "fieldType": "select",
    "formField": true,
    "groupName": "contactinformation",
    "displayOrder": 2
  },
  "properties": {
    "type": {
      "enum": [
        "string",
        "number",
        "date",
        "datetime",
        "enumeration",
        "bool"
      ],
      "type": "string",
      "example": "enumeration",
      "description": "The data type of the property."
    },
    "label": {
      "type": "string",
      "example": "My Contact Property",
      "description": "A human-readable property label that will be shown in HubSpot."
    },
    "hidden": {
      "type": "boolean",
      "example": false,
      "description": "If true, the property won't be visible and can't be used in HubSpot."
    },
    "options": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OptionInput"
      },
      "example": [
        {
          "label": "Option A",
          "value": "A",
          "hidden": false,
          "description": "Choice number one",
          "displayOrder": 1
        },
        {
          "label": "Option B",
          "value": "B",
          "hidden": false,
          "description": "Choice number two",
          "displayOrder": 2
        }
      ],
      "description": "A list of valid options for the property."
    },
    "fieldType": {
      "enum": [
        "textarea",
        "text",
        "date",
        "file",
        "number",
        "select",
        "radio",
        "checkbox",
        "booleancheckbox",
        "calculation_equation"
      ],
      "type": "string",
      "example": "select",
      "description": "Controls how the property appears in HubSpot."
    },
    "formField": {
      "type": "boolean",
      "example": true,
      "description": "Whether or not the property can be used in a HubSpot form."
    },
    "groupName": {
      "type": "string",
      "example": "contactinformation",
      "description": "The name of the property group the property belongs to."
    },
    "description": {
      "type": "string",
      "description": "A description of the property that will be shown as help text in HubSpot."
    },
    "displayOrder": {
      "type": "integer",
      "format": "int32",
      "example": 2,
      "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the Property to be displayed after any positive values."
    },
    "calculationFormula": {
      "type": "string",
      "description": "Represents a formula that is used to compute a calculated property."
    }
  }
}
object PublicAssociationsForObject
{
  "type": "object",
  "required": [
    "to",
    "types"
  ],
  "properties": {
    "to": {
      "$ref": "#/components/schemas/PublicObjectId"
    },
    "types": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AssociationSpec"
      }
    }
  }
}
object PublicAuditInfo
{
  "type": "object",
  "required": [
    "action",
    "identifier",
    "portalId"
  ],
  "properties": {
    "action": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "portalId": {
      "type": "integer",
      "format": "int32"
    },
    "rawObject": {
      "type": "object",
      "properties": {}
    },
    "timestamp": {
      "type": "string",
      "format": "date-time"
    },
    "fromUserId": {
      "type": "integer",
      "format": "int32"
    },
    "identifier": {
      "type": "string"
    }
  }
}
object PublicGdprDeleteInput
{
  "type": "object",
  "required": [
    "objectId"
  ],
  "properties": {
    "objectId": {
      "type": "string"
    },
    "idProperty": {
      "type": "string"
    }
  }
}
object PublicImportError
{
  "type": "object",
  "required": [
    "createdAt",
    "errorType",
    "id",
    "sourceData"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "createdAt": {
      "type": "integer",
      "format": "int32"
    },
    "errorType": {
      "enum": [
        "INCORRECT_NUMBER_OF_COLUMNS",
        "INVALID_OBJECT_ID",
        "INVALID_ASSOCIATION_IDENTIFIER",
        "NO_OBJECT_ID_FROM_ASSOCIATION_IDENTIFIER",
        "MULTIPLE_COMPANIES_WITH_THIS_DOMAIN",
        "PROPERTY_DEFINITION_NOT_FOUND",
        "PROPERTY_VALUE_NOT_FOUND",
        "COULD_NOT_FIND_OWNER",
        "MULTIPLE_OWNERS_FOUND",
        "COULD_NOT_FIND_BUSINESS_UNIT",
        "COULD_NOT_PARSE_NUMBER",
        "COULD_NOT_PARSE_DATE",
        "COULD_NOT_PARSE_TERM",
        "OUTSIDE_VALID_TIME_RANGE",
        "OUTSIDE_VALID_TERM_RANGE",
        "COULD_NOT_PARSE_ROW",
        "INVALID_ENUMERATION_OPTION",
        "AMBIGUOUS_ENUMERATION_OPTION",
        "FAILED_VALIDATION",
        "FAILED_TO_CREATE_ASSOCIATION",
        "FILE_NOT_FOUND",
        "INVALID_COLUMN_CONFIGURATION",
        "INVALID_FILE_TYPE",
        "INVALID_SPREADSHEET",
        "INVALID_SHEET_COUNT",
        "FAILED_TO_PROCESS_OBJECT_WITH_EMPTY_PROPERTY_VALUES",
        "UNKNOWN_BAD_REQUEST",
        "GDPR_BLACKLISTED_EMAIL",
        "DUPLICATE_ASSOCIATION_ID",
        "LIMIT_EXCEEDED",
        "PORTAL_WIDE_CUSTOM_OBJECT_LIMIT_EXCEEDED",
        "INVALID_ALTERNATE_ID",
        "INVALID_EMAIL",
        "INVALID_DOMAIN",
        "DUPLICATE_ROW_CONTENT",
        "INVALID_NUMBER_SIZE",
        "UNKNOWN_ERROR",
        "FAILED_TO_OPT_OUT_CONTACT",
        "INVALID_REQUIRED_PROPERTY",
        "MISSING_REQUIRED_PROPERTY",
        "DUPLICATE_ALTERNATE_ID",
        "DUPLICATE_OBJECT_ID",
        "DUPLICATE_UNIQUE_PROPERTY_VALUE",
        "BLANK_VALUE_PROVIDED",
        "UNKNOWN_ASSOCIATION_RECORD_ID",
        "INVALID_RECORD_ID",
        "DUPLICATE_RECORD_ID",
        "INVALID_CUSTOM_PROPERTY_VALIDATION",
        "CREATE_ONLY_IMPORT",
        "UPDATE_ONLY_IMPORT",
        "COLUMN_TOO_LARGE",
        "ROW_DATA_TOO_LARGE",
        "INVALID_EVENT_TIMESTAMP",
        "INVALID_EVENT",
        "DUPLICATE_EVENT",
        "MISSING_EVENT_DEFINITION"
      ],
      "type": "string"
    },
    "objectType": {
      "enum": [
        "CONTACT",
        "COMPANY",
        "DEAL",
        "ENGAGEMENT",
        "TICKET",
        "OWNER",
        "PRODUCT",
        "LINE_ITEM",
        "BET_DELIVERABLE_SERVICE",
        "CONTENT",
        "CONVERSATION",
        "BET_ALERT",
        "PORTAL",
        "QUOTE",
        "FORM_SUBMISSION_INBOUNDDB",
        "QUOTA",
        "UNSUBSCRIBE",
        "COMMUNICATION",
        "FEEDBACK_SUBMISSION",
        "ATTRIBUTION",
        "SALESFORCE_SYNC_ERROR",
        "RESTORABLE_CRM_OBJECT",
        "HUB",
        "LANDING_PAGE",
        "PRODUCT_OR_FOLDER",
        "TASK",
        "FORM",
        "MARKETING_EMAIL",
        "AD_ACCOUNT",
        "AD_CAMPAIGN",
        "AD_GROUP",
        "AD",
        "KEYWORD",
        "CAMPAIGN",
        "SOCIAL_CHANNEL",
        "SOCIAL_POST",
        "SITE_PAGE",
        "BLOG_POST",
        "IMPORT",
        "EXPORT",
        "CTA",
        "TASK_TEMPLATE",
        "AUTOMATION_PLATFORM_FLOW",
        "OBJECT_LIST",
        "NOTE",
        "MEETING_EVENT",
        "CALL",
        "EMAIL",
        "PUBLISHING_TASK",
        "CONVERSATION_SESSION",
        "CONTACT_CREATE_ATTRIBUTION",
        "INVOICE",
        "MARKETING_EVENT",
        "CONVERSATION_INBOX",
        "CHATFLOW",
        "MEDIA_BRIDGE",
        "SEQUENCE",
        "SEQUENCE_STEP",
        "FORECAST",
        "SNIPPET",
        "TEMPLATE",
        "DEAL_CREATE_ATTRIBUTION",
        "QUOTE_TEMPLATE",
        "QUOTE_MODULE",
        "QUOTE_MODULE_FIELD",
        "QUOTE_FIELD",
        "SEQUENCE_ENROLLMENT",
        "SUBSCRIPTION",
        "ACCEPTANCE_TEST",
        "SOCIAL_BROADCAST",
        "DEAL_SPLIT",
        "DEAL_REGISTRATION",
        "GOAL_TARGET",
        "GOAL_TARGET_GROUP",
        "PORTAL_OBJECT_SYNC_MESSAGE",
        "FILE_MANAGER_FILE",
        "FILE_MANAGER_FOLDER",
        "SEQUENCE_STEP_ENROLLMENT",
        "APPROVAL",
        "APPROVAL_STEP",
        "CTA_VARIANT",
        "SALES_DOCUMENT",
        "DISCOUNT",
        "FEE",
        "TAX",
        "MARKETING_CALENDAR",
        "PERMISSIONS_TESTING",
        "PRIVACY_SCANNER_COOKIE",
        "DATA_SYNC_STATE",
        "WEB_INTERACTIVE",
        "PLAYBOOK",
        "FOLDER",
        "PLAYBOOK_QUESTION",
        "PLAYBOOK_SUBMISSION",
        "PLAYBOOK_SUBMISSION_ANSWER",
        "COMMERCE_PAYMENT",
        "GSC_PROPERTY",
        "SOX_PROTECTED_DUMMY_TYPE",
        "BLOG_LISTING_PAGE",
        "QUARANTINED_SUBMISSION",
        "PAYMENT_SCHEDULE",
        "PAYMENT_SCHEDULE_INSTALLMENT",
        "MARKETING_CAMPAIGN_UTM",
        "DISCOUNT_TEMPLATE",
        "DISCOUNT_CODE",
        "FEEDBACK_SURVEY",
        "CMS_URL",
        "SALES_TASK",
        "SALES_WORKLOAD",
        "USER",
        "POSTAL_MAIL",
        "SCHEMAS_BACKEND_TEST",
        "PAYMENT_LINK",
        "SUBMISSION_TAG",
        "CAMPAIGN_STEP",
        "SCHEDULING_PAGE",
        "SOX_PROTECTED_TEST_TYPE",
        "ORDER",
        "MARKETING_SMS",
        "PARTNER_ACCOUNT",
        "CAMPAIGN_TEMPLATE",
        "CAMPAIGN_TEMPLATE_STEP",
        "PLAYLIST",
        "CLIP",
        "CAMPAIGN_BUDGET_ITEM",
        "CAMPAIGN_SPEND_ITEM",
        "MIC",
        "CONTENT_AUDIT",
        "CONTENT_AUDIT_PAGE",
        "PLAYLIST_FOLDER",
        "LEAD",
        "ABANDONED_CART",
        "EXTERNAL_WEB_URL",
        "VIEW",
        "VIEW_BLOCK",
        "ROSTER",
        "CART",
        "AUTOMATION_PLATFORM_FLOW_ACTION",
        "SOCIAL_PROFILE",
        "PARTNER_CLIENT",
        "ROSTER_MEMBER",
        "MARKETING_EVENT_ATTENDANCE",
        "ALL_PAGES",
        "AI_FORECAST",
        "CRM_PIPELINES_DUMMY_TYPE",
        "UNKNOWN"
      ],
      "type": "string"
    },
    "sourceData": {
      "$ref": "#/components/schemas/ImportRowCore"
    },
    "extraContext": {
      "type": "string"
    },
    "invalidValue": {
      "type": "string"
    },
    "objectTypeId": {
      "type": "string"
    },
    "knownColumnNumber": {
      "type": "integer",
      "format": "int32"
    }
  }
}
object PublicImportMetadata
{
  "type": "object",
  "example": {
    "fileIds": [
      "3579849"
    ],
    "counters": {
      "TOTAL_ROWS": 2,
      "CREATED_OBJECTS": 1,
      "UPDATED_OBJECTS": 1,
      "UNIQUE_OBJECTS_WRITTEN": 2,
      "PROPERTY_VALUES_EMITTED": 2
    },
    "objectLists": [
      {
        "listId": "3",
        "objectType": "contacts"
      }
    ]
  },
  "required": [
    "counters",
    "fileIds",
    "objectLists"
  ],
  "properties": {
    "fileIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "3579849"
      ],
      "description": "The IDs of files uploaded in the File Manager API."
    },
    "counters": {
      "type": "object",
      "example": {
        "TOTAL_ROWS": 2,
        "CREATED_OBJECTS": 1,
        "UPDATED_OBJECTS": 1,
        "UNIQUE_OBJECTS_WRITTEN": 2,
        "PROPERTY_VALUES_EMITTED": 2
      },
      "description": "Summarized outcomes of each row a developer attempted to import into HubSpot.",
      "additionalProperties": {
        "type": "integer",
        "format": "int32"
      }
    },
    "objectLists": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicObjectListRecord"
      },
      "example": [
        {
          "listId": "3",
          "objectType": "contacts"
        }
      ],
      "description": "The lists containing the imported objects."
    }
  },
  "description": "An object detailing a summary of the import record outputs"
}
object PublicImportResponse
{
  "type": "object",
  "example": {
    "id": "1471",
    "state": "DONE",
    "metadata": {
      "fileIds": [
        "32938649"
      ],
      "counters": {
        "TOTAL_ROWS": 1000,
        "CREATED_OBJECTS": 1000,
        "UNIQUE_OBJECTS_WRITTEN": 1000,
        "PROPERTY_VALUES_EMITTED": 1000
      },
      "objectLists": [
        {
          "listId": "3",
          "objectType": "contacts"
        }
      ]
    },
    "createdAt": "2020-01-14T22:45:00.153Z",
    "updatedAt": "2020-01-14T22:45:00.153Z",
    "optOutImport": false
  },
  "required": [
    "createdAt",
    "id",
    "metadata",
    "optOutImport",
    "state",
    "updatedAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "1471"
    },
    "state": {
      "enum": [
        "STARTED",
        "PROCESSING",
        "DONE",
        "FAILED",
        "CANCELED",
        "DEFERRED",
        "REVERTED"
      ],
      "type": "string",
      "example": "DONE",
      "description": "The status of the import."
    },
    "metadata": {
      "$ref": "#/components/schemas/PublicImportMetadata"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "importName": {
      "type": "string"
    },
    "importSource": {
      "enum": [
        "API",
        "CRM_UI",
        "IMPORT",
        "MOBILE_ANDROID",
        "MOBILE_IOS",
        "SALESFORCE"
      ],
      "type": "string"
    },
    "optOutImport": {
      "type": "boolean",
      "example": false,
      "description": "Whether or not the import is a list of people disqualified from receiving emails."
    },
    "importTemplate": {
      "$ref": "#/components/schemas/ImportTemplate"
    },
    "importRequestJson": {
      "type": "object",
      "properties": {}
    }
  },
  "description": "A current summary of the import, whether complete or not."
}
object PublicMergeInput
{
  "type": "object",
  "required": [
    "objectIdToMerge",
    "primaryObjectId"
  ],
  "properties": {
    "objectIdToMerge": {
      "type": "string"
    },
    "primaryObjectId": {
      "type": "string"
    }
  }
}
object PublicObjectId
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string"
    }
  }
}
object PublicObjectListRecord
{
  "type": "object",
  "example": {
    "listId": "3",
    "objectType": "contacts"
  },
  "required": [
    "listId",
    "objectType"
  ],
  "properties": {
    "listId": {
      "type": "string",
      "example": "3",
      "description": "The ID of the list containing the imported objects."
    },
    "objectType": {
      "type": "string",
      "example": "contacts",
      "description": "The type of object contained in the list."
    }
  },
  "description": "A summary detailing which list contains the imported objects."
}
object PublicObjectSearchRequest
{
  "type": "object",
  "required": [
    "after",
    "filterGroups",
    "limit",
    "properties",
    "sorts"
  ],
  "properties": {
    "after": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "format": "int32"
    },
    "query": {
      "type": "string"
    },
    "sorts": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "properties": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "filterGroups": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/FilterGroup"
      }
    }
  }
}
object PublicOwner
{
  "type": "object",
  "example": {
    "id": "6166860",
    "email": "jsmith@example.com",
    "teams": [
      {
        "id": "178588X",
        "name": "West Coast Sales",
        "primary": true
      },
      {
        "id": "178590X",
        "name": "California Sales",
        "primary": false
      }
    ],
    "userId": 1296619,
    "archived": false,
    "lastName": "Smith",
    "createdAt": "2019-10-30T03:30:17.883Z",
    "firstName": "John",
    "updatedAt": "2019-12-07T16:50:06.678Z"
  },
  "required": [
    "archived",
    "createdAt",
    "id",
    "updatedAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "6166860"
    },
    "email": {
      "type": "string",
      "example": "jsmith@example.com"
    },
    "teams": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicTeam"
      },
      "example": [
        {
          "id": "178588",
          "name": "West Coast Sales",
          "primary": true
        },
        {
          "id": "178590",
          "name": "California Sales",
          "primary": false
        }
      ]
    },
    "userId": {
      "type": "integer",
      "format": "int32",
      "example": 1296619
    },
    "archived": {
      "type": "boolean",
      "example": false
    },
    "lastName": {
      "type": "string",
      "example": "Smith"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "firstName": {
      "type": "string",
      "example": "John"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
object PublicTeam
{
  "type": "object",
  "required": [
    "id",
    "name",
    "primary"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "primary": {
      "type": "boolean"
    }
  }
}
object RecordingSettingsPatchRequest
{
  "type": "object",
  "properties": {
    "urlToRetrieveAuthedRecording": {
      "type": "string"
    }
  }
}
object RecordingSettingsRequest
{
  "type": "object",
  "required": [
    "urlToRetrieveAuthedRecording"
  ],
  "properties": {
    "urlToRetrieveAuthedRecording": {
      "type": "string"
    }
  }
}
object RecordingSettingsResponse
{
  "type": "object",
  "required": [
    "urlToRetrieveAuthedRecording"
  ],
  "properties": {
    "urlToRetrieveAuthedRecording": {
      "type": "string"
    }
  }
}
object SettingsPatchRequest
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The URL to your phone/calling UI, built with the [Calling SDK](#)."
    },
    "name": {
      "type": "string",
      "description": "The name of your calling service to display to users."
    },
    "width": {
      "type": "integer",
      "format": "int32",
      "description": "The target width of the iframe that will contain your phone/calling UI."
    },
    "height": {
      "type": "integer",
      "format": "int32",
      "description": "The target height of the iframe that will contain your phone/calling UI."
    },
    "isReady": {
      "type": "boolean",
      "description": "When true, your service will appear as an option under the *Call* action in contact records of connected accounts."
    },
    "supportsCustomObjects": {
      "type": "boolean",
      "description": "When true, you are indicating that your service is compatible with engagement v2 service and can be used with custom objects."
    }
  },
  "description": "Settings update request"
}
object SettingsRequest
{
  "type": "object",
  "example": {
    "url": "https://www.example.com/hubspot/iframe",
    "name": "HubPhone",
    "width": 200,
    "height": 350,
    "isReady": true,
    "supportsCustomObjects": true
  },
  "required": [
    "name",
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "example": "https://www.example.com/hubspot/iframe",
      "description": "The URL to your phone/calling UI, built with the [Calling SDK](#)."
    },
    "name": {
      "type": "string",
      "example": "HubPhone",
      "description": "The name of your calling service to display to users."
    },
    "width": {
      "type": "integer",
      "format": "int32",
      "example": 200,
      "description": "The target width of the iframe that will contain your phone/calling UI."
    },
    "height": {
      "type": "integer",
      "format": "int32",
      "example": 350,
      "description": "The target height of the iframe that will contain your phone/calling UI."
    },
    "isReady": {
      "type": "boolean",
      "example": true,
      "description": "When true, your service will appear as an option under the *Call* action in contact records of connected accounts."
    },
    "supportsCustomObjects": {
      "type": "boolean",
      "example": true,
      "description": "When true, you are indicating that your service is compatible with engagement v2 service and can be used with custom objects."
    }
  },
  "description": "Settings create request"
}
object SettingsResponse
{
  "type": "object",
  "required": [
    "createdAt",
    "height",
    "isReady",
    "name",
    "supportsCustomObjects",
    "updatedAt",
    "url",
    "width"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The URL to your phone/calling UI, built with the [Calling SDK](#)."
    },
    "name": {
      "type": "string",
      "description": "The name of your calling service to display to users."
    },
    "width": {
      "type": "integer",
      "format": "int32",
      "description": "The target width of the iframe that will contain your phone/calling UI."
    },
    "height": {
      "type": "integer",
      "format": "int32",
      "description": "The target height of the iframe that will contain your phone/calling UI."
    },
    "isReady": {
      "type": "boolean",
      "description": "When true, your service will appear as an option under the *Call* action in contact records of connected accounts."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "When this calling extension was created."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "The last time the settings for this calling extension were modified."
    },
    "supportsCustomObjects": {
      "type": "boolean",
      "description": "When true, you are indicating that your service is compatible with engagement v2 service and can be used with custom objects."
    }
  },
  "description": "Current settings state"
}
object SimplePublicObject
{
  "type": "object",
  "example": {
    "id": "512",
    "archived": false,
    "createdAt": "2019-10-30T03:30:17.883Z",
    "updatedAt": "2019-12-07T16:50:06.678Z",
    "properties": {
      "city": "Cambridge",
      "name": "1 year implementation consultation",
      "email": "bcooper@biglytics.net",
      "phone": "(877) 929-0687",
      "price": "6000.00",
      "state": "Massachusetts",
      "amount": "1500.00",
      "domain": "biglytics.net",
      "hs_sku": "191902",
      "company": "Biglytics",
      "subject": "troubleshoot report",
      "website": "biglytics.net",
      "dealname": "Custom data integrations",
      "hs_terms": "discount provided, two year term with customer",
      "hs_title": "Services Proposal",
      "hs_value": "2",
      "industry": "Technology",
      "lastname": "Cooper",
      "pipeline": "default",
      "quantity": "2",
      "closedate": "2019-12-07T16:50:06.678Z",
      "dealstage": "presentationscheduled",
      "firstname": "Bryan",
      "hs_status": "PENDING_APPROVAL",
      "createdate": "2019-10-30T03:30:17.883Z",
      "hs_content": "What a great product!",
      "description": "Onboarding service for data product",
      "hs_pipeline": "support_pipeline",
      "hs_survey_id": "5",
      "hs_createdate": "2019-10-30T03:30:17.883Z",
      "hs_product_id": "191902",
      "property_date": "1572480000000",
      "hs_survey_name": "Customer Satisfaction Survey",
      "hs_survey_type": "CSAT",
      "property_radio": "option_1",
      "hs_ingestion_id": "fd61286d-102b-4fcc-b486-3486b4ceafc2",
      "hs_quote_amount": "3000.00",
      "hs_quote_number": "20200916-092813983",
      "property_number": "17",
      "property_string": "value",
      "hubspot_owner_id": "910901",
      "lastmodifieddate": "2019-12-07T16:50:06.678Z",
      "hs_pipeline_stage": "open",
      "hs_response_group": "PROMOTER",
      "hs_survey_channel": "EMAIL",
      "property_checkbox": "false",
      "property_dropdown": "choice_b",
      "hs_expiration_date": "2020-09-06T02:43:14.491Z",
      "hs_submission_name": "Customer Satisfaction Survey - bcooper@biglytics.net",
      "hs_ticket_priority": "HIGH",
      "hs_lastmodifieddate": "2019-12-07T16:50:06.678Z",
      "hs_cost_of_goods_sold": "600.00",
      "recurringbillingfrequency": "monthly",
      "hs_recurring_billing_period": "24",
      "property_multiple_checkboxes": "chocolate;strawberry"
    }
  },
  "required": [
    "properties",
    "createdAt",
    "id",
    "updatedAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "512"
    },
    "archived": {
      "type": "boolean",
      "example": false
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "archivedAt": {
      "type": "string",
      "format": "date-time"
    },
    "properties": {
      "type": "object",
      "example": {
        "name": "1 year implementation consultation",
        "price": "6000.00",
        "hs_sku": "191902",
        "quantity": "2",
        "description": "Onboarding service for data product",
        "hs_product_id": "191902",
        "property_date": "1572480000000",
        "property_radio": "option_1",
        "property_number": "17",
        "property_string": "value",
        "property_checkbox": "false",
        "property_dropdown": "choice_b",
        "hs_cost_of_goods_sold": "600.00",
        "recurringbillingfrequency": "monthly",
        "hs_recurring_billing_period": "P24M",
        "property_multiple_checkboxes": "chocolate;strawberry"
      },
      "additionalProperties": {
        "type": "string",
        "nullable": true
      }
    },
    "propertiesWithHistory": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ValueWithTimestamp"
        }
      }
    }
  }
}
object SimplePublicObjectBatchInput
{
  "type": "object",
  "example": {
    "id": "1",
    "properties": {
      "city": "Cambridge",
      "name": "1 year implementation consultation",
      "email": "bcooper@biglytics.net",
      "phone": "(877) 929-0687",
      "price": "6000.00",
      "state": "Massachusetts",
      "amount": "1500.00",
      "domain": "biglytics.net",
      "hs_sku": "191902",
      "company": "Biglytics",
      "subject": "troubleshoot report",
      "website": "biglytics.net",
      "dealname": "Custom data integrations",
      "hs_title": "Pawnee Paper Deal",
      "industry": "Technology",
      "lastname": "Cooper",
      "pipeline": "default",
      "quantity": "2",
      "closedate": "2019-12-07T16:50:06.678Z",
      "dealstage": "presentationscheduled",
      "firstname": "Bryan",
      "hs_status": "PENDING_APPROVAL",
      "description": "Onboarding service for data product",
      "hs_pipeline": "support_pipeline",
      "hs_product_id": "191902",
      "hubspot_owner_id": "910901",
      "hs_pipeline_stage": "open",
      "hs_ticket_priority": "HIGH",
      "hs_cost_of_goods_sold": "600.00",
      "recurringbillingfrequency": "monthly",
      "hs_recurring_billing_period": "24"
    }
  },
  "required": [
    "properties",
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"
    },
    "idProperty": {
      "type": "string",
      "example": "my_unique_property_name",
      "description": "The name of the unique property"
    },
    "properties": {
      "type": "object",
      "example": {
        "city": "Cambridge",
        "name": "1 year implementation consultation",
        "email": "bcooper@biglytics.net",
        "phone": "(877) 929-0687",
        "price": "6000.00",
        "state": "Massachusetts",
        "amount": "1500.00",
        "domain": "biglytics.net",
        "hs_sku": "191902",
        "company": "Biglytics",
        "subject": "troubleshoot report",
        "website": "biglytics.net",
        "dealname": "Custom data integrations",
        "industry": "Technology",
        "lastname": "Cooper",
        "pipeline": "default",
        "quantity": "2",
        "closedate": "2019-12-07T16:50:06.678Z",
        "dealstage": "presentationscheduled",
        "firstname": "Bryan",
        "description": "Onboarding service for data product",
        "hs_pipeline": "support_pipeline",
        "hs_product_id": "191902",
        "hubspot_owner_id": "910901",
        "hs_pipeline_stage": "open",
        "hs_ticket_priority": "HIGH",
        "hs_cost_of_goods_sold": "600.00",
        "recurringbillingfrequency": "monthly",
        "hs_recurring_billing_period": "P24M"
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  }
}
object SimplePublicObjectId
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string"
    }
  }
}
object SimplePublicObjectInput
{
  "type": "object",
  "example": {
    "properties": {
      "city": "Cambridge",
      "name": "1 year implementation consultation",
      "email": "bcooper@biglytics.net",
      "phone": "(877) 929-0687",
      "price": "6000.00",
      "state": "Massachusetts",
      "amount": "1500.00",
      "domain": "biglytics.net",
      "hs_sku": "191902",
      "company": "Biglytics",
      "subject": "troubleshoot report",
      "website": "biglytics.net",
      "dealname": "Custom data integrations",
      "hs_title": "Pawnee Paper Deal",
      "industry": "Technology",
      "lastname": "Cooper",
      "pipeline": "default",
      "quantity": "2",
      "closedate": "2019-12-07T16:50:06.678Z",
      "dealstage": "presentationscheduled",
      "firstname": "Bryan",
      "hs_status": "PENDING_APPROVAL",
      "description": "Onboarding service for data product",
      "hs_pipeline": "support_pipeline",
      "hs_product_id": "191902",
      "property_date": "1572480000000",
      "property_radio": "option_1",
      "property_number": "17",
      "property_string": "value",
      "hubspot_owner_id": "910901",
      "hs_pipeline_stage": "open",
      "property_checkbox": "false",
      "property_dropdown": "choice_b",
      "hs_ticket_priority": "HIGH",
      "hs_cost_of_goods_sold": "600.00",
      "recurringbillingfrequency": "monthly",
      "hs_recurring_billing_period": "24",
      "property_multiple_checkboxes": "chocolate;strawberry"
    },
    "associations": [
      {
        "to": {
          "id": "101"
        },
        "types": [
          {
            "associationTypeId": 2,
            "associationCategory": "HUBSPOT_DEFINED"
          }
        ]
      }
    ]
  },
  "required": [
    "properties"
  ],
  "properties": {
    "properties": {
      "type": "object",
      "example": {
        "name": "1 year implementation consultation",
        "price": "6000.00",
        "quantity": "2",
        "description": "A new product description",
        "hs_product_id": "191902",
        "property_date": "1572480000000",
        "property_radio": "option_1",
        "property_number": "17",
        "property_string": "value",
        "property_checkbox": "false",
        "property_dropdown": "choice_b",
        "hs_cost_of_goods_sold": "700.00",
        "recurringbillingfrequency": "monthly",
        "hs_recurring_billing_period": "P24M",
        "property_multiple_checkboxes": "chocolate;strawberry"
      },
      "description": "",
      "additionalProperties": {
        "type": "string"
      }
    }
  }
}
object SimplePublicObjectInputForCreate
{
  "type": "object",
  "example": {
    "properties": {
      "city": "Cambridge",
      "name": "1 year implementation consultation",
      "email": "bcooper@biglytics.net",
      "phone": "(877) 929-0687",
      "price": "6000.00",
      "state": "Massachusetts",
      "amount": "1500.00",
      "domain": "biglytics.net",
      "hs_sku": "191902",
      "company": "Biglytics",
      "subject": "troubleshoot report",
      "website": "biglytics.net",
      "dealname": "Custom data integrations",
      "hs_title": "Pawnee Paper Deal",
      "industry": "Technology",
      "lastname": "Cooper",
      "pipeline": "default",
      "quantity": "2",
      "closedate": "2019-12-07T16:50:06.678Z",
      "dealstage": "presentationscheduled",
      "firstname": "Bryan",
      "hs_status": "PENDING_APPROVAL",
      "description": "Onboarding service for data product",
      "hs_pipeline": "support_pipeline",
      "hs_product_id": "191902",
      "hubspot_owner_id": "910901",
      "hs_pipeline_stage": "open",
      "hs_ticket_priority": "HIGH",
      "hs_cost_of_goods_sold": "600.00",
      "recurringbillingfrequency": "monthly",
      "hs_recurring_billing_period": "24"
    },
    "associations": [
      {
        "to": {
          "id": "101X"
        },
        "types": [
          {
            "associationTypeId": 2,
            "associationCategory": "HUBSPOT_DEFINED"
          }
        ]
      }
    ]
  },
  "required": [
    "properties",
    "associations"
  ],
  "properties": {
    "properties": {
      "type": "object",
      "example": {
        "city": "Cambridge",
        "name": "1 year implementation consultation",
        "email": "bcooper@biglytics.net",
        "phone": "(877) 929-0687",
        "price": "6000.00",
        "state": "Massachusetts",
        "amount": "1500.00",
        "domain": "biglytics.net",
        "hs_sku": "191902",
        "company": "Biglytics",
        "subject": "troubleshoot report",
        "website": "biglytics.net",
        "dealname": "Custom data integrations",
        "industry": "Technology",
        "lastname": "Cooper",
        "pipeline": "default",
        "quantity": "2",
        "closedate": "2019-12-07T16:50:06.678Z",
        "dealstage": "presentationscheduled",
        "firstname": "Bryan",
        "description": "Onboarding service for data product",
        "hs_pipeline": "support_pipeline",
        "hs_product_id": "191902",
        "hubspot_owner_id": "910901",
        "hs_pipeline_stage": "open",
        "hs_ticket_priority": "HIGH",
        "hs_cost_of_goods_sold": "600.00",
        "recurringbillingfrequency": "monthly",
        "hs_recurring_billing_period": "P24M"
      },
      "description": "",
      "additionalProperties": {
        "type": "string"
      }
    },
    "associations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicAssociationsForObject"
      }
    }
  }
}
object SimplePublicObjectWithAssociations
{
  "type": "object",
  "example": {
    "properties": {
      "city": "Cambridge",
      "name": "1 year implementation consultation",
      "email": "bcooper@biglytics.net",
      "phone": "(877) 929-0687",
      "price": "6000.00",
      "state": "Massachusetts",
      "amount": "1500.00",
      "domain": "biglytics.net",
      "hs_sku": "191902",
      "company": "Biglytics",
      "subject": "troubleshoot report",
      "website": "biglytics.net",
      "dealname": "Custom data integrations",
      "hs_terms": "discount provided, two year term with customer",
      "hs_title": "Services Proposal",
      "hs_value": "2",
      "industry": "Technology",
      "lastname": "Cooper",
      "pipeline": "default",
      "quantity": "2",
      "closedate": "2019-12-07T16:50:06.678Z",
      "dealstage": "presentationscheduled",
      "firstname": "Bryan",
      "hs_status": "PENDING_APPROVAL",
      "createdate": "2019-10-30T03:30:17.883Z",
      "hs_content": "What a great product!",
      "description": "Onboarding service for data product",
      "hs_pipeline": "support_pipeline",
      "hs_survey_id": "5",
      "hs_createdate": "2019-10-30T03:30:17.883Z",
      "hs_product_id": "191902",
      "hs_survey_name": "Customer Satisfaction Survey",
      "hs_survey_type": "CSAT",
      "hs_ingestion_id": "fd61286d-102b-4fcc-b486-3486b4ceafc2",
      "hs_quote_amount": "3000.00",
      "hs_quote_number": "20200916-092813983",
      "hubspot_owner_id": "910901",
      "lastmodifieddate": "2019-12-07T16:50:06.678Z",
      "hs_pipeline_stage": "open",
      "hs_response_group": "PROMOTER",
      "hs_survey_channel": "EMAIL",
      "hs_expiration_date": "2020-09-06T02:43:14.491Z",
      "hs_submission_name": "Customer Satisfaction Survey - bcooper@biglytics.net",
      "hs_ticket_priority": "HIGH",
      "hs_lastmodifieddate": "2019-12-07T16:50:06.678Z",
      "hs_cost_of_goods_sold": "600.00",
      "recurringbillingfrequency": "monthly",
      "hs_recurring_billing_period": "24"
    }
  },
  "required": [
    "createdAt",
    "id",
    "properties",
    "updatedAt"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "archived": {
      "type": "boolean"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "archivedAt": {
      "type": "string",
      "format": "date-time"
    },
    "properties": {
      "type": "object",
      "example": {
        "city": "Cambridge",
        "name": "1 year implementation consultation",
        "email": "bcooper@biglytics.net",
        "phone": "(877) 929-0687",
        "price": "6000.00",
        "state": "Massachusetts",
        "amount": "1500.00",
        "domain": "biglytics.net",
        "company": "Biglytics",
        "subject": "troubleshoot report",
        "website": "biglytics.net",
        "dealname": "Custom data integrations",
        "industry": "Technology",
        "lastname": "Cooper",
        "pipeline": "default",
        "quantity": "2",
        "closedate": "2019-12-07T16:50:06.678Z",
        "dealstage": "presentationscheduled",
        "firstname": "Bryan",
        "description": "A new product description",
        "hs_pipeline": "support_pipeline",
        "hs_product_id": "191902",
        "hubspot_owner_id": "910901",
        "hs_pipeline_stage": "open",
        "hs_ticket_priority": "HIGH",
        "hs_cost_of_goods_sold": "700.00",
        "recurringbillingfrequency": "monthly",
        "hs_recurring_billing_period": "P24M"
      },
      "additionalProperties": {
        "type": "string",
        "nullable": true
      }
    },
    "associations": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/components/schemas/CollectionResponseAssociatedId"
      }
    },
    "propertiesWithHistory": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ValueWithTimestamp"
        }
      }
    }
  }
}
object StandardError
{
  "type": "object",
  "required": [
    "category",
    "context",
    "errors",
    "links",
    "message",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "links": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ErrorDetail"
      }
    },
    "status": {
      "type": "string"
    },
    "context": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "message": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "subCategory": {
      "type": "object",
      "properties": {}
    }
  }
}
object TimelineEvent
{
  "type": "object",
  "example": {
    "email": "art3mis-pup@petspot.com",
    "tokens": {
      "petAge": 3,
      "petName": "Art3mis",
      "petColor": "black"
    },
    "extraData": {
      "questions": [
        {
          "answer": "Bark!",
          "question": "Who's a good girl?"
        },
        {
          "answer": "Woof!",
          "question": "Do you wanna go on a walk?"
        }
      ]
    },
    "timelineIFrame": {
      "url": "https://my.petspot.com/pets/Art3mis",
      "width": 600,
      "height": 400,
      "linkLabel": "View Art3mis",
      "headerLabel": "Art3mis dog"
    },
    "eventTemplateId": "1001298"
  },
  "required": [
    "eventTemplateId",
    "tokens"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness."
    },
    "utk": {
      "type": "string",
      "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie."
    },
    "email": {
      "type": "string",
      "example": "art3mis-pup@petspot.com",
      "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)."
    },
    "domain": {
      "type": "string",
      "description": "The event domain (often paired with utk)."
    },
    "tokens": {
      "type": "object",
      "example": {
        "petAge": 3,
        "petName": "Art3mis",
        "petColor": "black"
      },
      "description": "A collection of token keys and values associated with the template tokens.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "objectId": {
      "type": "string",
      "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)."
    },
    "extraData": {
      "type": "object",
      "example": {
        "questions": [
          {
            "answer": "Bark!",
            "question": "Who's a good girl?"
          },
          {
            "answer": "Woof!",
            "question": "Do you wanna go on a walk?"
          }
        ]
      },
      "properties": {},
      "description": "Additional event-specific data that can be interpreted by the template's markdown."
    },
    "timestamp": {
      "type": "string",
      "format": "date-time",
      "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline."
    },
    "timelineIFrame": {
      "$ref": "#/components/schemas/TimelineEventIFrame"
    },
    "eventTemplateId": {
      "type": "string",
      "example": "1001298",
      "description": "The event template ID."
    }
  },
  "description": "The state of the timeline event."
}
object TimelineEventIFrame
{
  "type": "object",
  "example": {
    "url": "https://my.petspot.com/pets/Art3mis",
    "width": 600,
    "height": 400,
    "linkLabel": "View Art3mis",
    "headerLabel": "Art3mis dog"
  },
  "required": [
    "headerLabel",
    "height",
    "linkLabel",
    "url",
    "width"
  ],
  "properties": {
    "url": {
      "type": "string",
      "example": "https://my.petspot.com/pets/Art3mis",
      "description": "The URI of the iframe contents."
    },
    "width": {
      "type": "integer",
      "format": "int32",
      "example": 600,
      "description": "The width of the modal window in pixels."
    },
    "height": {
      "type": "integer",
      "format": "int32",
      "example": 400,
      "description": "The height of the modal window in pixels."
    },
    "linkLabel": {
      "type": "string",
      "example": "View Art3mis",
      "description": "The text displaying the link that will display the iframe."
    },
    "headerLabel": {
      "type": "string",
      "example": "Art3mis dog",
      "description": "The label of the modal window that displays the iframe contents."
    }
  }
}
object TimelineEventResponse
{
  "type": "object",
  "example": {
    "id": "petspot:1001298:art3mis-pup@petspot.com-004-invalid",
    "email": "art3mis-pup@petspot.com",
    "tokens": {
      "petAge": "3",
      "petName": "Art3mis",
      "petColor": "black"
    },
    "objectId": "28001",
    "extraData": {
      "questions": [
        {
          "answer": "Bark!",
          "question": "Who's a good girl?"
        },
        {
          "answer": "Woof!",
          "question": "Do you wanna go on a walk?"
        }
      ]
    },
    "timestamp": "2020-01-30T18:37:15.569Z",
    "objectType": "contacts",
    "timelineIFrame": {
      "url": "https://my.petspot.com/pets/Art3mis",
      "width": 600,
      "height": 400,
      "linkLabel": "View Art3mis",
      "headerLabel": "Art3mis dog"
    },
    "eventTemplateId": "1001298"
  },
  "required": [
    "eventTemplateId",
    "id",
    "objectType",
    "tokens"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "petspot:1001298:art3mis-pup@petspot.com-004-invalid",
      "description": "Identifier for the event. This should be unique to the app and event template. If you use the same ID for different CRM objects, the last to be processed will win and the first will not have a record. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness."
    },
    "utk": {
      "type": "string",
      "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie."
    },
    "email": {
      "type": "string",
      "example": "art3mis-pup@petspot.com",
      "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)."
    },
    "domain": {
      "type": "string",
      "description": "The event domain (often paired with utk)."
    },
    "tokens": {
      "type": "object",
      "example": {
        "petAge": "3",
        "petName": "Art3mis",
        "petColor": "black"
      },
      "description": "A collection of token keys and values associated with the template tokens.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "objectId": {
      "type": "string",
      "example": "28001",
      "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "extraData": {
      "type": "object",
      "example": {
        "questions": [
          {
            "answer": "Bark!",
            "question": "Who's a good girl?"
          },
          {
            "answer": "Woof!",
            "question": "Do you wanna go on a walk?"
          }
        ]
      },
      "properties": {},
      "description": "Additional event-specific data that can be interpreted by the template's markdown."
    },
    "timestamp": {
      "type": "string",
      "format": "date-time",
      "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline."
    },
    "objectType": {
      "type": "string",
      "example": "contacts",
      "description": "The ObjectType associated with the EventTemplate."
    },
    "timelineIFrame": {
      "$ref": "#/components/schemas/TimelineEventIFrame"
    },
    "eventTemplateId": {
      "type": "string",
      "example": "1001298",
      "description": "The event template ID."
    }
  },
  "description": "The current state of the timeline event."
}
object TimelineEventTemplate
{
  "type": "object",
  "required": [
    "id",
    "name",
    "objectType",
    "tokens"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The template ID."
    },
    "name": {
      "type": "string",
      "description": "The template name."
    },
    "tokens": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimelineEventTemplateToken"
      },
      "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time that the Event Template was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time that the Event Template was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020."
    },
    "objectType": {
      "type": "string",
      "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported."
    },
    "detailTemplate": {
      "type": "string",
      "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details."
    },
    "headerTemplate": {
      "type": "string",
      "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header."
    }
  },
  "description": "The current state of the template definition."
}
object TimelineEventTemplateCreateRequest
{
  "type": "object",
  "example": {
    "name": "PetSpot Registration",
    "tokens": [
      {
        "name": "petName",
        "type": "string",
        "label": "Pet Name"
      },
      {
        "name": "petAge",
        "type": "number",
        "label": "Pet Age"
      },
      {
        "name": "petColor",
        "type": "enumeration",
        "label": "Pet Color",
        "options": [
          {
            "label": "White",
            "value": "white"
          },
          {
            "label": "Black",
            "value": "black"
          },
          {
            "label": "Brown",
            "value": "brown"
          },
          {
            "label": "Other",
            "value": "other"
          }
        ]
      }
    ],
    "objectType": "contacts",
    "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n  **{{question}}**: {{answer}}\n{{/each}}",
    "headerTemplate": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})"
  },
  "required": [
    "name",
    "objectType",
    "tokens"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "PetSpot Registration",
      "description": "The template name."
    },
    "tokens": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimelineEventTemplateToken"
      },
      "example": [
        {
          "name": "petName",
          "type": "string",
          "label": "Pet Name"
        },
        {
          "name": "petAge",
          "type": "number",
          "label": "Pet Age"
        },
        {
          "name": "petColor",
          "type": "enumeration",
          "label": "Pet Color",
          "options": [
            {
              "label": "White",
              "value": "white"
            },
            {
              "label": "Black",
              "value": "black"
            },
            {
              "label": "Brown",
              "value": "brown"
            },
            {
              "label": "Other",
              "value": "other"
            }
          ]
        }
      ],
      "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects."
    },
    "objectType": {
      "type": "string",
      "example": "contacts",
      "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported."
    },
    "detailTemplate": {
      "type": "string",
      "example": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n  **{{question}}**: {{answer}}\n{{/each}}",
      "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details."
    },
    "headerTemplate": {
      "type": "string",
      "example": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})",
      "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header."
    }
  },
  "description": "State of the template definition being created."
}
object TimelineEventTemplateToken
{
  "type": "object",
  "example": {
    "name": "petType",
    "type": "enumeration",
    "label": "Pet Type",
    "options": [
      {
        "label": "Dog",
        "value": "dog"
      },
      {
        "label": "Cat",
        "value": "cat"
      }
    ],
    "createdAt": "2020-02-12T20:58:26Z",
    "updatedAt": "2020-02-12T20:58:26Z",
    "objectPropertyName": "customPropertyPetType"
  },
  "required": [
    "label",
    "name",
    "type"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "petType",
      "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)."
    },
    "type": {
      "enum": [
        "date",
        "enumeration",
        "number",
        "string"
      ],
      "type": "string",
      "example": "enumeration",
      "description": "The data type of the token. You can currently choose from [string, number, date, enumeration]."
    },
    "label": {
      "type": "string",
      "example": "Pet Type",
      "description": "Used for list segmentation and reporting."
    },
    "options": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimelineEventTemplateTokenOption"
      },
      "example": [
        {
          "label": "Dog",
          "value": "dog"
        },
        {
          "label": "Cat",
          "value": "cat"
        }
      ],
      "description": "If type is `enumeration`, we should have a list of options to choose from."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020."
    },
    "objectPropertyName": {
      "type": "string",
      "example": "customPropertyPetType",
      "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API."
    }
  },
  "description": "State of the token definition."
}
object TimelineEventTemplateTokenOption
{
  "type": "object",
  "required": [
    "label",
    "value"
  ],
  "properties": {
    "label": {
      "type": "string"
    },
    "value": {
      "type": "string"
    }
  }
}
object TimelineEventTemplateTokenUpdateRequest
{
  "type": "object",
  "example": {
    "label": "petType edit",
    "options": [
      {
        "label": "Dog",
        "value": "dog"
      },
      {
        "label": "Cat",
        "value": "cat"
      },
      {
        "label": "Bird",
        "value": "bird"
      }
    ]
  },
  "required": [
    "label"
  ],
  "properties": {
    "label": {
      "type": "string",
      "example": "petType edit",
      "description": "Used for list segmentation and reporting."
    },
    "options": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimelineEventTemplateTokenOption"
      },
      "example": [
        {
          "label": "Dog",
          "value": "dog"
        },
        {
          "label": "Cat",
          "value": "cat"
        },
        {
          "label": "Bird",
          "value": "bird"
        }
      ],
      "description": "If type is `enumeration`, we should have a list of options to choose from."
    },
    "objectPropertyName": {
      "type": "string",
      "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API."
    }
  },
  "description": "State of the token definition for update requests."
}
object TimelineEventTemplateUpdateRequest
{
  "type": "object",
  "example": {
    "id": "1001298X",
    "name": "PetSpot Registration",
    "tokens": [
      {
        "name": "petName",
        "type": "string",
        "label": "Pet Name",
        "objectPropertyName": "firstname"
      },
      {
        "name": "petAge",
        "type": "number",
        "label": "Pet Age"
      },
      {
        "name": "petColor",
        "type": "enumeration",
        "label": "Pet Color",
        "options": [
          {
            "label": "White",
            "value": "white"
          },
          {
            "label": "Black",
            "value": "black"
          },
          {
            "label": "Brown",
            "value": "brown"
          },
          {
            "label": "Yellow",
            "value": "yellow"
          },
          {
            "label": "Other",
            "value": "other"
          }
        ]
      }
    ],
    "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n  **{{question}}**: {{answer}}\n{{/each}}\n\nEDIT",
    "headerTemplate": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})"
  },
  "required": [
    "id",
    "name",
    "tokens"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "1001298",
      "description": "The template ID."
    },
    "name": {
      "type": "string",
      "example": "PetSpot Registration",
      "description": "The template name."
    },
    "tokens": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimelineEventTemplateToken"
      },
      "example": [
        {
          "name": "petName",
          "type": "string",
          "label": "Pet Name",
          "objectPropertyName": "firstname"
        },
        {
          "name": "petAge",
          "type": "number",
          "label": "Pet Age"
        },
        {
          "name": "petColor",
          "type": "enumeration",
          "label": "Pet Color",
          "options": [
            {
              "label": "White",
              "value": "white"
            },
            {
              "label": "Black",
              "value": "black"
            },
            {
              "label": "Brown",
              "value": "brown"
            },
            {
              "label": "Yellow",
              "value": "yellow"
            },
            {
              "label": "Other",
              "value": "other"
            }
          ]
        }
      ],
      "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects."
    },
    "detailTemplate": {
      "type": "string",
      "example": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n  **{{question}}**: {{answer}}\n{{/each}}\n\nEDIT",
      "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details."
    },
    "headerTemplate": {
      "type": "string",
      "example": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})",
      "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header."
    }
  },
  "description": "State of the template definition being updated."
}
object ValueWithTimestamp
{
  "type": "object",
  "required": [
    "sourceType",
    "timestamp",
    "value"
  ],
  "properties": {
    "value": {
      "type": "string"
    },
    "sourceId": {
      "type": "string"
    },
    "timestamp": {
      "type": "string",
      "format": "date-time"
    },
    "sourceType": {
      "type": "string"
    },
    "sourceLabel": {
      "type": "string"
    },
    "updatedByUserId": {
      "type": "integer",
      "format": "int32"
    }
  }
}