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.

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: info@hookdeck.com
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