{"openapi":"3.1.0","info":{"title":"HubSpot Account (BYOK) API","version":"0.1.0","description":"HubSpot Account (BYOK) lets an AI assistant read your own HubSpot Account data through the HubSpot Account API with a key you supply (HubSpot private app access token (scopes: settings.currencies.read, tax_rates.read, business_units_view.read as needed)). Read-only: 8 tools (get_account_details, get_api_usage, get_company_currency, list_currency_codes, list_current_exchange_rates, list_tax_rates,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-hubspot-account.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-hubspot-account/docs"},"termsOfService":"https://connectorbay.com/byok-hubspot-account/terms"},"servers":[{"url":"https://byok-hubspot-account.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-hubspot-account/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/get_account_details":{"post":{"operationId":"get_account_details","summary":"Show the HubSpot account behind the token: portal id and name, account type, time zone, company currency, data hosting l","description":"Show the HubSpot account behind the token: portal id and name, account type, time zone, company currency, data hosting location and UI domain. Use for \"Which HubSpot account, time zone and currency is this token for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_account_detailsArguments","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_api_usage":{"post":{"operationId":"get_api_usage","summary":"Show today's API call usage against the daily limit for private apps in the account, with a split by app type. Use for \"","description":"Show today's API call usage against the daily limit for private apps in the account, with a split by app type. Use for \"How many HubSpot API calls have we used today\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_api_usageArguments","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_company_currency":{"post":{"operationId":"get_company_currency","summary":"Show the account's company (home) currency code and when it was set. Use for \"What is our HubSpot company currency\".","description":"Show the account's company (home) currency code and when it was set. Use for \"What is our HubSpot company currency\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_company_currencyArguments","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_currency_codes":{"post":{"operationId":"list_currency_codes","summary":"List the currencies the account can use with their ISO code and name. Use for \"Which currencies are enabled in our HubSp","description":"List the currencies the account can use with their ISO code and name. Use for \"Which currencies are enabled in our HubSpot account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_currency_codesArguments","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_current_exchange_rates":{"post":{"operationId":"list_current_exchange_rates","summary":"List the current exchange rate between each pair of account currencies with the date it took effect and whether it is sh","description":"List the current exchange rate between each pair of account currencies with the date it took effect and whether it is shown in the UI. Use for \"What exchange rates are set in HubSpot right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_current_exchange_ratesArguments","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_tax_rates":{"post":{"operationId":"list_tax_rates","summary":"List the tax rates defined in the account with label, percentage and active flag. Use for \"Which tax rates are configure","description":"List the tax rates defined in the account with label, percentage and active flag. Use for \"Which tax rates are configured in HubSpot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for active tax rates only, false for inactive only. Leave out for both.","title":"Active"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many tax rates 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.","title":"After"}},"title":"list_tax_ratesArguments","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_user_seats":{"post":{"operationId":"list_user_seats","summary":"List the paid seat types in the account with the number of seats still free for each (needs a token with billing scope).","description":"List the paid seat types in the account with the number of seats still free for each (needs a token with billing scope). Use for \"How many HubSpot seats do we have left\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_user_seatsArguments","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_brands_for_user":{"post":{"operationId":"list_brands_for_user","summary":"List the brands (business units) a HubSpot user can access, with id, name and logo address. Use for \"Which brands can Hu","description":"List the brands (business units) a HubSpot user can access, with id, name and logo address. Use for \"Which brands can HubSpot user 910 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Id of the user (a numeric string such as '910').","maxLength":200,"title":"User Id","type":"string"}},"required":["user_id"],"title":"list_brands_for_userArguments","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}}}}