{"openapi":"3.1.0","info":{"title":"HubSpot CRM Limits (BYOK) API","version":"0.1.0","description":"HubSpot CRM Limits (BYOK) lets an AI assistant read your own HubSpot CRM Limits data through the HubSpot CRM Limits API with a key you supply (HubSpot private app access token (CRM read scopes)). Read-only: 7 tools (get_record_limits, get_custom_property_limits, get_calculated_property_limits, get_pipeline_limits, get_custom_object_type_limits, get_association_label_limits,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-hubspot-crm-limits.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-hubspot-crm-limits/docs"},"termsOfService":"https://connectorbay.com/byok-hubspot-crm-limits/terms"},"servers":[{"url":"https://byok-hubspot-crm-limits.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-hubspot-crm-limits/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_record_limits":{"post":{"operationId":"get_record_limits","summary":"Show how many CRM records the account holds per object type against its limit, for HubSpot objects and custom objects. C","description":"Show how many CRM records the account holds per object type against its limit, for HubSpot objects and custom objects. Counts only, no record data. Use for \"How close is our HubSpot account to its CRM record limits\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_record_limitsArguments","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_custom_property_limits":{"post":{"operationId":"get_custom_property_limits","summary":"Show custom property usage against the limit for each object type and overall. Use for \"How many custom properties have ","description":"Show custom property usage against the limit for each object type and overall. Use for \"How many custom properties have we used per object in HubSpot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_custom_property_limitsArguments","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_calculated_property_limits":{"post":{"operationId":"get_calculated_property_limits","summary":"Show calculated property usage per object type and overall against the account limit. Use for \"How many calculation prop","description":"Show calculated property usage per object type and overall against the account limit. Use for \"How many calculation properties are in use in our HubSpot account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_calculated_property_limitsArguments","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_pipeline_limits":{"post":{"operationId":"get_pipeline_limits","summary":"Show how many pipelines exist per object type against the limit, for HubSpot objects and custom objects. Use for \"How ma","description":"Show how many pipelines exist per object type against the limit, for HubSpot objects and custom objects. Use for \"How many pipelines do we have in HubSpot compared with the limit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_pipeline_limitsArguments","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_custom_object_type_limits":{"post":{"operationId":"get_custom_object_type_limits","summary":"Show how many custom object types the account has defined against the limit. Use for \"How many custom object types can w","description":"Show how many custom object types the account has defined against the limit. Use for \"How many custom object types can we still create in HubSpot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_custom_object_type_limitsArguments","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_association_label_limits":{"post":{"operationId":"get_association_label_limits","summary":"Show association label usage against the limit for object type pairs, optionally for one pair. Use for \"How many associa","description":"Show association label usage against the limit for object type pairs, optionally for one pair. Use for \"How many association labels are used between contacts and companies in HubSpot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_object_type_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Object type id the association starts from, for example 0-1. Leave out for all.","title":"From Object Type Id"},"to_object_type_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Object type id the association points to, for example 0-2. Leave out for all.","title":"To Object Type Id"}},"title":"get_association_label_limitsArguments","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_record_association_limits":{"post":{"operationId":"get_record_association_limits","summary":"List object types whose records are at or near the association limit, as two flags per type. Use for \"Do any of our HubS","description":"List object types whose records are at or near the association limit, as two flags per type. Use for \"Do any of our HubSpot objects have records near their association limit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_record_association_limitsArguments","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}}}}