{"openapi":"3.1.0","info":{"title":"HubSpot Automation (BYOK) API","version":"0.1.0","description":"HubSpot Automation (BYOK) lets an AI assistant read your own HubSpot Automation data through the HubSpot Automation API with a key you supply (HubSpot private app access token (scopes: automation.sequences.read, automation.email_templates.read)). Read-only: 6 tools (list_sequences, get_sequence, get_sequence_performance, list_email_templates, get_email_template, list_email_template_folders). The...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-hubspot-automation.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-hubspot-automation/docs"},"termsOfService":"https://connectorbay.com/byok-hubspot-automation/terms"},"servers":[{"url":"https://byok-hubspot-automation.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-hubspot-automation/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_sequences":{"post":{"operationId":"list_sequences","summary":"List sales sequences with name, folder, owning user id and dates. Sales Hub Professional or Enterprise. Use for \"Which s","description":"List sales sequences with name, folder, owning user id and dates. Sales Hub Professional or Enterprise. Use for \"Which sales sequences exist in our HubSpot account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: paging.next.after from the previous answer. Leave out for the first page.","title":"After"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only sequences whose name matches this text.","title":"Name"}},"title":"list_sequencesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_sequence":{"post":{"operationId":"get_sequence","summary":"Get one sequence's settings and steps: step order and type, delays, task types and priorities, plus step dependencies. S","description":"Get one sequence's settings and steps: step order and type, delays, task types and priorities, plus step dependencies. Step notes and templates are not shown. Use for \"What steps does HubSpot sequence 1234 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sequence_id":{"description":"Id of the sequence (a numeric string such as '1234').","maxLength":200,"title":"Sequence Id","type":"string"}},"required":["sequence_id"],"title":"get_sequenceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_sequence_performance":{"post":{"operationId":"get_sequence_performance","summary":"Get aggregate performance of one sequence: enrolled, opened, clicked, replied, meetings booked, deals closed and revenue","description":"Get aggregate performance of one sequence: enrolled, opened, clicked, replied, meetings booked, deals closed and revenue, per step and over time. Counts only. Use for \"How is HubSpot sequence 1234 performing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sequence_id":{"description":"Id of the sequence (a numeric string such as '1234').","maxLength":200,"title":"Sequence Id","type":"string"},"timeline_interval":{"anyOf":[{"enum":["DAY","WEEK","MONTH"],"type":"string"},{"type":"null"}],"default":"WEEK","description":"Grouping of the timeline: for example DAY, WEEK or MONTH.","title":"Timeline Interval"}},"required":["sequence_id"],"title":"get_sequence_performanceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_email_templates":{"post":{"operationId":"list_email_templates","summary":"List sales email templates with name, subject, folder, owner id and dates. The template body is not returned. Use for \"W","description":"List sales email templates with name, subject, folder, owner id and dates. The template body is not returned. Use for \"What sales email templates do we have in HubSpot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: paging.next.after from the previous answer. Leave out for the first page.","title":"After"}},"title":"list_email_templatesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_email_template":{"post":{"operationId":"get_email_template","summary":"Get one sales email template's name, subject, folder, owner id and dates (the body is not returned). Use for \"What is th","description":"Get one sales email template's name, subject, folder, owner id and dates (the body is not returned). Use for \"What is the subject of HubSpot email template 555\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"template_id":{"description":"Id of the template (a numeric string such as '555').","maxLength":200,"title":"Template Id","type":"string"}},"required":["template_id"],"title":"get_email_templateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_email_template_folders":{"post":{"operationId":"list_email_template_folders","summary":"List the folders that hold sales email templates with id, name and dates. Use for \"How are our HubSpot email templates o","description":"List the folders that hold sales email templates with id, name and dates. Use for \"How are our HubSpot email templates organised in folders\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: paging.next.after from the previous answer. Leave out for the first page.","title":"After"}},"title":"list_email_template_foldersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}