POST to /crm/v3/properties/<objectType> with a JSON body specifying name, label, type, fieldType, and groupName
Valid fieldType values include text, textarea, select, checkbox, date, number; type and fieldType must be a compatible pair
To add enumeration options POST the property with an options array containing label and value pairs
Create a property group first via POST /crm/v3/properties/<objectType>/groups so the groupName reference resolves
Update an existing property with PATCH /crm/v3/properties/<objectType>/<propertyName>; the name field is immutable after creation
Verify property visibility and form availability by checking the hidden and formField flags in the GET response
Known gotchas
Property internal names must be lowercase, use only letters, numbers, and underscores, and cannot be changed after creation; plan naming conventions before bulk creation
Calculated properties and HubSpot-defined system properties cannot be created or modified via the API; attempts return a 400 error
Deleting a property via DELETE permanently removes all stored values for that property across all records with no recovery path
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp