Hotglue Connectors API
The Connectors API from Hotglue — 6 operation(s) for connectors.
The Connectors API from Hotglue — 6 operation(s) for connectors.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/hotglue:hotglue-connectors-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: hotglue Connectors API
version: '1.2'
servers:
- url: https://api.hotglue.com
security:
- sec0: []
tags:
- name: Connectors
paths:
/{env_id}/{flow_id}/{tenant}/connectors/status:
get:
summary: Poll write request
description: 'If a real-time write request returns async: true, you can use this endpoint to get the result of the request.'
operationId: connector-status
parameters:
- name: env_id
in: path
description: ID of environment
schema:
type: string
required: true
- name: flow_id
in: path
description: ID of flow
schema:
type: string
required: true
- name: tenant
in: path
description: ID of tenant
schema:
type: string
required: true
- name: taskId
in: query
description: Task ID of the real-time write request.
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
has_data: true
result:
async: false
jobId: UvzWy0
taskId: 3cecd80d-b377-4566-9d8c-e1e870b887ab
state:
bookmarks:
Contact:
- hash: 07f9838d07fca662ce396d1cce9db0893eb3ffee4290ffc20d992a8fde333e2e
success: false
error: '[{"message":"No such column ''EmailAddress'' on sobject of type Contact","errorCode":"INVALID_FIELD"}]'
summary:
Contact:
success: 0
fail: 1
existing: 0
updated: 0
status_code: 200
schema:
type: object
properties:
has_data:
type: boolean
example: true
description: Indicates whether the response contains data
result:
type: object
properties:
async:
type: boolean
example: false
description: Indicates whether the job is asynchronous
jobId:
type: string
example: UvzWy0
description: A unique job identifier
taskId:
type: string
format: uuid
example: 3cecd80d-b377-4566-9d8c-e1e870b887ab
description: A unique task identifier
state:
type: object
properties:
bookmarks:
type: object
additionalProperties:
type: array
items:
type: object
properties:
hash:
type: string
example: 07f9838d07fca662ce396d1cce9db0893eb3ffee4290ffc20d992a8fde333e2e
success:
type: boolean
example: false
id:
type: string
example: 003Kc00000AnofgIAB
error:
type: string
example: '[{"message":"No such column ''EmailAddress'' on sobject of type Contact","errorCode":"INVALID_FIELD"}]'
description: Contains processing status for each record type
summary:
type: object
additionalProperties:
type: object
properties:
success:
type: integer
example: 0
fail:
type: integer
example: 1
existing:
type: integer
example: 0
updated:
type: integer
example: 0
description: Summary of processing outcome per record type
'400':
description: '400'
content:
application/json:
examples:
Result:
value:
Code: BadRequestError
Message: Title can't be blank
schema:
type: object
properties:
Code:
type: string
example: BadRequestError
Message:
type: string
example: Title can't be blank
deprecated: false
tags:
- Connectors
/{env_id}/{flow_id}/{tenant}/connectors/{connector_id}/{stream}:
post:
summary: Write to a connector
description: 'Write data directly to integrations in real-time. Note: this feature is in beta with limited support.'
operationId: connector-post
parameters:
- name: env_id
in: path
description: ID of environment
schema:
type: string
required: true
- name: flow_id
in: path
description: ID of flow
schema:
type: string
required: true
- name: tenant
in: path
description: ID of tenant
schema:
type: string
required: true
- name: connector_id
in: path
description: ID of connector
schema:
type: string
required: true
- name: stream
in: path
description: Stream name
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
required:
- source
properties:
data:
type: object
description: The object you want to post to a connector
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
async: false
jobId: UvzWy0
taskId: 3cecd80d-b377-4566-9d8c-e1e870b887ab
state:
bookmarks:
Contact:
- hash: 07f9838d07fca662ce396d1cce9db0893eb3ffee4290ffc20d992a8fde333e2e
success: false
error: '[{"message":"No such column ''EmailAddress'' on sobject of type Contact","errorCode":"INVALID_FIELD"}]'
summary:
Contact:
success: 0
fail: 1
existing: 0
updated: 0
logs: '...'
schema:
type: object
properties:
async:
type: boolean
example: false
description: Indicates whether the job is asynchronous
statusUrl:
type: string
description: If `async` is true, this will be the URL to poll for the status of the write request.
jobId:
type: string
example: UvzWy0
description: A unique job identifier
taskId:
type: string
format: uuid
example: 3cecd80d-b377-4566-9d8c-e1e870b887ab
description: A unique task identifier
state:
type: object
properties:
bookmarks:
type: object
additionalProperties:
type: array
items:
type: object
properties:
hash:
type: string
example: 07f9838d07fca662ce396d1cce9db0893eb3ffee4290ffc20d992a8fde333e2e
success:
type: boolean
example: false
id:
type: string
example: 003Kc00000AnofgIAB
error:
type: string
example: '[{"message":"No such column ''EmailAddress'' on sobject of type Contact","errorCode":"INVALID_FIELD"}]'
description: Contains processing status for each record type
summary:
type: object
additionalProperties:
type: object
properties:
success:
type: integer
example: 0
fail:
type: integer
example: 1
existing:
type: integer
example: 0
updated:
type: integer
example: 0
description: Summary of processing outcome per record type
logs:
type: string
example: '...'
description: Optional logs for debugging or processing information
'400':
description: '400'
content:
application/json:
examples:
Result:
value:
Code: BadRequestError
Message: Title can't be blank
schema:
type: object
properties:
Code:
type: string
example: BadRequestError
Message:
type: string
example: Title can't be blank
deprecated: false
tags:
- Connectors
/{env_id}/{flow_id}/{tenant}/connectors/{connector_id}/accesstoken:
get:
summary: Retrieve access token
description: Uses the tenant's linked credentials to retrieve a new access token for a given connector. Only supported on select connectors. Requires a secret API key, or a public API key with a tenant JWT passed via the `token` query parameter.
operationId: retrieve-access-token
parameters:
- name: env_id
in: path
description: ID of environment
schema:
type: string
required: true
- name: flow_id
in: path
description: ID of flow
schema:
type: string
required: true
- name: tenant
in: path
description: ID of tenant
schema:
type: string
required: true
- name: connector_id
in: path
description: ID of connector
schema:
type: string
example: salesforce
required: true
- name: include_properties
in: query
description: Comma separated list of properties to include in addition to acces token.
schema:
type: string
example: refresh_token,expires_in
required: false
- name: token
in: query
description: JWT token generated with your private signing key. Required when using a public API key instead of a secret API key.
schema:
type: string
required: false
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
success: true
access_token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
schema:
type: object
properties:
success:
type: boolean
example: true
access_token:
type: string
example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
'400':
description: '400'
content:
application/json:
examples:
Result:
value:
success: false
error_message: The refresh token is expired
schema:
type: object
properties:
success:
type: boolean
example: false
error_message:
type: string
example: The refresh token is expired
'404':
description: '404'
content:
application/json:
examples:
Result:
value:
success: false
error_message: This connector does not support the access token endpoint. Contact hotglue support for more information.
schema:
type: object
properties:
success:
type: boolean
example: false
error_message:
type: string
example: This connector does not support the access token endpoint. Contact hotglue support for more information.
deprecated: false
tags:
- Connectors
/{env_id}/{flow}/{user_id}/connectors/api/uploads/url:
post:
summary: Stage data for write jobs
description: Generates a presigned URL for uploading a JSON file to a connector's uploads directory. Upload the file to the returned URL, then trigger a write job to process it.
operationId: generate-connector-upload-url
parameters:
- name: env_id
in: path
description: ID of environment
schema:
type: string
required: true
- name: flow
in: path
description: ID of flow
schema:
type: string
required: true
- name: user_id
in: path
description: ID of tenant
schema:
type: string
required: true
- name: connector_id
in: path
description: ID of connector
schema:
type: string
example: api
required: true
responses:
'200':
description: Presigned upload URL generated
content:
application/json:
examples:
Result:
value:
presigned_url: https://s3.amazonaws.com/example-bucket/example-key?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=...
schema:
type: object
required:
- presigned_url
properties:
presigned_url:
type: string
format: uri
'400':
description: '400'
content:
application/json:
examples:
Result:
value:
Code: BadRequestError
Message: Connector api is not linked to flow customer-sync
schema:
type: object
properties:
Code:
type: string
example: BadRequestError
Message:
type: string
example: Connector api is not linked to flow customer-sync
deprecated: false
tags:
- Connectors
/{env_id}/{flow_id}/{tenant}/connectors/{connector_id}/availableFilters:
get:
summary: Retrieve Connector Available Filters
description: Fetch the Available Filters configuration for a connector
operationId: retrieve-connector-available-filters
parameters:
- name: env_id
in: path
description: ID of environment
schema:
type: string
required: true
- name: flow_id
in: path
description: ID of flow
schema:
type: string
required: true
- name: tenant
in: path
description: ID of tenant
schema:
type: string
required: true
- name: connector_id
in: path
description: ID of connector
schema:
type: string
example: netsuite-rest
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
filters_version: 1.0.0
reference_data:
vendors:
- vendor_id: '27'
vendor_name: Acme Corp
- vendor_id: '62'
vendor_name: Globex LLC
streams:
bills:
supported_operators:
- AND
- OR
supports_nesting_clauses: true
filters:
vendor_id:
label: Bill Vendor ID
supported_operators:
- EQ
- NEQ
- IN
- NOT IN
- LIKE
target_field: vendor_id
options: reference_data.vendors
vendor_name:
label: Bill Vendor Name
supported_operators:
- EQ
- NEQ
- IN
- NOT IN
- LIKE
target_field: vendor_name
options: reference_data.vendors
status:
label: Bill Status
supported_operators:
- EQ
- NEQ
- IN
- NOT IN
target_field: status
options:
- status: Pending Approval
- status: Approved
- status: Paid
schema:
type: object
properties:
filters_version:
type: string
description: Version of the filters schema format.
reference_data:
type: object
description: Lookup tables used as option sources for filterable fields; keys are referenced via dot notation in stream filter definitions (e.g. reference_data.vendors).
additionalProperties: true
streams:
type: object
description: Map of stream names to their filter definitions.
additionalProperties: true
'404':
description: '404'
content:
application/json:
examples:
NotFoundError:
value:
Code: NotFoundError
Message: 'Available filters not found for connector: netsuite-rest'
schema:
type: object
properties:
Code:
type: string
example: NotFoundError
Message:
type: string
example: 'Available filters not found for connector: netsuite-rest'
deprecated: false
tags:
- Connectors
/{env_id}/{flow_id}/{tenant}/connectors/{connector_id}/selectedFilters:
get:
summary: Retrieve Connector Selected Filters
description: Fetch the Connector Selected Filters configuration
operationId: retrieve-connector-selected-filters
parameters:
- name: env_id
in: path
description: ID of environment
schema:
type: string
required: true
- name: flow_id
in: path
description: ID of flow
schema:
type: string
required: true
- name: tenant
in: path
description: ID of tenant
schema:
type: string
required: true
- name: connector_id
in: path
description: ID of connector
schema:
type: string
example: salesforce
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
filters_version: 1.0.0
streams:
bills:
group_1:
clause_1_1:
field: transaction.entity
operator: IN
value:
- '26006'
- '26032'
operator_1_1: OR
clause_1_2:
field: Entity.altname
operator: IN
value:
- Siegwerk EIC LLC
- ProAmpac
- Dl's Refrigeration
operator_1: AND
clause_2:
field: BUILTIN.DF(transaction.status)
operator: EQ
value: 'Bill : Paid In Full'
schema:
type: object
properties: {}
'404':
description: '404'
content:
application/json:
examples:
NotFoundError:
value:
Code: NotFoundError
Message: 'Selected filters not found for connector: netsuite-rest'
FlowNotFoundError:
value:
Code: FlowNotFoundError
Message: Flow 'evTnoNWxsa' not found for tenant 'some_tenant' in environment 'test.env.io'
schema:
type: object
properties:
Code:
type: string
example: NotFoundError
Message:
type: string
example: 'Selected filters not found for connector: netsuite-rest'
deprecated: false
tags:
- Connectors
delete:
summary: Delete Connector Selected Filters
description: Delete the Connector Selected Filters configuration
operationId: delete-connector-selected-filters
parameters:
- name: env_id
in: path
description: ID of environment
schema:
type: string
required: true
- name: flow_id
in: path
description: ID of flow
schema:
type: string
required: true
- name: tenant
in: path
description: ID of tenant
schema:
type: string
required: true
- name: connector_id
in: path
description: ID of connector
schema:
type: string
example: salesforce
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
status: OK
schema:
type: object
properties:
status:
type: string
example: OK
'404':
description: '404'
content:
application/json:
examples:
FlowNotFoundError:
value:
Code: FlowNotFoundError
Message: Flow 'evTnoNWxsa' not found for tenant 'some_tenant' in environment 'test.env.io'
schema:
type: object
properties:
Code:
type: string
example: FlowNotFoundError
Message:
type: string
example: Flow 'evTnoNWxsa' not found for tenant 'some_tenant' in environment 'test.env.io'
deprecated: false
tags:
- Connectors
put:
summary: Save Connector Selected Filters
description: Save the Connector Selected Filters configuration
operationId: save-connector-selected-filters
parameters:
- name: env_id
in: path
description: ID of environment
schema:
type: string
required: true
- name: flow_id
in: path
description: ID of flow
schema:
type: string
required: true
- name: tenant
in: path
description: ID of tenant
schema:
type: string
required: true
- name: connector_id
in: path
description: ID of connector
schema:
type: string
example: salesforce
required: true
requestBody:
content:
application/json:
schema:
type: object
required:
- filters_version
- streams
properties:
filters_version:
type: string
description: The version of the filters configuration
example: 1.0.0
streams:
type: object
description: The streams and their filters
properties: {}
example:
filters_version: 1.0.0
streams:
bills:
group_14:
clause_1_1:
field: transaction.entity
operator: IN
value:
- '26006'
- '26032'
operator_1_1: OR
clause_1_2:
field: Entity.altname
operator: IN
value:
- Siegwerk EIC LLC
- ProAmpac
operator_1: AND
clause_2:
field: BUILTIN.DF(transaction.status)
operator: EQ
value: 'Bill : Paid In Full'
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
status: OK
schema:
type: object
properties:
status:
type: string
example: OK
'400':
description: '400'
content:
application/json:
examples:
SelectedFiltersValidationError:
value:
Code: SelectedFiltersValidationError
Message: Stream 'bills' / Group 'ROOT_GROUP' - Key name 'gsroup_14' is not valid, must start with 'clause_', 'group_' or 'operator_'
schema:
type: object
properties:
Code:
type: string
example: BadRequestError
Message:
type: string
example: 'Validation error: Stream ''bills'' / Group ''ROOT_GROUP'' - Key name ''gsroup_14'' is not valid, must start with ''clause_'', ''group_'' or ''operator_'''
'404':
description: '404'
content:
application/json:
examples:
FlowNotFoundError:
value:
Code: FlowNotFoundError
Message: Flow 'evTnoNWxsa' not found for tenant 'some_tenant' in environment 'test.env.io'
schema:
type: object
properties:
Code:
type: string
example: FlowNotFoundError
Message:
type: string
example: Flow 'evTnoNWxsa' not found for tenant 'some_tenant' in environment 'test.env.io'
deprecated: false
tags:
- Connectors
components:
securitySchemes:
sec0:
type: apiKey
in: header
name: x-api-key
x-readme:
headers: []
explorer-enabled: true
proxy-enabled: true
samples-enabled: true
x-readme-fauxas: true
x-provenance:
method: harvested
publisher: Hotglue
source: https://docs.hotglue.com/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)