Send a POST request to the HubSpot GraphQL endpoint at /collector/graphql with an Authorization: Bearer header
Write a query that selects a CRM object type (e.g., CRM_CONTACT) with the fields you need and includes an associations block to traverse related objects
In the associations block specify the objectType of the related records and the properties to return for each associated record
Use GraphQL variables for pagination cursors (after) and limit values to keep the query reusable
Inspect the paging.cursor value in the response to advance to the next page of results
Compare total response size against making equivalent REST calls; GraphQL is most valuable when fetching a record and its associations in one trip
Known gotchas
The HubSpot GraphQL API is read-only; mutations are not supported and all writes must go through the REST CRM APIs
Not all CRM properties are available as GraphQL fields; custom properties are accessible but must be referenced by their internal name which may differ from the display label
The GraphQL endpoint has its own rate-limit budget separate from the REST API; heavy GraphQL usage does not consume REST API quota but can still be throttled independently
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