Authenticate using HTTP Basic auth with your Close API key as the username and an empty string as the password
Create a lead by POSTing to /api/v1/lead/ with a JSON body containing name, status_id (retrieve valid IDs from GET /api/v1/status/lead/), and optionally contacts, addresses, and custom fields
Nest contact details inside the contacts array in the same lead creation payload to create contacts atomically with the lead
For bulk imports, use a loop of individual POSTs — Close does not have a dedicated batch lead creation endpoint; rate-limit your loop to avoid 429 errors
Retrieve the lead id from the creation response for follow-up operations such as attaching activities or opportunities
Known gotchas
Close enforces per-minute and per-day rate limits on API requests; bulk imports must include delays or back-off logic to avoid 429 throttling
The status_id field is required on lead creation and must be a valid ID from your Close org — using a label string instead of the ID will fail
Duplicate detection is not built into the API import — Close will create a new lead for every request; deduplicate source data before importing or search first with GET /api/v1/lead/?query=
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