openapi: 3.2.0
info:
title: ClickFunnels Webhooks::Outgoing::Endpoint API
termsOfService: https://www.clickfunnels.com/terms-of-service
contact:
name: ClickFunnels API Team
url: https://developers.myclickfunnels.com
x-logo:
url: https://statics.myclickfunnels.com/image/1126065/file/31edf05760fafe41a82f16a668ab251f.png
description: 'The ClickFunnels REST API that powers webhooks, native integrations, and Zapier lets you manage your ClickFunnels data, automate your workflows, and recreate ClickFunnels functionality in your own apps.
'
license:
name: MIT
url: https://opensource.org/licenses/MIT
version: 2.0.0
servers:
- url: https://{subdomain}.myclickfunnels.com/api/v2
description: ClickFunnels API
variables:
subdomain:
default: myworkspace
security:
- BearerAuth: []
tags:
- name: Webhooks::Outgoing::Endpoint
description: Webhook Outgoing Endpoints
paths:
/workspaces/{workspace_id}/webhooks/outgoing/endpoints:
get:
tags:
- Webhooks::Outgoing::Endpoint
summary: List Endpoints
description: List webhook endpoints for a workspace
operationId: listWebhooksOutgoingEndpoints
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
- $ref: '#/components/parameters/after'
- $ref: '#/components/parameters/sort_order'
- $ref: '#/components/parameters/sort_property'
responses:
'200':
description: OK
headers:
Pagination-Next:
$ref: '#/components/headers/PaginationNext'
Link:
$ref: '#/components/headers/Link'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/WebhooksOutgoingEndpointAttributes'
example:
- id: 2
public_id: oFinTJ
workspace_id: 42000
url: https://example.com/some-endpoint-url
name: Example Endpoint
event_type_ids:
- contact.identified
- one-time-order.completed
api_version: 2
created_at: '2025-01-01T00:00:00.000Z'
updated_at: '2025-01-01T00:00:00.000Z'
page_ids: []
funnel_ids: []
- id: 3
public_id: KlIDGN
workspace_id: 42000
url: https://example.com/some-endpoint-url
name: Example Endpoint
event_type_ids:
- contact.identified
- one-time-order.completed
api_version: 2
created_at: '2025-01-01T00:00:00.000Z'
updated_at: '2025-01-01T00:00:00.000Z'
page_ids: []
funnel_ids: []
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: API key missing or invalid
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Not found - This usually happens when you try to access a record that does not exist in your account. It can also happen when the provided parent record is missing, e.g. you have put in a non-existent Workspaces parent ID.
example:
error: 'Not found: Record missing'
post:
tags:
- Webhooks::Outgoing::Endpoint
summary: Create Endpoint
description: Add a new webhook endpoint to a workspace
operationId: createWebhooksOutgoingEndpoints
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
requestBody:
description: Information about a new Endpoint
required: true
content:
application/json:
schema:
type: object
properties:
webhooks_outgoing_endpoint:
type: object
$ref: '#/components/schemas/WebhooksOutgoingEndpointParameters'
example:
webhooks_outgoing_endpoint:
url: https://example.com/some-endpoint-url
name: Example Endpoint
event_type_ids:
- contact.identified
- one-time-order.completed
page_ids: []
funnel_ids: []
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/WebhooksOutgoingEndpointAttributes'
example:
id: 5
public_id: GrVNvI
workspace_id: 42000
url: https://example.com/some-endpoint-url
name: Example Endpoint
event_type_ids:
- contact.identified
- one-time-order.completed
api_version: 2
created_at: '2025-01-01T00:00:00.000Z'
updated_at: '2025-01-01T00:00:00.000Z'
page_ids: []
funnel_ids: []
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: 'Bad request: HTTP body must be valid JSON'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: API key missing or invalid
/webhooks/outgoing/endpoints/{id}:
get:
tags:
- Webhooks::Outgoing::Endpoint
summary: Fetch Endpoint
description: Retrieve a webhook endpoint for a workspace
operationId: getWebhooksOutgoingEndpoints
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WebhooksOutgoingEndpointAttributes'
example:
id: 4
public_id: yGJgsb
workspace_id: 42000
url: https://example.com/some-endpoint-url
name: Example Endpoint
event_type_ids:
- contact.identified
- one-time-order.completed
api_version: 2
created_at: '2025-01-01T00:00:00.000Z'
updated_at: '2025-01-01T00:00:00.000Z'
page_ids: []
funnel_ids: []
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: API key missing or invalid
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: 'Not found: Record missing'
put:
tags:
- Webhooks::Outgoing::Endpoint
summary: Update Endpoint
description: Update a webhook endpoint for a workspace
operationId: updateWebhooksOutgoingEndpoints
parameters:
- $ref: '#/components/parameters/id'
requestBody:
description: Information about updated fields in Endpoint
required: true
content:
application/json:
schema:
type: object
properties:
webhooks_outgoing_endpoint:
type: object
$ref: '#/components/schemas/WebhooksOutgoingEndpointParametersUpdate'
example:
webhooks_outgoing_endpoint:
url: https://example.com/some-endpoint-url
name: Example Endpoint
event_type_ids:
- contact.identified
- one-time-order.completed
page_ids: []
funnel_ids: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WebhooksOutgoingEndpointAttributes'
example:
id: 7
public_id: esoAND
workspace_id: 42000
url: https://example.com/some-endpoint-url
name: Example Endpoint
event_type_ids:
- contact.identified
- one-time-order.completed
api_version: 2
created_at: '2025-01-01T00:00:00.000Z'
updated_at: '2025-01-01T00:00:00.000Z'
page_ids: []
funnel_ids: []
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: 'Bad request: HTTP body must be valid JSON'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: API key missing or invalid
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: 'Not found: Record missing'
delete:
tags:
- Webhooks::Outgoing::Endpoint
summary: Remove Endpoint
description: Delete a webhook endpoint for a workspace
operationId: removeWebhooksOutgoingEndpoints
parameters:
- $ref: '#/components/parameters/id'
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: API key missing or invalid
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: 'Not found: Record missing'
components:
parameters:
id:
name: id
in: path
required: true
schema:
type: string
sort_property:
name: sort_property
in: query
description: 'Sort property of a list response. The default is id and thus the created_at order.
If you sort by other properties, we additionally sort by id implicitly as a secondary sort property, so that you can rely on the sort order to be deterministic even if the main sort property ends up with the same values.
'
required: false
schema:
type: string
enum:
- id
- updated_at
sort_order:
name: sort_order
in: query
description: Sort order of a list response. Use 'desc' to reverse the default 'asc' (ascending) sort order. Examples [in our guides](https://developers.myclickfunnels.com/docs/pagination).
required: false
schema:
type: string
enum:
- asc
- desc
after:
name: after
in: query
required: false
schema:
type: string
description: ID of item after which the collection should be returned. More examples and info about pagination [in our guides](https://developers.myclickfunnels.com/docs/pagination).
schemas:
WebhooksOutgoingEndpointAttributes:
type: object
title: Webhooks
description: Webhooks
properties:
id:
type: integer
description: Unique identifier for the webhook endpoint
public_id:
type:
- string
- 'null'
description: Unique identifier for the webhook endpoint visible in the UI
workspace_id:
type: integer
description: Workspace ID
url:
type: string
description: The URL that ClickFunnels event webhooks will be sent to.
name:
type: string
description: The custom name for the webhook endpoint.
event_type_ids:
type:
- array
- 'null'
minContains: 0
contains:
type: string
description: 'The event types that the webhook endpoint subscribes to. Each entry is a dotted or slashed string key
(e.g. `contact.updated`, `order.completed`, `orders/invoice.paid`) — these are NOT numeric IDs.
Retrieve the full list of valid keys from GET /api/v2/webhooks/outgoing/event_types
(operationId: `listWebhooksOutgoingEventTypes`). The Webhook Event Types guide
provides supplementary context.
'
api_version:
type:
- integer
- 'null'
description: The version of the API that the webhook endpoint is using. Only V2 endpoints can currently be created via the API, but V1 endpoints can be created via the UI. They will be visible when listing endpoints.
created_at:
type:
- string
- 'null'
format: date-time
description: Created at
updated_at:
type:
- string
- 'null'
format: date-time
description: Updated at
page_ids:
type:
- array
- 'null'
description: 'The IDs of the pages that this endpoint is scoped to. Only events triggered from these pages will be sent to this endpoint.
Can be null when first created. After an update, it can be null, an empty array or an array of page IDs.
'
funnel_ids:
type:
- array
- 'null'
description: 'The IDs of the funnels that this endpoint is scoped to. Only events triggered from these funnels will be sent to this endpoint.
Can be null when first created. After an update, it can be null, an empty array or an array of page IDs.
'
example:
id: 1
public_id: RcHPAt
workspace_id: 42000
url: https://example.com/some-endpoint-url
name: Example Endpoint
event_type_ids:
- contact.identified
- one-time-order.completed
api_version: 2
created_at: '2025-01-01T00:00:00.000Z'
updated_at: '2025-01-01T00:00:00.000Z'
page_ids: []
funnel_ids: []
required:
- api_version
- created_at
- event_type_ids
- funnel_ids
- id
- name
- page_ids
- public_id
- updated_at
- url
- workspace_id
WebhooksOutgoingEndpointParametersUpdate:
type: object
title: Webhooks
description: Webhooks
required: []
properties:
url:
type: string
description: The URL that ClickFunnels event webhooks will be sent to.
name:
type: string
description: The custom name for the webhook endpoint.
event_type_ids:
type: array
description: 'The event type keys to which the webhook endpoint subscribes. Each value is a dotted or slashed string key
(e.g. `contact.updated`, `order.completed`, `orders/invoice.paid`) — these are NOT numeric IDs.
Retrieve the full list of valid keys from GET /api/v2/webhooks/outgoing/event_types
(operationId: `listWebhooksOutgoingEventTypes`). The Webhook Event Types guide provides supplementary context.
On create, one or more valid `event_type_ids` are required.
To remove one `event_type_id` on update, pass an array of all current `event_type_ids` less the one to be removed.
On update to remove all `event_type_ids` pass an empty array.
'
page_ids:
type:
- array
- 'null'
description: 'The pages scope of the webhook, i.e., the endpoint will only subscribe to events triggered by users from the pages with the given IDs.
If not configured initially (equalling null) or empty, subscribes to events fired from any page in the workspace.
Updating the array will override existing values. To remove all `page_ids` pass an empty array or null.
'
funnel_ids:
type:
- array
- 'null'
description: 'The funnel scope of the webhook, i.e., the endpoint will only subscribe to events triggered by users from the funnels with the given IDs.
If not configured initially (equalling null) or empty, subscribes to events fired from any funnel in the workspace.
Updating the array will override existing values. To remove all `funnel_ids` pass an empty array or null.
'
example:
webhooks_outgoing_endpoint:
url: https://example.com/some-endpoint-url
name: Example Endpoint
event_type_ids:
- contact.identified
- one-time-order.completed
page_ids: []
funnel_ids: []
WebhooksOutgoingEndpointParameters:
type: object
title: Webhooks
description: Webhooks
required:
- url
- name
properties:
url:
type: string
description: The URL that ClickFunnels event webhooks will be sent to.
name:
type: string
description: The custom name for the webhook endpoint.
event_type_ids:
type: array
description: 'The event type keys to which the webhook endpoint subscribes. Each value is a dotted or slashed string key
(e.g. `contact.updated`, `order.completed`, `orders/invoice.paid`) — these are NOT numeric IDs.
Retrieve the full list of valid keys from GET /api/v2/webhooks/outgoing/event_types
(operationId: `listWebhooksOutgoingEventTypes`). The Webhook Event Types guide provides supplementary context.
On create, one or more valid `event_type_ids` are required.
To remove one `event_type_id` on update, pass an array of all current `event_type_ids` less the one to be removed.
On update to remove all `event_type_ids` pass an empty array.
'
page_ids:
type:
- array
- 'null'
description: 'The pages scope of the webhook, i.e., the endpoint will only subscribe to events triggered by users from the pages with the given IDs.
If not configured initially (equalling null) or empty, subscribes to events fired from any page in the workspace.
Updating the array will override existing values. To remove all `page_ids` pass an empty array or null.
'
funnel_ids:
type:
- array
- 'null'
description: 'The funnel scope of the webhook, i.e., the endpoint will only subscribe to events triggered by users from the funnels with the given IDs.
If not configured initially (equalling null) or empty, subscribes to events fired from any funnel in the workspace.
Updating the array will override existing values. To remove all `funnel_ids` pass an empty array or null.
'
example:
webhooks_outgoing_endpoint:
url: https://example.com/some-endpoint-url
name: Example Endpoint
event_type_ids:
- contact.identified
- one-time-order.completed
page_ids: []
funnel_ids: []
headers:
Link:
description: A direct link to the next page for the cursor-based pagination. It includes the `after` and the Pagination-Next ID value.
schema:
type: string
PaginationNext:
description: ID of the last item in the current response after which more records exist. You can use it in an `after` query parameter for cursor-based pagination to get to the next page.
schema:
type: string
securitySchemes:
BearerAuth:
type: http
scheme: bearer
externalDocs:
description: More in-depth guides and further resources
url: https://developers.myclickfunnels.com