HubSpot CRM Objects v3 — bounded modeled service

This reference is readable without JavaScript. Download the OpenAPI document.

Runtime

/api/purple-suite/{instanceId}/contracts/crm/hubspot
[
  {
    "method": "get",
    "path": "/crm/v3/objects/:objectType",
    "operationId": "list"
  },
  {
    "method": "post",
    "path": "/crm/v3/objects/:objectType",
    "operationId": "create"
  },
  {
    "method": "get",
    "path": "/crm/v3/objects/:objectType/:objectId",
    "operationId": "read"
  },
  {
    "method": "patch",
    "path": "/crm/v3/objects/:objectType/:objectId",
    "operationId": "update"
  },
  {
    "method": "delete",
    "path": "/crm/v3/objects/:objectType/:objectId",
    "operationId": "archive"
  },
  {
    "method": "post",
    "path": "/crm/v3/objects/:objectType/batch/create",
    "operationId": "batchCreate"
  },
  {
    "method": "post",
    "path": "/crm/v3/objects/:objectType/batch/read",
    "operationId": "batchRead"
  },
  {
    "method": "post",
    "path": "/crm/v3/objects/:objectType/batch/update",
    "operationId": "batchUpdate"
  },
  {
    "method": "post",
    "path": "/crm/v3/objects/:objectType/batch/upsert",
    "operationId": "batchUpsert"
  },
  {
    "method": "post",
    "path": "/crm/v3/objects/:objectType/batch/archive",
    "operationId": "batchArchive"
  },
  {
    "method": "post",
    "path": "/crm/v3/objects/:objectType/search",
    "operationId": "search"
  }
]

Credentials

Coverage and limitations

{
  "documentScope": "bounded",
  "runtimeFidelity": "modeled",
  "counts": {
    "operations": 11,
    "types": 3
  },
  "notes": [
    "Eleven generic CRM Objects v3 operations over contacts, companies and deals. This independently authored contract is derived from public reference facts, not HubSpot's restricted specification repository.",
    "Batch create requires unique objectWriteTraceId values; contact-email upserts require the complete existing property set. Contact email is the only configured unique property. Associations, custom schemas, custom objects, owner/pipeline administration, marketing, and OAuth issuance are outside the bounded profile.",
    "The coverage ledger records modeled-core batch/search differences. No production HubSpot differential fixtures have been captured; this is not a full-product exactness claim."
  ]
}

Independently authored from public reference documentation. Contacts, companies, and deals; contact-email uniqueness. Association writes, custom schemas, pipeline/owner administration, and OAuth issuance are outside this profile. See the coverage ledger for remaining modeled-core deviations.

Servers

[
  {
    "url": "/api/purple-suite/{instanceId}/contracts/crm/hubspot",
    "variables": {
      "instanceId": {
        "default": "YOUR_INSTANCE_ID"
      }
    }
  }
]

Authentication schemes

{
  "bearerAuth": {
    "type": "http",
    "scheme": "bearer"
  }
}

Each operation lists its security requirements. An empty security array permits an unauthenticated request. Use the scheme and headers declared for the selected contract.

Operations

GET /crm/v3/objects/{objectType}

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "list",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    },
    {
      "name": "properties",
      "in": "query",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "propertiesWithHistory",
      "in": "query",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "archived",
      "in": "query",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "limit",
      "in": "query",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100,
        "default": 10
      }
    },
    {
      "name": "after",
      "in": "query",
      "schema": {
        "type": "string"
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "responses": {
    "200": {
      "description": "Successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Page"
          }
        }
      }
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /crm/v3/objects/{objectType}

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "create",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Write"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Object"
          }
        }
      }
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

GET /crm/v3/objects/{objectType}/{objectId}

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "read",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    },
    {
      "name": "objectId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "properties",
      "in": "query",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "propertiesWithHistory",
      "in": "query",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "archived",
      "in": "query",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "idProperty",
      "in": "query",
      "schema": {
        "type": "string",
        "enum": [
          "hs_object_id",
          "email"
        ]
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "responses": {
    "200": {
      "description": "Successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Object"
          }
        }
      }
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

PATCH /crm/v3/objects/{objectType}/{objectId}

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "update",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    },
    {
      "name": "objectId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "idProperty",
      "in": "query",
      "schema": {
        "type": "string",
        "enum": [
          "hs_object_id",
          "email"
        ]
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Write"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Object"
          }
        }
      }
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

DELETE /crm/v3/objects/{objectType}/{objectId}

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "archive",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    },
    {
      "name": "objectId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "responses": {
    "204": {
      "description": "Successful operation"
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /crm/v3/objects/{objectType}/batch/create

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "batchCreate",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/BatchCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Batch"
          }
        }
      }
    },
    "207": {
      "description": "Partial batch result",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Batch"
          }
        }
      }
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /crm/v3/objects/{objectType}/batch/read

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "batchRead",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    },
    {
      "name": "archived",
      "in": "query",
      "schema": {
        "type": "boolean",
        "default": false
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/BatchRead"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Batch"
          }
        }
      }
    },
    "207": {
      "description": "Partial batch result",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Batch"
          }
        }
      }
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /crm/v3/objects/{objectType}/batch/update

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "batchUpdate",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/BatchUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Batch"
          }
        }
      }
    },
    "207": {
      "description": "Partial batch result",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Batch"
          }
        }
      }
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /crm/v3/objects/{objectType}/batch/upsert

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "batchUpsert",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/BatchUpsert"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Batch"
          }
        }
      }
    },
    "207": {
      "description": "Partial batch result",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Batch"
          }
        }
      }
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /crm/v3/objects/{objectType}/batch/archive

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "batchArchive",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/BatchArchive"
        }
      }
    }
  },
  "responses": {
    "204": {
      "description": "Successful operation"
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /crm/v3/objects/{objectType}/search

Authentication

[
  {
    "bearerAuth": []
  }
]

Request, responses and operation details

{
  "operationId": "search",
  "tags": [
    "CRM Objects"
  ],
  "parameters": [
    {
      "name": "objectType",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "contacts",
          "companies",
          "deals",
          "0-1",
          "0-2",
          "0-3"
        ]
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Search"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SearchPage"
          }
        }
      }
    },
    "default": {
      "description": "Vendor-shaped error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

Schemas and reusable components

securitySchemes

bearerAuth

{
  "type": "http",
  "scheme": "bearer"
}

schemas

Object

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "properties": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "nullable": true
      }
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "archived": {
      "type": "boolean"
    },
    "archivedAt": {
      "type": "string",
      "format": "date-time"
    },
    "new": {
      "type": "boolean"
    },
    "propertiesWithHistory": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "value": {
              "type": "string"
            },
            "timestamp": {
              "type": "string",
              "format": "date-time"
            },
            "sourceType": {
              "type": "string"
            }
          },
          "required": [
            "value",
            "timestamp",
            "sourceType"
          ]
        }
      }
    }
  },
  "required": [
    "id",
    "properties",
    "createdAt",
    "updatedAt",
    "archived"
  ]
}

Paging

{
  "type": "object",
  "properties": {
    "next": {
      "type": "object",
      "properties": {
        "after": {
          "type": "string"
        },
        "link": {
          "type": "string"
        }
      },
      "required": [
        "after"
      ]
    }
  }
}

Page

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Object"
      }
    },
    "paging": {
      "$ref": "#/components/schemas/Paging"
    }
  },
  "required": [
    "results"
  ]
}

SearchPage

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Object"
      }
    },
    "paging": {
      "$ref": "#/components/schemas/Paging"
    },
    "total": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "results",
    "total"
  ]
}

Error

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "correlationId": {
      "type": "string",
      "format": "uuid"
    },
    "category": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "message",
    "correlationId",
    "category"
  ]
}

Batch

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "COMPLETE",
        "PENDING",
        "PROCESSING",
        "CANCELED"
      ]
    },
    "startedAt": {
      "type": "string",
      "format": "date-time"
    },
    "completedAt": {
      "type": "string",
      "format": "date-time"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Object"
      }
    },
    "numErrors": {
      "type": "integer",
      "minimum": 0
    },
    "errors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "context": {
            "type": "object"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "links": {
            "type": "object"
          }
        },
        "required": [
          "status",
          "message",
          "category"
        ]
      }
    }
  },
  "required": [
    "status",
    "startedAt",
    "completedAt",
    "results"
  ]
}

Write

{
  "type": "object",
  "properties": {
    "properties": {
      "type": "object",
      "properties": {
        "firstname": {
          "type": "string"
        },
        "lastname": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "mobilephone": {
          "type": "string"
        },
        "company": {
          "type": "string"
        },
        "jobtitle": {
          "type": "string"
        },
        "website": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        },
        "industry": {
          "type": "string"
        },
        "annualrevenue": {
          "type": "string"
        },
        "numberofemployees": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "dealname": {
          "type": "string"
        },
        "amount": {
          "type": "string"
        },
        "closedate": {
          "type": "string"
        },
        "pipeline": {
          "type": "string"
        },
        "dealstage": {
          "type": "string"
        },
        "dealtype": {
          "type": "string"
        },
        "hs_priority": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "associations": {
      "type": "array",
      "maxItems": 0,
      "items": {
        "type": "object"
      },
      "description": "Association writes are outside this bounded profile."
    },
    "objectWriteTraceId": {
      "type": "string"
    }
  },
  "required": [
    "properties"
  ]
}

BatchCreate

{
  "type": "object",
  "properties": {
    "inputs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "properties": {
          "properties": {
            "type": "object",
            "properties": {
              "firstname": {
                "type": "string"
              },
              "lastname": {
                "type": "string"
              },
              "email": {
                "type": "string"
              },
              "phone": {
                "type": "string"
              },
              "mobilephone": {
                "type": "string"
              },
              "company": {
                "type": "string"
              },
              "jobtitle": {
                "type": "string"
              },
              "website": {
                "type": "string"
              },
              "address": {
                "type": "string"
              },
              "city": {
                "type": "string"
              },
              "state": {
                "type": "string"
              },
              "zip": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "domain": {
                "type": "string"
              },
              "industry": {
                "type": "string"
              },
              "annualrevenue": {
                "type": "string"
              },
              "numberofemployees": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "dealname": {
                "type": "string"
              },
              "amount": {
                "type": "string"
              },
              "closedate": {
                "type": "string"
              },
              "pipeline": {
                "type": "string"
              },
              "dealstage": {
                "type": "string"
              },
              "dealtype": {
                "type": "string"
              },
              "hs_priority": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "associations": {
            "type": "array",
            "maxItems": 0,
            "items": {
              "type": "object"
            },
            "description": "Association writes are outside this bounded profile."
          },
          "objectWriteTraceId": {
            "type": "string"
          }
        },
        "required": [
          "properties",
          "objectWriteTraceId"
        ]
      }
    }
  },
  "required": [
    "inputs"
  ]
}

BatchRead

{
  "type": "object",
  "properties": {
    "inputs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      }
    },
    "idProperty": {
      "type": "string"
    },
    "properties": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "propertiesWithHistory": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "inputs"
  ]
}

BatchUpdate

{
  "type": "object",
  "properties": {
    "inputs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "properties": {
          "properties": {
            "type": "object",
            "properties": {
              "firstname": {
                "type": "string"
              },
              "lastname": {
                "type": "string"
              },
              "email": {
                "type": "string"
              },
              "phone": {
                "type": "string"
              },
              "mobilephone": {
                "type": "string"
              },
              "company": {
                "type": "string"
              },
              "jobtitle": {
                "type": "string"
              },
              "website": {
                "type": "string"
              },
              "address": {
                "type": "string"
              },
              "city": {
                "type": "string"
              },
              "state": {
                "type": "string"
              },
              "zip": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "domain": {
                "type": "string"
              },
              "industry": {
                "type": "string"
              },
              "annualrevenue": {
                "type": "string"
              },
              "numberofemployees": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "dealname": {
                "type": "string"
              },
              "amount": {
                "type": "string"
              },
              "closedate": {
                "type": "string"
              },
              "pipeline": {
                "type": "string"
              },
              "dealstage": {
                "type": "string"
              },
              "dealtype": {
                "type": "string"
              },
              "hs_priority": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "associations": {
            "type": "array",
            "maxItems": 0,
            "items": {
              "type": "object"
            },
            "description": "Association writes are outside this bounded profile."
          },
          "objectWriteTraceId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "idProperty": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "properties"
        ]
      }
    }
  },
  "required": [
    "inputs"
  ]
}

BatchUpsert

{
  "type": "object",
  "properties": {
    "inputs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "properties": {
          "properties": {
            "type": "object",
            "properties": {
              "firstname": {
                "type": "string"
              },
              "lastname": {
                "type": "string"
              },
              "email": {
                "type": "string"
              },
              "phone": {
                "type": "string"
              },
              "mobilephone": {
                "type": "string"
              },
              "company": {
                "type": "string"
              },
              "jobtitle": {
                "type": "string"
              },
              "website": {
                "type": "string"
              },
              "address": {
                "type": "string"
              },
              "city": {
                "type": "string"
              },
              "state": {
                "type": "string"
              },
              "zip": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "domain": {
                "type": "string"
              },
              "industry": {
                "type": "string"
              },
              "annualrevenue": {
                "type": "string"
              },
              "numberofemployees": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "dealname": {
                "type": "string"
              },
              "amount": {
                "type": "string"
              },
              "closedate": {
                "type": "string"
              },
              "pipeline": {
                "type": "string"
              },
              "dealstage": {
                "type": "string"
              },
              "dealtype": {
                "type": "string"
              },
              "hs_priority": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "associations": {
            "type": "array",
            "maxItems": 0,
            "items": {
              "type": "object"
            },
            "description": "Association writes are outside this bounded profile."
          },
          "objectWriteTraceId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "idProperty": {
            "type": "string",
            "enum": [
              "email"
            ],
            "description": "Only contacts email is configured as unique in this bounded profile."
          }
        },
        "required": [
          "id",
          "idProperty",
          "properties"
        ]
      }
    }
  },
  "required": [
    "inputs"
  ]
}

BatchArchive

{
  "type": "object",
  "properties": {
    "inputs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      }
    }
  },
  "required": [
    "inputs"
  ]
}

Filter

{
  "type": "object",
  "properties": {
    "propertyName": {
      "type": "string"
    },
    "operator": {
      "type": "string",
      "enum": [
        "EQ",
        "NEQ",
        "LT",
        "LTE",
        "GT",
        "GTE",
        "BETWEEN",
        "IN",
        "NOT_IN",
        "HAS_PROPERTY",
        "NOT_HAS_PROPERTY",
        "CONTAINS_TOKEN",
        "NOT_CONTAINS_TOKEN"
      ]
    },
    "value": {
      "type": "string"
    },
    "highValue": {
      "type": "string"
    },
    "values": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "propertyName",
    "operator"
  ]
}

Search

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 3000
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 10
    },
    "after": {
      "type": "string",
      "pattern": "^[0-9]+$"
    },
    "properties": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sorts": {
      "type": "array",
      "maxItems": 1,
      "items": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "object",
            "properties": {
              "propertyName": {
                "type": "string"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "ASCENDING",
                  "DESCENDING"
                ]
              }
            },
            "required": [
              "propertyName"
            ]
          }
        ]
      }
    },
    "filterGroups": {
      "type": "array",
      "maxItems": 5,
      "items": {
        "type": "object",
        "properties": {
          "filters": {
            "type": "array",
            "minItems": 1,
            "maxItems": 6,
            "items": {
              "$ref": "#/components/schemas/Filter"
            }
          }
        },
        "required": [
          "filters"
        ]
      }
    }
  }
}

Document metadata and extensions

{
  "openapi": "3.0.3",
  "info": {
    "title": "HubSpot CRM Objects v3 — bounded modeled profile",
    "version": "v3-2026-09-16",
    "description": "Independently authored from public reference documentation. Contacts, companies, and deals; contact-email uniqueness. Association writes, custom schemas, pipeline/owner administration, and OAuth issuance are outside this profile. See the coverage ledger for remaining modeled-core deviations."
  },
  "tags": [
    {
      "name": "CRM Objects"
    }
  ]
}
Interactive API explorer (requires JavaScript)