Create a custom field by POSTing to /v1/dealFields with a JSON body containing name, field_type (e.g., text, date, enum, monetary), and for enum types an options array
The response returns a key (a hash string) that is the API name for that custom field — store this for use in deal read/write operations
Write the custom field on a deal by including the field key and value in a PATCH to /v1/deals/{id}
Read custom field values from a deal via GET /v1/deals/{id} — custom fields appear in the response alongside standard fields, keyed by their hash key
List all custom field definitions with GET /v1/dealFields to map hash keys back to human-readable names
Known gotchas
Custom field keys are auto-generated hashes (not user-defined names) — code must look up or store the key; using the display name directly in the API will fail
Enum-type custom fields require passing the option ID integer, not the label string, when writing values
Custom fields also exist per object type (Person, Organization, Lead) — a dealField key is not valid on a person record
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