{"openapi":"3.1.0","info":{"title":"HubSpot CRM Schema (BYOK) API","version":"0.1.0","description":"HubSpot CRM Schema (BYOK) lets an AI assistant read your own HubSpot CRM Schema data through the HubSpot CRM Schema API with a key you supply (HubSpot private app access token (scopes: crm.schemas.*.read, tickets for ticket pipelines)). Read-only: 9 tools (list_properties, get_property, list_property_groups, list_pipelines, get_pipeline, list_pipeline_stages, list_custom_object_schemas,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-hubspot-crm-schema.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-hubspot-crm-schema/docs"},"termsOfService":"https://connectorbay.com/byok-hubspot-crm-schema/terms"},"servers":[{"url":"https://byok-hubspot-crm-schema.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-hubspot-crm-schema/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_properties":{"post":{"operationId":"list_properties","summary":"List the properties (fields) defined for a CRM object type with name, label, type, field type, group and description. En","description":"List the properties (fields) defined for a CRM object type with name, label, type, field type, group and description. Enumeration options are left out here. Use for \"What properties does the deal object have in HubSpot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"object_type":{"description":"CRM object type: a standard name such as 'contacts', 'companies', 'deals', 'tickets', 'products', 'quotes', or the id of a custom object such as '2-1234567'.","maxLength":200,"title":"Object Type","type":"string"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to list archived properties instead of active ones.","title":"Archived"}},"required":["object_type"],"title":"list_propertiesArguments","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_property":{"post":{"operationId":"get_property","summary":"Get one property definition of a CRM object type, including its dropdown options (label and value) for enumerations. Use","description":"Get one property definition of a CRM object type, including its dropdown options (label and value) for enumerations. Use for \"What are the allowed values of the dealstage property\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"object_type":{"description":"CRM object type: a standard name such as 'contacts', 'companies', 'deals', 'tickets', 'products', 'quotes', or the id of a custom object such as '2-1234567'.","maxLength":200,"title":"Object Type","type":"string"},"property_name":{"description":"Internal name of the property, for example 'dealstage' or 'lifecyclestage'.","maxLength":200,"title":"Property Name","type":"string"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to read an archived property.","title":"Archived"}},"required":["object_type","property_name"],"title":"get_propertyArguments","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_property_groups":{"post":{"operationId":"list_property_groups","summary":"List the property groups of a CRM object type with internal name, label and display order. Use for \"How are the company ","description":"List the property groups of a CRM object type with internal name, label and display order. Use for \"How are the company properties grouped in HubSpot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"object_type":{"description":"CRM object type: a standard name such as 'contacts', 'companies', 'deals', 'tickets', 'products', 'quotes', or the id of a custom object such as '2-1234567'.","maxLength":200,"title":"Object Type","type":"string"}},"required":["object_type"],"title":"list_property_groupsArguments","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_pipelines":{"post":{"operationId":"list_pipelines","summary":"List the pipelines of an object type (deals or tickets) with label and all stages including stage metadata such as close","description":"List the pipelines of an object type (deals or tickets) with label and all stages including stage metadata such as closed state and win probability. Use for \"What are our HubSpot deal pipelines and stages\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"object_type":{"description":"Object type that has pipelines: 'deals' or 'tickets' (also 'orders' and custom objects with pipelines).","maxLength":200,"title":"Object Type","type":"string"}},"required":["object_type"],"title":"list_pipelinesArguments","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":{"post":{"operationId":"get_pipeline","summary":"Get one pipeline with its label and stages (id, label, order, metadata). Use for \"What stages does the default HubSpot d","description":"Get one pipeline with its label and stages (id, label, order, metadata). Use for \"What stages does the default HubSpot deal pipeline have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"object_type":{"description":"Object type that has pipelines: 'deals' or 'tickets' (also 'orders' and custom objects with pipelines).","maxLength":200,"title":"Object Type","type":"string"},"pipeline_id":{"description":"Id of the pipeline (for example 'default' or a numeric string).","maxLength":200,"title":"Pipeline Id","type":"string"}},"required":["object_type","pipeline_id"],"title":"get_pipelineArguments","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_pipeline_stages":{"post":{"operationId":"list_pipeline_stages","summary":"List the stages of one pipeline with stage id, label, display order and metadata (closed state, probability). Use for \"L","description":"List the stages of one pipeline with stage id, label, display order and metadata (closed state, probability). Use for \"List the stages of the default deal pipeline in order\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"object_type":{"description":"Object type that has pipelines: 'deals' or 'tickets' (also 'orders' and custom objects with pipelines).","maxLength":200,"title":"Object Type","type":"string"},"pipeline_id":{"description":"Id of the pipeline (for example 'default' or a numeric string).","maxLength":200,"title":"Pipeline Id","type":"string"}},"required":["object_type","pipeline_id"],"title":"list_pipeline_stagesArguments","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_custom_object_schemas":{"post":{"operationId":"list_custom_object_schemas","summary":"List the account's custom object schemas with object type id, name, labels, primary display property and dates. Property","description":"List the account's custom object schemas with object type id, name, labels, primary display property and dates. Property lists are left out. Use for \"What custom objects are defined in HubSpot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to list archived schemas instead of active ones.","title":"Archived"}},"title":"list_custom_object_schemasArguments","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_schema":{"post":{"operationId":"get_custom_object_schema","summary":"Get one custom object schema: labels, required and searchable properties, primary display property and its association d","description":"Get one custom object schema: labels, required and searchable properties, primary display property and its association definitions. Use for \"What associations does the vehicles custom object have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"object_type":{"description":"Object type id such as '2-1234567', or the fully qualified name such as 'p123_vehicles'.","maxLength":200,"title":"Object Type","type":"string"}},"required":["object_type"],"title":"get_custom_object_schemaArguments","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_association_labels":{"post":{"operationId":"list_association_labels","summary":"List association types and custom labels that can link one object type to another (for example deals to companies), with","description":"List association types and custom labels that can link one object type to another (for example deals to companies), with type id and category. Use for \"What association labels exist between deals and companies\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_object_type":{"description":"Object type the association starts from, for example 'deals'.","maxLength":200,"title":"From Object Type","type":"string"},"to_object_type":{"description":"Object type the association points to, for example 'companies'.","maxLength":200,"title":"To Object Type","type":"string"}},"required":["from_object_type","to_object_type"],"title":"list_association_labelsArguments","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}}}}