Hookdeck Connections API

Create, update, list, archive, pause, and unpause connections. A connection routes events from a Source to a Destination and may carry rules (retry, alert, transform, filter, delay) that determine how the gateway processes events along that path.

Hookdeck Connections API is one of 12 APIs that Hookdeck publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 2 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 1 JSON Schema definition.

Tagged areas include Webhooks, Event Gateways, and Connections. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, 2 Naftiko capability specs, and 1 JSON Schema.

OpenAPI Specification

hookdeck-connections-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Hookdeck Connections API
  version: 1.0.0
  description: Create, update, list, archive, pause, and unpause connections. A connection routes events from a source to
    a destination and may carry rules (retry, alert, transform, filter, delay).
  contact:
    name: Hookdeck Support
    url: https://hookdeck.com/contact-us
    email: [email protected]
servers:
- url: https://api.hookdeck.com/2025-07-01
  description: Production API
security:
- bearerAuth: []
- basicAuth: []
tags:
- name: Connections
  description: A connection lets you route webhooks from a source to a destination, using a rule.
paths:
  /connections:
    get:
      operationId: getConnections
      summary: Retrieve connections
      description: This endpoint lists connections, or a subset of connections.
      tags:
      - Connections
      responses:
        '200':
          description: List of connections
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectionPaginatedResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters:
      - in: query
        name: id
        schema:
          anyOf:
          - type: string
            maxLength: 255
          - type: array
            items:
              type: string
              maxLength: 255
          description: Filter by connection IDs
      - in: query
        name: name
        schema:
          anyOf:
          - type: string
            pattern: ^[A-z0-9-_]+$
            maxLength: 155
            nullable: true
          - $ref: '#/components/schemas/Operators'
          - type: array
            items:
              type: string
              pattern: ^[A-z0-9-_]+$
              maxLength: 155
              nullable: true
          description: Filter by connection name
      - in: query
        name: destination_id
        schema:
          anyOf:
          - type: string
            maxLength: 255
          - type: array
            items:
              type: string
              maxLength: 255
          description: Filter by associated destination IDs
      - in: query
        name: source_id
        schema:
          anyOf:
          - type: string
            maxLength: 255
          - type: array
            items:
              type: string
              maxLength: 255
          description: Filter by associated source IDs
      - in: query
        name: disabled
        schema:
          type: boolean
          description: Include disabled resources in the response
      - in: query
        name: disabled_at
        schema:
          anyOf:
          - type: string
            format: date-time
            nullable: true
          - $ref: '#/components/schemas/Operators'
          description: Date the connection was disabled
      - in: query
        name: full_name
        schema:
          type: string
          pattern: ^[a-z0-9-_>\s]+$
          maxLength: 155
          description: Fuzzy match the concatenated source and connection name. The source name and connection name must be
            separated by " -> "
      - in: query
        name: paused_at
        schema:
          anyOf:
          - type: string
            format: date-time
            nullable: true
          - $ref: '#/components/schemas/Operators'
          description: Date the connection was paused
      - in: query
        name: order_by
        schema:
          anyOf:
          - type: string
            maxLength: 255
            enum:
            - full_name
            - created_at
            - updated_at
            - sources.updated_at
            - sources.created_at
            - destinations.updated_at
            - destinations.created_at
          - type: array
            items:
              type: string
              maxLength: 255
              enum:
              - full_name
              - created_at
              - updated_at
              - sources.updated_at
              - sources.created_at
              - destinations.updated_at
              - destinations.created_at
            minItems: 2
            maxItems: 2
          description: Sort key(s)
      - in: query
        name: dir
        schema:
          anyOf:
          - type: string
            enum:
            - asc
            - desc
          - type: array
            items:
              type: string
              enum:
              - asc
              - desc
            minItems: 2
            maxItems: 2
          description: Sort direction(s)
      - in: query
        name: limit
        schema:
          type: integer
          minimum: 0
          maximum: 255
          description: Result set size
      - in: query
        name: next
        schema:
          type: string
          maxLength: 255
          description: The ID to provide in the query to get the next set of results
      - in: query
        name: prev
        schema:
          type: string
          maxLength: 255
          description: The ID to provide in the query to get the previous set of results
    post:
      operationId: createConnection
      summary: Create a connection
      description: This endpoint creates a connection. You can create a connection's underlying source, destination, and rules
        with a single call by declaring an object for any of those resources. You can reuse a source or destination by referencing
        their ID.
      tags:
      - Connections
      responses:
        '200':
          description: A single connection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  pattern: ^[A-z0-9-_]+$
                  maxLength: 155
                  nullable: true
                  description: A unique name of the connection for the source
                description:
                  type: string
                  maxLength: 500
                  nullable: true
                  description: Description for the connection
                destination_id:
                  type: string
                  maxLength: 255
                  nullable: true
                  description: ID of a destination to bind to the connection
                source_id:
                  type: string
                  maxLength: 255
                  nullable: true
                  description: ID of a source to bind to the connection
                destination:
                  type: object
                  properties:
                    name:
                      type: string
                      pattern: ^[A-z0-9-_]+$
                      maxLength: 155
                      description: Name for the destination
                    type:
                      type: string
                      enum:
                      - HTTP
                      - CLI
                      - MOCK_API
                      description: Type of the destination
                      default: HTTP
                    description:
                      type: string
                      maxLength: 500
                      nullable: true
                      description: Description for the destination
                    config:
                      $ref: '#/components/schemas/VerificationConfig'
                  required:
                  - name
                  additionalProperties: false
                  description: Destination input object
                source:
                  type: object
                  properties:
                    name:
                      type: string
                      pattern: ^[A-z0-9-_]+$
                      maxLength: 155
                      description: A unique name for the source
                    type:
                      type: string
                      enum:
                      - AIPRISE
                      - ALCHEMY
                      - DOCUSIGN
                      - INTERCOM
                      - PUBLISH_API
                      - WEBHOOK
                      - HTTP
                      - MANAGED
                      - HOOKDECK_OUTPOST
                      - SANITY
                      - BIGCOMMERCE
                      - CLAUDE
                      - OPENAI
                      - POLAR
                      - BRIDGE_XYZ
                      - BRIDGE_API
                      - CHARGEBEE_BILLING
                      - CHAINDOTS
                      - CLOUDSIGNAL
                      - COINBASE
                      - COURIER
                      - CURSOR
                      - MERAKI
                      - MICROSOFT_GRAPH
                      - MICROSOFT_SHAREPOINT
                      - FIREBLOCKS
                      - FRONTAPP
                      - ZOOM
                      - TWITTER
                      - RECHARGE
                      - RECURLY
                      - REVOLUT
                      - RING_CENTRAL
                      - STRIPE
                      - PROPERTY-FINDER
                      - QUOTER
                      - SHOPIFY
                      - TWILIO
                      - GITHUB
                      - POSTMARK
                      - TALLY
                      - TYPEFORM
                      - PICQER
                      - XERO
                      - SVIX
                      - RESEND
                      - GEMINI
                      - ADYEN
                      - AKENEO
                      - GITLAB
                      - WOOCOMMERCE
                      - OKTA
                      - OURA
                      - COMMERCELAYER
                      - HUBSPOT
                      - MAILGUN
                      - PERSONA
                      - PIPEDRIVE
                      - SENDGRID
                      - WORKOS
                      - SYNCTERA
                      - AWS_SNS
                      - THREE_D_EYE
                      - TWITCH
                      - ENODE
                      - FAUNDIT
                      - FAVRO
                      - LINEAR
                      - SHIPBOB
                      - SHIPHERO
                      - SHOPLINE
                      - WIX
                      - NMI
                      - NEON
                      - ORB
                      - PYLON
                      - RAZORPAY
                      - REPAY
                      - SQUARE
                      - SOLIDGATE
                      - TRELLO
                      - EBAY
                      - TELNYX
                      - DISCORD
                      - TOKENIO
                      - FISERV
                      - FUSIONAUTH
                      - BONDSMITH
                      - VERCEL_LOG_DRAINS
                      - VERCEL
                      - TEBEX
                      - SLACK
                      - SMARTCAR
                      - MAILCHIMP
                      - NUVEMSHOP
                      - PADDLE
                      - PAYPAL
                      - PAYMOB
                      - PAYSTACK
                      - SCRAPFLY
                      - PORTAL
                      - TREEZOR
                      - PRAXIS
                      - CUSTOMERIO
                      - EXACT_ONLINE
                      - FACEBOOK
                      - WHATSAPP
                      - REPLICATE
                      - TIKTOK
                      - TIKTOK_SHOP
                      - AIRWALLEX
                      - ASCEND
                      - ALIPAY
                      - ZENDESK
                      - UPOLLO
                      - SMILE
                      - NYLAS
                      - CLIO
                      - GOCARDLESS
                      - LINKEDIN
                      - LITHIC
                      - STRAVA
                      - UTILA
                      - MONDAY
                      - GREENDOT
                      - ZEROHASH
                      - ZIFT
                      - ETHOCA
                      - AIRTABLE
                      - ASANA
                      - ASHBY
                      - FASTSPRING
                      - PAYPRO_GLOBAL
                      - USPS
                      - WALMART
                      - FIREFLIES
                      - FLEXPORT
                      - UBER
                      - WECHAT
                      - CIRCLE
                      description: Type of the source
                      default: WEBHOOK
                    description:
                      type: string
                      maxLength: 500
                      nullable: true
                      description: Description for the source
                    config:
                      $ref: '#/components/schemas/SourceTypeConfig'
                  required:
                  - name
                  additionalProperties: false
                  description: Source input object
                rules:
                  type: array
                  items:
                    $ref: '#/components/schemas/Rule'
              additionalProperties: false
    put:
      operationId: upsertConnection
      summary: Create/Update a connection
      description: This endpoint creates a connection, or updates an existing connection by name. A connection's source and
        destination cannot be updated.
      tags:
      - Connections
      responses:
        '200':
          description: A single connection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  pattern: ^[A-z0-9-_]+$
                  maxLength: 155
                  nullable: true
                  description: A unique name of the connection for the source
                description:
                  type: string
                  maxLength: 500
                  nullable: true
                  description: Description for the connection
                destination_id:
                  type: string
                  maxLength: 255
                  nullable: true
                  description: ID of a destination to bind to the connection
                source_id:
                  type: string
                  maxLength: 255
                  nullable: true
                  description: ID of a source to bind to the connection
                destination:
                  type: object
                  properties:
                    name:
                      type: string
                      pattern: ^[A-z0-9-_]+$
                      maxLength: 155
                      description: Name for the destination
                    type:
                      type: string
                      enum:
                      - HTTP
                      - CLI
                      - MOCK_API
                      description: Type of the destination
                      default: HTTP
                    description:
                      type: string
                      maxLength: 500
                      nullable: true
                      description: Description for the destination
                    config:
                      $ref: '#/components/schemas/VerificationConfig'
                  required:
                  - name
                  additionalProperties: false
                  description: Destination input object
                source:
                  type: object
                  properties:
                    name:
                      type: string
                      pattern: ^[A-z0-9-_]+$
                      maxLength: 155
                      description: A unique name for the source
                    type:
                      type: string
                      enum:
                      - AIPRISE
                      - ALCHEMY
                      - DOCUSIGN
                      - INTERCOM
                      - PUBLISH_API
                      - WEBHOOK
                      - HTTP
                      - MANAGED
                      - HOOKDECK_OUTPOST
                      - SANITY
                      - BIGCOMMERCE
                      - CLAUDE
                      - OPENAI
                      - POLAR
                      - BRIDGE_XYZ
                      - BRIDGE_API
                      - CHARGEBEE_BILLING
                      - CHAINDOTS
                      - CLOUDSIGNAL
                      - COINBASE
                      - COURIER
                      - CURSOR
                      - MERAKI
                      - MICROSOFT_GRAPH
                      - MICROSOFT_SHAREPOINT
                      - FIREBLOCKS
                      - FRONTAPP
                      - ZOOM
                      - TWITTER
                      - RECHARGE
                      - RECURLY
                      - REVOLUT
                      - RING_CENTRAL
                      - STRIPE
                      - PROPERTY-FINDER
                      - QUOTER
                      - SHOPIFY
                      - TWILIO
                      - GITHUB
                      - POSTMARK
                      - TALLY
                      - TYPEFORM
                      - PICQER
                      - XERO
                      - SVIX
                      - RESEND
                      - GEMINI
                      - ADYEN
                      - AKENEO
                      - GITLAB
                      - WOOCOMMERCE
                      - OKTA
                      - OURA
                      - COMMERCELAYER
                      - HUBSPOT
                      - MAILGUN
                      - PERSONA
                      - PIPEDRIVE
                      - SENDGRID
                      - WORKOS
                      - SYNCTERA
                      - AWS_SNS
                      - THREE_D_EYE
                      - TWITCH
                      - ENODE
                      - FAUNDIT
                      - FAVRO
                      - LINEAR
                      - SHIPBOB
                      - SHIPHERO
                      - SHOPLINE
                      - WIX
                      - NMI
                      - NEON
                      - ORB
                      - PYLON
                      - RAZORPAY
                      - REPAY
                      - SQUARE
                      - SOLIDGATE
                      - TRELLO
                      - EBAY
                      - TELNYX
                      - DISCORD
                      - TOKENIO
                      - FISERV
                      - FUSIONAUTH
                      - BONDSMITH
                      - VERCEL_LOG_DRAINS
                      - VERCEL
                      - TEBEX
                      - SLACK
                      - SMARTCAR
                      - MAILCHIMP
                      - NUVEMSHOP
                      - PADDLE
                      - PAYPAL
                      - PAYMOB
                      - PAYSTACK
                      - SCRAPFLY
                      - PORTAL
                      - TREEZOR
                      - PRAXIS
                      - CUSTOMERIO
                      - EXACT_ONLINE
                      - FACEBOOK
                      - WHATSAPP
                      - REPLICATE
                      - TIKTOK
                      - TIKTOK_SHOP
                      - AIRWALLEX
                      - ASCEND
                      - ALIPAY
                      - ZENDESK
                      - UPOLLO
                      - SMILE
                      - NYLAS
                      - CLIO
                      - GOCARDLESS
                      - LINKEDIN
                      - LITHIC
                      - STRAVA
                      - UTILA
                      - MONDAY
                      - GREENDOT
                      - ZEROHASH
                      - ZIFT
                      - ETHOCA
                      - AIRTABLE
                      - ASANA
                      - ASHBY
                      - FASTSPRING
                      - PAYPRO_GLOBAL
                      - USPS
                      - WALMART
                      - FIREFLIES
                      - FLEXPORT
                      - UBER
                      - WECHAT
                      - CIRCLE
                      description: Type of the source
                      default: WEBHOOK
                    description:
                      type: string
                      maxLength: 500
                      nullable: true
                      description: Description for the source
                    config:
                      $ref: '#/components/schemas/SourceTypeConfig'
                  required:
                  - name
                  additionalProperties: false
                  description: Source input object
                rules:
                  type: array
                  items:
                    $ref: '#/components/schemas/Rule'
              additionalProperties: false
  /connections/count:
    get:
      operationId: countConnections
      summary: Count connections
      description: ''
      tags:
      - Connections
      responses:
        '200':
          description: Count of connections
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: number
                    format: float
                    description: Count of connections
                required:
                - count
                additionalProperties: false
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters:
      - in: query
        name: destination_id
        schema:
          anyOf:
          - type: string
            maxLength: 255
          - type: array
            items:
              type: string
              maxLength: 255
          description: Filter by associated destination IDs
      - in: query
        name: source_id
        schema:
          anyOf:
          - type: string
            maxLength: 255
          - type: array
            items:
              type: string
              maxLength: 255
          description: Filter by associated source IDs
      - in: query
        name: disabled
        schema:
          type: boolean
          description: Include disabled resources in the response
      - in: query
        name: disabled_at
        schema:
          anyOf:
          - type: string
            format: date-time
            nullable: true
          - $ref: '#/components/schemas/Operators'
          description: Date the connection was disabled
      - in: query
        name: paused_at
        schema:
          anyOf:
          - type: string
            format: date-time
            nullable: true
          - $ref: '#/components/schemas/Operators'
          description: Date the connection was paused
  /connections/{id}:
    get:
      operationId: getConnection
      summary: Retrieve a connection
      description: This endpoint retrieves a specific connection.
      tags:
      - Connections
      responses:
        '200':
          description: A single connection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '410':
          description: Gone
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters:
      - in: path
        name: id
        schema:
          type: string
          description: Connection ID
        required: true
    put:
      operationId: updateConnection
      summary: Update a connection
      description: This endpoint updates a connection.
      tags:
      - Connections
      responses:
        '200':
          description: A single connection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters:
      - in: path
        name: id
        schema:
          type: string
          description: Connection ID
        required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  pattern: ^[A-z0-9-_]+$
                  maxLength: 155
                  nullable: true
                description:
                  type: string
                  maxLength: 500
                  nullable: true
                  description: Description for the connection
                rules:
                  type: array
                  items:
                    $ref: '#/components/schemas/Rule'
              additionalProperties: false
    delete:
      operationId: deleteConnection
      summary: Delete a connection
      description: This endpoint permanently deletes a connection. This action cannot be undone.
      tags:
      - Connections
      responses:
        '200':
          description: A single connection
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: ID of the connection
                required:
                - id
                additionalProperties: false
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
  /connections/{id}/disable:
    put:
      operationId: disableConnection
      summary: Disable a connection
      description: This endpoint disables a connection. Notice that a connection is enabled by default when created. A disabled
        connection will no longer receive or deliver any events.
      tags:
      - Connections
      responses:
        '200':
          description: A single connection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters:
      - in: path
        name: id
        schema:
          type: string
          description: Connection ID
        required: true
  /connections/{id}/archive:
    put:
      operationId: disableConnection_archive
      summary: Disable a connection
      description: This endpoint disables a connection. Notice that a connection is enabled by default when created. A disabled
        connection will no longer receive or deliver any events.
      tags:
      - Connections
      responses:
        '200':
          description: A single connection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters:
      - in: path
        name: id
        schema:
          type: string
          description: Connection ID
        required: true
  /connections/{id}/enable:
    put:
      operationId: enableConnection
      summary: Enable a connection
      description: This endpoint enables a connection that has been previously disabled. The associated source and destination
        will also be enabled if they were previously disabled.
      tags:
      - Connections
      responses:
        '200':
          description: A single connection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters:
      - in: path
        name: id
        schema:
          type: string
          description: Connection ID
        required: true
  /connections/{id}/unarchive:
    put:
      operationId: enableConnection_unarchive
      summary: Enable a connection
      description: This endpoint enables a connection that has been previously disabled. The associated source and destination
        will also be enabled if they were previously disabled.
      tags:
      - Connections
      responses:
        '200':
          description: A single connection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters:
      - in: path
        name: id
        schema:
          type: string
          description: Connection ID
        required: true
  /connections/{id}/pause:
    put:
      operationId: pauseConnection
      summary: Pause a connection
      description: This endpoint pauses a connection. A paused connection will still receive events, but those events will
        be marked with a status of `HOLD` and will be delivered only once the connection is unpaused.
      tags:
      - Connections
      responses:
        '200':
          description: A single connection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
      parameters:
      - in: path
        name: id
        schema:
          type: string
          description: Connection ID
        required:

# --- truncated at 32 KB (229 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hookdeck/refs/heads/main/openapi/hookdeck-connections-api-openapi.yml