Hotglue Connectors API

The Connectors API from Hotglue — 6 operation(s) for connectors.

Operations 8

GET /{env_id}/{flow_id}/{tenant}/connectors/status Poll write request #
POST /{env_id}/{flow_id}/{tenant}/connectors/{connector_id}/{stream} Write to a connector #
GET /{env_id}/{flow_id}/{tenant}/connectors/{connector_id}/accesstoken Retrieve access token #
POST /{env_id}/{flow}/{user_id}/connectors/api/uploads/url Stage data for write jobs #
GET /{env_id}/{flow_id}/{tenant}/connectors/{connector_id}/availableFilters Retrieve Connector Available Filters #
GET /{env_id}/{flow_id}/{tenant}/connectors/{connector_id}/selectedFilters Retrieve Connector Selected Filters #
DELETE /{env_id}/{flow_id}/{tenant}/connectors/{connector_id}/selectedFilters Delete Connector Selected Filters #
PUT /{env_id}/{flow_id}/{tenant}/connectors/{connector_id}/selectedFilters Save Connector Selected Filters #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hotglue:hotglue-connectors-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

hotglue-connectors-api-openapi.yml Raw ↑
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)