Turn HubSpot into a REST + MCP endpoint
Writ turns the HubSpot actions you already do in a browser into a callable REST endpoint your software (and your AI agents) can call.
curl -X POST https://api.usewrit.app/v1/hubspot/run \
-H "Authorization: Bearer wt_8f2c...a91" \
-H "Content-Type: application/json" \
-d '{ "input": { "query": "your search term" } }' No HubSpot API yet? Build one in minutes
Record the HubSpot task once (open a record, then run a report) and call it as a REST endpoint and an MCP tool. No backend project, no waiting on HubSpot to ship an API.
- 1Record the HubSpot task once
Open the recorder and open a record on HubSpot in a real browser. Writ captures each step, including login and 2FA, into a reusable workflow.
- 2Publish it as an endpoint
One click turns the workflow into a callable REST endpoint at /v1/hubspot/run and a matching MCP tool. Inputs become a typed schema.
- 3Call it from anything
Call HubSpot from your code, a no-code tool, or an AI agent. Run it on your own machine for free, or on metered cloud.
Read the REST API docs, see what's possible on workflows, or search for another site. Free to start. See pricing.
HubSpot doesn't give you the endpoint you need
HubSpot has an API, but custom dashboards, some reports, and certain admin actions are only reachable through the browser UI.
Writ closes that gap. Record the HubSpot task once (or describe it to an AI session) and publish it as a REST endpoint at /v1/hubspot/run and a matching MCP tool. Writ runs on your own accounts, with your own credentials and data, on sites you are authorized to use.
What you can call on HubSpot
Each operation below is a real HubSpot action recorded into a workflow and exposed as a typed endpoint.
Returns structured fields such as contact, deal, company, report value: typed JSON, not raw page text.
A real HubSpot endpoint, authorized with a wt_ key
POST your inputs, get structured output. Authenticate every call with a scoped wt_ key.
curl -X POST https://api.usewrit.app/v1/hubspot/run \
-H "Authorization: Bearer wt_8f2c...a91" \
-H "Content-Type: application/json" \
-d '{ "input": { "query": "your search term" } }' import requests
r = requests.post(
"https://api.usewrit.app/v1/hubspot/run",
headers={"Authorization": "Bearer wt_8f2c...a91"},
json={"input": {"query": "your search term"}},
)
print(r.json()["output"]) {
"run_id": "run_hubs_7b21",
"status": "succeeded",
"output": {
"contact": "...",
"deal": "...",
"company": "..."
}
} Also an MCP tool. The same workflow is exposed as an MCP tool your AI agent can call. See HubSpot MCP tools, or browse all MCP clients.
Login, 2FA, and dynamic pages on HubSpot
The reason HubSpot has no usable API is the same reason it's hard to automate. Writ handles it.
Writ signs into your own HubSpot portal through a Persona, including SSO, and runs inside that authenticated session.
Three ways to build your HubSpot endpoint
Pick whichever fits the task. All three produce the same callable workflow.
Built on the same engine as the recorder and workflows.
Trigger your HubSpot endpoint on a change
Monitor HubSpot for report value change, new deal in a stage, list size change and fire this endpoint the instant something changes.
Monitors check as fast as every 10s (10s on Enterprise). A detected change becomes an automation trigger that runs your workflow in seconds. Monitor HubSpot ▸
Free on your own machine, or on cloud
Local / BYO agent
No compute charge. The agent runs on your hardware, so it can reach HubSpot even from an intranet or VPN-only network, and your AI keys never leave your machine.
Writ cloud
Metered by running time at $0.12 per browser-hour, drawn from your plan’s included usage. No infrastructure to manage.
Other ways to work with HubSpot
HubSpot API questions
Does HubSpot have an API?
Is there a ready-made HubSpot API I can use?
Is it allowed to automate HubSpot this way?
Does this work with HubSpot login and 2FA?
Can I run it on my own machine?
Build a HubSpot API
Record it once, then call it from your software and your AI agents. Get started free.