{ "opencollection": "1.0.0", "info": { "name": "ClickFunnels API", "version": "2.0.0" }, "request": { "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "items": [ { "info": { "name": "Team", "type": "folder" }, "items": [ { "info": { "name": "List Teams", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/teams", "params": [ { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all teams for the current account" }, { "info": { "name": "Fetch Team", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/teams/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single team" }, { "info": { "name": "Update Team", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/teams/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "List all teams for the current account" } ] }, { "info": { "name": "User", "type": "folder" }, "items": [ { "info": { "name": "List Users", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/users", "params": [ { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List users for the current account. Note: an OAuth/API integration authenticates as a\n**platform-agent user** (e.g. \"Default API Client\"), so this endpoint is scoped to that\nagent and typically returns only it — it is **not** the way to enumerate the human team\nmembers. To find real team members (for example a workflow `notify_step`'s `user_ids`),\nuse `GET /api/v2/teams/{team_id}/memberships` and read each membership's `user_id`\n(`notify_step` only accepts non-platform team members).\n" }, { "info": { "name": "Fetch User", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/users/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single user" }, { "info": { "name": "Fetch My User", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/me" }, "docs": "This endpoint returns the user data for the currently authenticated user.\nIt is useful for quickly retrieving user information without knowing the user ID.\nIt also includes optional data if the current user is a platform agent.\n" } ] }, { "info": { "name": "Workspace", "type": "folder" }, "items": [ { "info": { "name": "List Workspaces", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/teams/:team_id/workspaces", "params": [ { "name": "team_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of the workspace list. Defaults to `id`; `updated_at`\nand `name` are also supported.\n" } ] }, "docs": "List workspaces for a team" }, { "info": { "name": "Fetch Workspace", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a workspace" }, { "info": { "name": "Update Workspace", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a workspace" } ] }, { "info": { "name": "Site", "type": "folder" }, "items": [ { "info": { "name": "Fetch Site", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/site", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=head_code&expand[]=footer_code`). See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ] }, "docs": "Fetch the site for a workspace. Sites contain global code settings that apply to all pages and funnels.\n" }, { "info": { "name": "Update Site", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/site", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=head_code&expand[]=footer_code`). See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update the site for a workspace.\n\nYou can use head_code and footer_code parameters to inject custom code. Use head_code_mode and footer_code_mode to control whether code is appended or replaced.\n" } ] }, { "info": { "name": "Addresses::Country", "type": "folder" }, "items": [ { "info": { "name": "List Countries", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/addresses/countries" }, "docs": "List all countries, each with its ISO 3166-1 alpha-2 code (iso2). Use a country's iso2 as the country_code when setting an address, and as the {country_id} path segment when listing its regions." }, { "info": { "name": "Get Country", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/addresses/countries/:id", "params": [ { "name": "id", "value": "", "type": "path", "description": "The country's ISO 3166-1 alpha-2 code (e.g. \"US\")." } ] }, "docs": "Retrieve a single country by its ISO 3166-1 alpha-2 code." } ] }, { "info": { "name": "Addresses::Region", "type": "folder" }, "items": [ { "info": { "name": "List Country Regions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/addresses/countries/:country_id/regions", "params": [ { "name": "country_id", "value": "", "type": "path", "description": "The country's ISO 3166-1 alpha-2 code (e.g. \"US\")." } ] }, "docs": "List the regions (states/provinces) of a country. Use a region's `code` or `name` as the address `region` value. Many countries have no regions." } ] }, { "info": { "name": "Appointments::ScheduledEvent", "type": "folder" }, "items": [ { "info": { "name": "List Scheduled Events", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/appointments/scheduled_events", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List Scheduled Events" } ] }, { "info": { "name": "Blog", "type": "folder" }, "items": [ { "info": { "name": "List Blogs", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/blogs", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List blogs for the given workspace." }, { "info": { "name": "Fetch Blog", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a blog." }, { "info": { "name": "Update Blog", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a blog's metadata. Permitted fields: `name`, `seo_title`, `seo_description`, `seo_image_id`, `theme_id`.\n\nSee [Update blog metadata](https://accounts.myclickfunnels.com/.well-known/blogs/skill.md#update-blog-metadata) in the [Blogs Skill](https://accounts.myclickfunnels.com/.well-known/blogs/skill.md). For appearance and templates, see [Configure blog appearance with existing Theme and Page APIs](https://accounts.myclickfunnels.com/.well-known/blogs/skill.md#configure-blog-appearance-with" } ] }, { "info": { "name": "Blogs::Post", "type": "folder" }, "items": [ { "info": { "name": "List Blog Posts", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/:blog_id/posts", "params": [ { "name": "blog_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=markup` to include the PML markup for the post's visual content. Markup is opt-in on every endpoint (show, list, create, update) because PML serialization runs per post. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ] }, "docs": "List posts for the given blog. When importing content from an external source, page through this list first so you do not create a duplicate post, see [Discover the destination and check for duplicates](https://accounts.myclickfunnels.com/.well-known/blogs/import-external-post/skill.md#4-discover-the-destination-and-check-for-duplicates) in the [Import External Blog Post Skill](https://accounts.myclickfunnels.com/.well-known/blogs/import-external-post/skill.md)." }, { "info": { "name": "Create Blog Post", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/:blog_id/posts", "params": [ { "name": "blog_id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=markup` to include the PML markup for the post's visual content. Markup is opt-in on every endpoint (show, list, create, update) because PML serialization runs per post. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new post within the given blog.\n\nPass `markup` to set the post's visual content via PML. Invalid markup returns 400 and the post is not created. Pass `expand[]=markup` to have the markup returned in the response.\n\nSee [Creating a blog post](https://accounts.myclickfunnels.com/.well-known/blogs/skill.md#creating-a-blog-post) in the [Blogs Skill](https://accounts.myclickfunnels.com/.well-known/blogs/skill.md) for the permitted fields and the publish-state rules. To copy an article in from" }, { "info": { "name": "Fetch Blog Post", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/posts/:id", "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=markup` to include the PML markup for the post's visual content. Markup is opt-in on every endpoint (show, list, create, update) because PML serialization runs per post. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ] }, "docs": "Retrieve a blog post." }, { "info": { "name": "Update Blog Post", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/posts/:id", "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=markup` to include the PML markup for the post's visual content. Markup is opt-in on every endpoint (show, list, create, update) because PML serialization runs per post. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a blog post.\n\nPass `markup` to update the post's visual content via PML. It replaces the whole body, and PML covers only a subset of what the ClickFunnels editor can build, so if this post could have been written or edited in the editor, stop and get explicit approval from the user first: see [the approval guardrail](https://accounts.myclickfunnels.com/.well-known/page-markup/skill.md#stop-get-approval-before-overwriting-an-existing-page). Omit `markup` to change only metadata. Invalid ma" }, { "info": { "name": "Delete Blog Post", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/posts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a blog post. This is a hard delete; the post and its associated authorships, taggings, applied categories, and publish actions are removed.\n\nDeleting example or stock posts while migrating content in is a separate step, see [Optional cleanup of confirmed example posts](https://accounts.myclickfunnels.com/.well-known/blogs/import-external-post/skill.md#optional-cleanup-of-confirmed-example-posts) in the [Import External Blog Post Skill](https://accounts.myclickfunnels.com/.well-known/blogs" } ] }, { "info": { "name": "Blogs::Tag", "type": "folder" }, "items": [ { "info": { "name": "List Blog Tags", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/:blog_id/tags", "params": [ { "name": "blog_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List tags for the given blog." }, { "info": { "name": "Create Blog Tag", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/:blog_id/tags", "params": [ { "name": "blog_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new tag within the given blog.\n" }, { "info": { "name": "Fetch Blog Tag", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a blog tag." } ] }, { "info": { "name": "Blogs::Category", "type": "folder" }, "items": [ { "info": { "name": "List Blog Categories", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/:blog_id/categories", "params": [ { "name": "blog_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List the categories within the given blog." }, { "info": { "name": "Fetch Blog Category", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/categories/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a blog category." } ] }, { "info": { "name": "Blogs::Author", "type": "folder" }, "items": [ { "info": { "name": "List Blog Authors", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/:blog_id/authors", "params": [ { "name": "blog_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List the authors within the given blog." }, { "info": { "name": "Fetch Blog Author", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/blogs/authors/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a blog author." } ] }, { "info": { "name": "Contact", "type": "folder" }, "items": [ { "info": { "name": "List Contacts", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" }, { "name": "stored_filter_id", "value": "", "type": "query", "description": "The `id` (integer) or `public_id` (string) of a saved `Refine::StoredFilter` scoped to this workspace. Returned by `POST /api/v2/workspaces/{workspace_id}/contacts/filters` (with `save: true`) or by the RefineFilter endpoints. Applies the saved filter's criteria to the results, composed (AND) with any `filter[…]` params.\nReturns 422 if the filter is unknown, invalid, or belongs to a different workspace. When both `stored_filter_id` and `stable_id` are supplied, `stable_id` takes precedence." }, { "name": "stable_id", "value": "", "type": "query", "description": "A URL-encoded Refine `stable_id` token — the standard gzip+base64 full-state format used by both the contacts/filters API endpoint and the server-rendered filter UI, making the tokens interoperable. Returned by `POST /api/v2/workspaces/{workspace_id}/contacts/filters` in the `stable_id` field. Treat the returned token as opaque and let the HTTP client encode the complete query parameter value. With curl, use `-G --data-urlencode \"stable_id=$STABLE_ID\"`; do not decode the token or interpolate it directly into a raw URL. Applies the encoded filter criteria to the results, composed (AND) with any `filter[…]` params.\nReturns 422 if the token is not a valid Refine stable_id, is not a ContactsFilter, or groups conditions with mixed `and`/`or` semantics. Flat filters and grouped filters using a single conjunction (including tokens copied from the filtered Contacts UI) are supported. When both `stored_filter_id` and `stable_id` are supplied, `stable_id` takes precedence." }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=email_engagement`). See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ] }, "docs": "List contacts for the given workspace. By default, only identified contacts are shown so you won't see anonymous or GDPR-redacted contacts." }, { "info": { "name": "Create Contact", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=email_engagement`). See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new contact to the workspace" }, { "info": { "name": "Fetch Contact", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/:id", "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=email_engagement`). See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ] }, "docs": "Retrieve a contact" }, { "info": { "name": "Update Contact", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/:id", "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=email_engagement`). See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a contact" }, { "info": { "name": "Remove Contact", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a contact" }, { "info": { "name": "Redact Contact", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/:id/gdpr_destroy", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "This will destroy all personally identifiable information for a contact, including their name and phone number, but does not delete the contact record itself. This cannot be undone." }, { "info": { "name": "Upsert a Contact", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/upsert", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=email_engagement`). See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates or updates a Contact, matching on the email address. If the Contact does not exist, it will be created. If the Contact does exist, it will be updated. It is not possible to delete a Contact via this endpoint. It is not possible to reset properties of a Contact by passing empty values. E.g. passing `null` for `first_name` or an empty array for `tag_ids` won't update previous values. To do that you would instead need to use the `Update Contact` endpoint." } ] }, { "info": { "name": "Contacts::Filter", "type": "folder" }, "items": [ { "info": { "name": "Generate a Contact Filter", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/filters", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Translates a natural-language audience description into a ClickFunnels contact filter using an AI model.\n\nThe response always includes the same key set: a `stable_id` token, a structured `filter` object, and the\nidentity fields `id`, `public_id`, `workspace_id`, and `name`. When `save: true` is supplied the filter is\npersisted as a reusable `Refine::StoredFilter` and those identity fields are populated; otherwise they are\n`null`. A saved filter can be fetched later via `GET /api/v2/contacts/filt" }, { "info": { "name": "Get a Contact Filter", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/filters/:id", "params": [ { "name": "id", "value": "", "type": "path", "description": "The saved filter's `id` or `public_id`." } ] }, "docs": "Fetches a previously saved contact filter by id. This route is shallow — the workspace is resolved from\nthe filter itself, so no `workspace_id` is required in the path. Use the `id` (or `public_id`) returned by\n`POST /api/v2/workspaces/{workspace_id}/contacts/filters` with `save: true`.\n\nReturns the same resource shape as the generate endpoint, with the identity fields populated. The\n`stable_id` is re-derived from the saved filter. To apply it on the contacts index, keep it opaque and\nlet the HT" } ] }, { "info": { "name": "Contacts::AppliedTag", "type": "folder" }, "items": [ { "info": { "name": "List Applied Tags", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/:contact_id/applied_tags", "params": [ { "name": "contact_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List the applied tags for a contact" }, { "info": { "name": "Create Applied Tag", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/:contact_id/applied_tags", "params": [ { "name": "contact_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Assign a tag to a contact by creating an applied tag" }, { "info": { "name": "Fetch Applied Tag", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/applied_tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve an applied tag for a contact" }, { "info": { "name": "Remove Applied Tag", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/applied_tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove a tag from a contact by deleting an applied tag" } ] }, { "info": { "name": "Contacts::Tag", "type": "folder" }, "items": [ { "info": { "name": "List Tags", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/tags", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List all Contact Tags for your workspace" }, { "info": { "name": "Create Tag", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/tags", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new Contact Tag to your Workspace" }, { "info": { "name": "Fetch Tag", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single Contact Tag" }, { "info": { "name": "Update Tag", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a Contact Tag" }, { "info": { "name": "Remove Tag", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a Contact Tag from your workspace" } ] }, { "info": { "name": "Contacts::TagAction", "type": "folder" }, "items": [ { "info": { "name": "List Tag Actions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/tag_actions", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all Contact Tag Actions for your workspace" }, { "info": { "name": "Create Tag Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/tag_actions", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Bulk-apply or bulk-remove one or more Contact Tags across a filtered set of contacts. The action runs asynchronously — poll the returned record with `GET /api/v2/contacts/tag_actions/{id}` to track progress via `target_count` and `performed_count`.\nExactly one target selection must be supplied: `stable_id`, `stored_filter_id` (alias `filter_id`), `target_ids`, or `target_all`. Returns 422 if none is provided or if the supplied value is invalid." }, { "info": { "name": "Fetch Tag Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/tag_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single Contact Tag Action and its current async progress" }, { "info": { "name": "Remove Tag Action", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/tag_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a Contact Tag Action record" } ] }, { "info": { "name": "Contacts::EnrollAction", "type": "folder" }, "items": [ { "info": { "name": "List Enroll Actions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/enroll_actions", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all Contact Enroll Actions for your workspace" }, { "info": { "name": "Create Enroll Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/enroll_actions", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Bulk-enroll a collection of contacts into course sections. Pass `course_ids` to enroll in every section of those courses, or `section_ids` for specific sections (or both). The action runs asynchronously — poll the returned record with `GET /api/v2/contacts/enroll_actions/{id}` to track progress via `target_count` and `performed_count`.\nExactly one target selection must be supplied: `stable_id`, `stored_filter_id` (alias `filter_id`), `target_ids`, or `target_all`. Returns 422 if none is provided" }, { "info": { "name": "Fetch Enroll Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/enroll_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single Contact Enroll Action and its current async progress" }, { "info": { "name": "Remove Enroll Action", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/enroll_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a Contact Enroll Action record" } ] }, { "info": { "name": "Contacts::RunWorkflowAction", "type": "folder" }, "items": [ { "info": { "name": "List Run Workflow Actions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/run_workflow_actions", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all Contact Run Workflow Actions for your workspace" }, { "info": { "name": "Create Run Workflow Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/run_workflow_actions", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Run a workflow against a collection of contacts. Requires `workflow_id`. Set `force_run: true` to re-enqueue contacts already in the workflow. The action runs asynchronously — poll the returned record with `GET /api/v2/contacts/run_workflow_actions/{id}` to track progress via `target_count` and `performed_count`.\nExactly one target selection must be supplied: `stable_id`, `stored_filter_id` (alias `filter_id`), `target_ids`, or `target_all`. Returns 422 if none is provided or if the supplied val" }, { "info": { "name": "Fetch Run Workflow Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/run_workflow_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single Contact Run Workflow Action and its current async progress" }, { "info": { "name": "Remove Run Workflow Action", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/run_workflow_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a Contact Run Workflow Action record" } ] }, { "info": { "name": "Contacts::UnsubscribeAction", "type": "folder" }, "items": [ { "info": { "name": "List Unsubscribe Actions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/unsubscribe_actions", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all Contact Unsubscribe Actions for your workspace" }, { "info": { "name": "Create Unsubscribe Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/unsubscribe_actions", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Bulk-unsubscribe a collection of contacts from email. The action runs asynchronously — poll the returned record with `GET /api/v2/contacts/unsubscribe_actions/{id}` to track progress via `target_count` and `performed_count`.\nExactly one target selection must be supplied: `stable_id`, `stored_filter_id` (alias `filter_id`), `target_ids`, or `target_all`. Returns 422 if none is provided or if the supplied value is invalid." }, { "info": { "name": "Fetch Unsubscribe Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/unsubscribe_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single Contact Unsubscribe Action and its current async progress" }, { "info": { "name": "Remove Unsubscribe Action", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/unsubscribe_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a Contact Unsubscribe Action record" } ] }, { "info": { "name": "Contacts::ExportAction", "type": "folder" }, "items": [ { "info": { "name": "List Export Actions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/export_actions", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all Contact Export Actions for your workspace" }, { "info": { "name": "Create Export Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/contacts/export_actions", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Export a collection of contacts to a CSV file. Supply `fields` to specify which contact columns appear in the CSV (including custom attribute keys). The action runs asynchronously — poll the returned record with `GET /api/v2/contacts/export_actions/{id}`. Once complete, `file_url` contains the download URL for the generated CSV.\nExactly one target selection must be supplied: `stable_id`, `stored_filter_id` (alias `filter_id`), `target_ids`, or `target_all`. Returns 422 if none is provided or if " }, { "info": { "name": "Fetch Export Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/export_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single Contact Export Action and its current async progress. When `completed_at` is set, `file_url` contains the CSV download URL." }, { "info": { "name": "Remove Export Action", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/contacts/export_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a Contact Export Action record" } ] }, { "info": { "name": "Community", "type": "folder" }, "items": [ { "info": { "name": "List Communities", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/communities", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List communities for a workspace" }, { "info": { "name": "Create Community", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/communities", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a community for a workspace" }, { "info": { "name": "Fetch Community", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a community" }, { "info": { "name": "Update Community", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a community" } ] }, { "info": { "name": "Communities::SpaceGroup", "type": "folder" }, "items": [ { "info": { "name": "List Space Groups", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/space_groups", "params": [ { "name": "community_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List space groups for a community" }, { "info": { "name": "Create Space Group", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/space_groups", "params": [ { "name": "community_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a space group within a community" }, { "info": { "name": "Fetch Space Group", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/space_groups/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a space group" }, { "info": { "name": "Update Space Group", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/space_groups/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a space group" }, { "info": { "name": "Remove Space Group", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/space_groups/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a space group" } ] }, { "info": { "name": "Communities::Space", "type": "folder" }, "items": [ { "info": { "name": "List Spaces", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/space_groups/:space_group_id/spaces", "params": [ { "name": "space_group_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List spaces within a space group" }, { "info": { "name": "Create Space", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/space_groups/:space_group_id/spaces", "params": [ { "name": "space_group_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a space within a space group" }, { "info": { "name": "Fetch Space", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a space" }, { "info": { "name": "Update Space", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a space" }, { "info": { "name": "Remove Space", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a space" } ] }, { "info": { "name": "Communities::Spaces::Post", "type": "folder" }, "items": [ { "info": { "name": "List Posts", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/:space_id/posts", "params": [ { "name": "space_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List posts for a space" }, { "info": { "name": "Create Post", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/:space_id/posts", "params": [ { "name": "space_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a post in a space. Posts created via the API are auto-approved. The `contact_id` is optional and defaults to the connected user's own contact." }, { "info": { "name": "Fetch Post", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a post" }, { "info": { "name": "Update Post", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a post. The `contact_id` field is ignored on update." }, { "info": { "name": "Remove Post", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a post" }, { "info": { "name": "Approve Post", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:id/approve", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Approve a post. Sets `approved_at` to the current time, applies any pending draft edit to the live body, and notifies any contacts mentioned in the post body." }, { "info": { "name": "Decline Post", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:id/decline", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Decline a post. Sets `declined_at` to the current time, marking the post as rejected and hiding it from the community feed." }, { "info": { "name": "Dismiss Reports on Post", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:id/dismiss_reports", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Dismiss all pending moderation reports on a post. Clears the report flags and approves the post, making it visible in the community feed." }, { "info": { "name": "Pin Post", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:id/pin", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Pin a post. Sets `is_pinned` to true, causing the post to appear at the top of the community space feed." }, { "info": { "name": "Unpin Post", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:id/unpin", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Unpin a post. Sets `is_pinned` to false, removing the post from the pinned section at the top of the community space feed." } ] }, { "info": { "name": "Communities::Spaces::Post::Comment", "type": "folder" }, "items": [ { "info": { "name": "List Comments", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:post_id/comments", "params": [ { "name": "post_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List comments for a post" }, { "info": { "name": "Create Comment", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:post_id/comments", "params": [ { "name": "post_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a comment on a post. Comments created via the API are auto-approved. The `contact_id` is optional and defaults to the connected user's own contact. Use `parent_comment_id` for threaded replies." }, { "info": { "name": "Approve Comment", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/comments/:id/approve", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Approve a comment. Sets `approved_at` to the current time and applies any pending draft edit to the live body." }, { "info": { "name": "Decline Comment", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/comments/:id/decline", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Decline a comment. Sets `declined_at` to the current time, marking it as rejected." }, { "info": { "name": "Dismiss Comment Reports", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/comments/:id/dismiss_reports", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Clear the comment's report flags (reported_at, report_count, report_type) and approve it." }, { "info": { "name": "Fetch Comment", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/comments/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a comment" }, { "info": { "name": "Update Comment", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/comments/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a comment. The `contact_id` and `parent_comment_id` fields are ignored on update." }, { "info": { "name": "Remove Comment", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/comments/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a comment" } ] }, { "info": { "name": "Communities::Spaces::Post::Like", "type": "folder" }, "items": [ { "info": { "name": "List Post Likes", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:post_id/likes", "params": [ { "name": "post_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List likes for a post" }, { "info": { "name": "Create Post Like", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:post_id/likes", "params": [ { "name": "post_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Like a post. The `contact_id` is optional and defaults to the connected user's own contact." }, { "info": { "name": "Remove Post Like", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/likes/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Unlike a post by deleting the like record" } ] }, { "info": { "name": "Communities::Spaces::Post::Comment::Like", "type": "folder" }, "items": [ { "info": { "name": "List Comment Likes", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/comments/:comment_id/likes", "params": [ { "name": "comment_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List likes for a comment" }, { "info": { "name": "Create Comment Like", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/comments/:comment_id/likes", "params": [ { "name": "comment_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Like a comment. The `contact_id` is optional and defaults to the connected user's own contact." }, { "info": { "name": "Remove Comment Like", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/comments/likes/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Unlike a comment by deleting the like record" } ] }, { "info": { "name": "Communities::Spaces::Post::VideoEmbed", "type": "folder" }, "items": [ { "info": { "name": "List Video Embeds", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:post_id/video_embeds", "params": [ { "name": "post_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List video embeds for a post" }, { "info": { "name": "Create Video Embed", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/:post_id/video_embeds", "params": [ { "name": "post_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Attach a video embed to a post. The `url` field is required." }, { "info": { "name": "Fetch Video Embed", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/video_embeds/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a video embed" }, { "info": { "name": "Remove Video Embed", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/spaces/posts/video_embeds/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a video embed from a post" } ] }, { "info": { "name": "Communities::Membership", "type": "folder" }, "items": [ { "info": { "name": "List Memberships", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/memberships", "params": [ { "name": "community_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List memberships for a community" }, { "info": { "name": "Create Membership", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/memberships", "params": [ { "name": "community_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a contact as a member of a community" }, { "info": { "name": "Fetch Membership", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/memberships/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a community membership" }, { "info": { "name": "Update Membership", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/memberships/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a community membership (e.g. moderator status or space memberships)" }, { "info": { "name": "Remove Membership", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/memberships/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove a contact's membership from a community. This also removes the contact from all Spaces within the community." } ] }, { "info": { "name": "Communities::Ban", "type": "folder" }, "items": [ { "info": { "name": "List Bans", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/bans", "params": [ { "name": "community_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List bans for a community" }, { "info": { "name": "Create Ban", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/bans", "params": [ { "name": "community_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Ban a contact from a community" }, { "info": { "name": "Fetch Ban", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/bans/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a community ban" }, { "info": { "name": "Remove Ban", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/bans/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Unban a contact from a community" } ] }, { "info": { "name": "Communities::Memberships::BanAction", "type": "folder" }, "items": [ { "info": { "name": "Create Membership Ban Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/memberships/ban_actions", "params": [ { "name": "community_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enqueue an async background job to ban one or more community members. The action record is returned immediately with `status: queued`. Poll `GET /communities/memberships/ban_actions/{id}` until `status` is `completed`.\n" }, { "info": { "name": "Fetch Membership Ban Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/memberships/ban_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve the current status of a membership ban action. Poll this endpoint until `status` is `completed`." } ] }, { "info": { "name": "Communities::Memberships::AddToGroupAction", "type": "folder" }, "items": [ { "info": { "name": "Create Membership Add-To-Group Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/memberships/add_to_group_actions", "params": [ { "name": "community_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enqueue an async background job to add one or more community members to one or more spaces (groups). The action record is returned immediately with `status: queued`. Poll `GET /communities/memberships/add_to_group_actions/{id}` until `status` is `completed`.\n" }, { "info": { "name": "Fetch Membership Add-To-Group Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/memberships/add_to_group_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve the current status of a membership add-to-group action. Poll this endpoint until `status` is `completed`." } ] }, { "info": { "name": "Communities::Memberships::RemoveFromGroupAction", "type": "folder" }, "items": [ { "info": { "name": "Create Membership Remove-From-Group Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/memberships/remove_from_group_actions", "params": [ { "name": "community_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enqueue an async background job to remove one or more community members from one or more spaces (groups). The action record is returned immediately with `status: queued`. Poll `GET /communities/memberships/remove_from_group_actions/{id}` until `status` is `completed`.\n" }, { "info": { "name": "Fetch Membership Remove-From-Group Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/memberships/remove_from_group_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve the current status of a membership remove-from-group action. Poll this endpoint until `status` is `completed`." } ] }, { "info": { "name": "Communities::Memberships::ExportAction", "type": "folder" }, "items": [ { "info": { "name": "List Membership Export Actions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/memberships/export_actions", "params": [ { "name": "community_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List previous membership export actions for a community" }, { "info": { "name": "Create Membership Export Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/memberships/export_actions", "params": [ { "name": "community_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enqueue an async background job to export community membership data to a file. The action record is returned immediately with `status: queued`. Poll `GET /communities/memberships/export_actions/{id}` until `status` is `completed`.\n" }, { "info": { "name": "Fetch Membership Export Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/memberships/export_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve the current status of a membership export action. Poll this endpoint until `status` is `completed`." } ] }, { "info": { "name": "Communities::Bans::UnbanAction", "type": "folder" }, "items": [ { "info": { "name": "Create Ban Unban Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/bans/unban_actions", "params": [ { "name": "community_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enqueue an async background job to unban one or more contacts from a community. The action record is returned immediately with `status: queued`. Poll `GET /communities/bans/unban_actions/{id}` until `status` is `completed`.\n" }, { "info": { "name": "Fetch Ban Unban Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/bans/unban_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve the current status of a ban unban action. Poll this endpoint until `status` is `completed`." } ] }, { "info": { "name": "Communities::Bans::ExportAction", "type": "folder" }, "items": [ { "info": { "name": "List Ban Export Actions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/bans/export_actions", "params": [ { "name": "community_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List previous ban export actions for a community" }, { "info": { "name": "Create Ban Export Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/:community_id/bans/export_actions", "params": [ { "name": "community_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enqueue an async background job to export community ban data to a file. The action record is returned immediately with `status: queued`. Poll `GET /communities/bans/export_actions/{id}` until `status` is `completed`.\n" }, { "info": { "name": "Fetch Ban Export Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/communities/bans/export_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve the current status of a ban export action. Poll this endpoint until `status` is `completed`." } ] }, { "info": { "name": "Course", "type": "folder" }, "items": [ { "info": { "name": "List Courses", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/courses", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List courses for a team" }, { "info": { "name": "Create Course", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/courses", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a course for a team. See [Creating a course](https://accounts.myclickfunnels.com/.well-known/courses/skill.md#creating-a-course) in the [Courses Skill](https://accounts.myclickfunnels.com/.well-known/courses/skill.md) for the permitted fields." }, { "info": { "name": "Fetch Course", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a course" }, { "info": { "name": "Update Course", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a course's settings and appearance — including its storefront image (`image_id`), title, and description. Updates are partial: only the attributes you include are changed; omitted attributes are left unchanged.\nSee [Permitted course fields](https://accounts.myclickfunnels.com/.well-known/courses/skill.md#permitted-course-fields) in the [Courses Skill](https://accounts.myclickfunnels.com/.well-known/courses/skill.md)." }, { "info": { "name": "Publish Course", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:id/publish", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Makes the course live by setting `published_at`. Pass an optional future `published_at` to schedule the publish; omit it (or leave it blank) to publish immediately. A `published_at` in the past is rejected.\nBy default this publishes only the course record. To publish a brand-new course in one step, pass `publish_sections_and_lessons: true`. Before the `200 OK` response, the requested publish timestamp is set on the course, every eligible unpublished non-root section, and all unpublished or sched" } ] }, { "info": { "name": "Courses::Enrollment", "type": "folder" }, "items": [ { "info": { "name": "List Enrollments", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:course_id/enrollments", "params": [ { "name": "course_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List enrollments for a course" }, { "info": { "name": "Create Enrollment", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:course_id/enrollments", "params": [ { "name": "course_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new enrollment" }, { "info": { "name": "Fetch Enrollment", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/enrollments/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve an enrollment" }, { "info": { "name": "Update Enrollment", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/enrollments/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an enrollment" } ] }, { "info": { "name": "Courses::Section", "type": "folder" }, "items": [ { "info": { "name": "List Sections", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:course_id/sections", "params": [ { "name": "course_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List Sections. Ordered by id ascending by default (pass sort_order=desc for\ndescending), consistent with the pagination cursor, so following the\nPagination-Next header returns every section exactly once.\n\nThe list includes the course's root section - a structural container\n(`parent_id: null`, matching the course's `root_section_id`) that is not\nshown in the course builder UI; most integrations can ignore it and treat its\nchildren as the modules. Pass sort_property=sort_order for the builder's\ndi" }, { "info": { "name": "Create Section", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:course_id/sections", "params": [ { "name": "course_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new Section. See [Sections (modules)](https://accounts.myclickfunnels.com/.well-known/courses/skill.md#sections-modules) in the [Courses Skill](https://accounts.myclickfunnels.com/.well-known/courses/skill.md)." }, { "info": { "name": "Fetch Section", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/sections/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Section" }, { "info": { "name": "Update Section", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/sections/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Section. See [Permitted section fields (create and update)](https://accounts.myclickfunnels.com/.well-known/courses/skill.md#permitted-section-fields-create-and-update) in the [Courses Skill](https://accounts.myclickfunnels.com/.well-known/courses/skill.md) for the writable fields." }, { "info": { "name": "Publish Section", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/sections/:id/publish", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Makes a single section live by setting `published_at`, and cascade-publishes its lessons individually so per-lesson side effects fire. The response is the canonical section resource. If section or lesson validation fails, the entire request returns `422` without changing any publish timestamps. Pass an optional future `published_at` to schedule it; omit it to publish now. A past `published_at` is rejected. This is the default publish (`auto_enroll: false`) — to also grant existing enrollees acce" } ] }, { "info": { "name": "Courses::Lesson", "type": "folder" }, "items": [ { "info": { "name": "List Lessons", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/sections/:section_id/lessons", "params": [ { "name": "section_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List Lessons. Ordered by id ascending by default (pass sort_order=desc for\ndescending), consistent with the pagination cursor, so following the\nPagination-Next header returns every lesson exactly once.\n\nPass sort_property=sort_order for the builder's display order of lessons\nwithin the section (sort_order is scoped per section, starting at 0).\n" }, { "info": { "name": "Create Lesson", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/sections/:section_id/lessons", "params": [ { "name": "section_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new Lesson. The lesson body is authored in Markdown via `lesson_content`, not PML. See [Lessons](https://accounts.myclickfunnels.com/.well-known/courses/skill.md#lessons) in the [Courses Skill](https://accounts.myclickfunnels.com/.well-known/courses/skill.md)." }, { "info": { "name": "Fetch Lesson", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/lessons/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Lesson" }, { "info": { "name": "Update Lesson", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/lessons/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Lesson. See [Permitted lesson fields](https://accounts.myclickfunnels.com/.well-known/courses/skill.md#permitted-lesson-fields) in the [Courses Skill](https://accounts.myclickfunnels.com/.well-known/courses/skill.md); the Markdown body field is `lesson_content`." }, { "info": { "name": "Publish Lesson", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/lessons/:id/publish", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Makes a single lesson live by setting `published_at`. Pass an optional future `published_at` to schedule it; omit it to publish now. A past `published_at` is rejected. A lesson's `published_at` is not writable via `updateCoursesLessons`, so this is the way to publish or schedule an individual lesson.\nSee [Publishing](https://accounts.myclickfunnels.com/.well-known/courses/skill.md#publishing) in the [Courses Skill](https://accounts.myclickfunnels.com/.well-known/courses/skill.md) for the other p" } ] }, { "info": { "name": "Courses::LessonCompletion", "type": "folder" }, "items": [ { "info": { "name": "List Lesson Completions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:course_id/lesson_completions", "params": [ { "name": "course_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List of enrollment-completion records showing which lessons have been completed by which enrollments. You can filter on one or more `enrollment_id` or `lesson_id` records (see filter params)." }, { "info": { "name": "Create Lesson Completion", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:course_id/lesson_completions", "params": [ { "name": "course_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Mark a lesson as completed by a specific enrollment. You can only mark a lesson as completed once. Subsequent completions for the same lesson by the same enrollment will return a conflict error." }, { "info": { "name": "Fetch Lesson Completion", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/lesson_completions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a enrollment-lesson completion record" }, { "info": { "name": "Remove Lesson Completion", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/lesson_completions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Unmark a lesson as completed. This action deletes the record." } ] }, { "info": { "name": "Courses::Sections::PublishAction", "type": "folder" }, "items": [ { "info": { "name": "List Publish Actions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:course_id/sections/publish_actions", "params": [ { "name": "course_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List course-section publish actions for a course" }, { "info": { "name": "Create Publish Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/:course_id/sections/publish_actions", "params": [ { "name": "course_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Publish one or more course sections AND the lessons they contain. Provide exactly one of `target_ids` (a nonempty array of course-section public IDs) or `target_all: true` to publish every unpublished non-root section of the course. Explicit target IDs must identify sections in this course. Targeting the root \"Primary module\" container (or using `target_all`) expands to every unpublished non-root section. A missing or empty `courses_sections_publish_action` wrapper is a malformed request and ret" }, { "info": { "name": "Fetch Publish Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/sections/publish_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single course-section publish action and its current async progress" }, { "info": { "name": "Remove Publish Action", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/courses/sections/publish_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a course-section publish action record" } ] }, { "info": { "name": "Discount", "type": "folder" }, "items": [ { "info": { "name": "List Discounts", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/discounts", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List the discounts in a workspace." }, { "info": { "name": "Create Discount", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/discounts", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a discount in a workspace. A `code`-type discount (the default) needs a unique `code`; a `percentage` discount needs `percent`; a `fixed` discount needs a positive `amount`.\n\nCreating a discount publishes the code; it does not attach it to anything. The link between an order and a discount is a separate applied-discount record, written when a buyer redeems the code at checkout or when a ClickFunnels user applies it in the admin UI - which is why `POST /api/v2/workspaces/{workspace_id}/ord" }, { "info": { "name": "Fetch Discount", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/discounts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single discount." }, { "info": { "name": "Update Discount", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/discounts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a discount. Money-affecting fields are locked once the discount has been redeemed and return 422, while renaming and expiring still work. A discount that is already expired freezes its other fields and returns 422, a rename included - lift the expiry with `expired: false` (the API side of Remove Expiration in the app) or push `apply_until` into the future, then make the change and expire it again.\n" }, { "info": { "name": "Remove Discount", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/discounts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Hard-delete a discount. Only a discount that has NOT been applied to an order can be deleted; a used discount returns 422 (expire it with `expired: true` instead, to preserve its order history).\n\nA discount enters that state through an applied-discount record, written when a buyer redeems the code at checkout or when a ClickFunnels user applies it in the admin UI. A code an integration created and never published carries none of those records, so it is always deletable.\n" } ] }, { "info": { "name": "Domain", "type": "folder" }, "items": [ { "info": { "name": "List Domains", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/domains", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ] }, "docs": "List all domains for a workspace. Use this endpoint to retrieve domain IDs for use with other resources such as Funnels. These are **website hosting** domains (ownership + hosting CNAME + SSL). To manage **email sending** domains (DKIM/SPF/DMARC), see the Email Domains endpoints (listEmailsDomains / createEmailsDomains)." }, { "info": { "name": "Fetch Domain", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/domains/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch a single domain by ID." } ] }, { "info": { "name": "Download", "type": "folder" }, "items": [ { "info": { "name": "List Downloads", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/downloads", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List downloads for a workspace. Use each download's `asset_id` when configuring a product variant's digital-asset access." }, { "info": { "name": "Fetch Download", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/downloads/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch a single download by ID, including the Asset ID used to configure product-variant access." } ] }, { "info": { "name": "Emails::Address", "type": "folder" }, "items": [ { "info": { "name": "List Email Addresses", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/addresses", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[email_address]=value&filter[verified]=true`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List all email addresses for a workspace. See [Addresses (pick a usable sender)](https://accounts.myclickfunnels.com/.well-known/emails/skill.md#addresses-pick-a-usable-sender) in the [Emails Skill](https://accounts.myclickfunnels.com/.well-known/emails/skill.md) for picking one to send from." }, { "info": { "name": "Create Email Address", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/addresses", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a sender (\"from\") email address. Provide `username` and `name` (the from-name shown on emails). By default, the address is created on ClickFunnels' shared sending domain. To use a custom domain, first provision it with `POST /workspaces/{workspace_id}/emails/domains`, add the returned DNS records, and have the customer connect that same root domain to this workspace as a website/hosting domain in the ClickFunnels app. Both halves are required and no API call can do the second one, so DNS " }, { "info": { "name": "Get Email Address", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/addresses/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single email address" }, { "info": { "name": "Update Email Address", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/addresses/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a sender address — most commonly to change its `name` (the from-name). You may also move it to a different ready-for-sending custom domain via `emails_domain_id`." }, { "info": { "name": "Archive Email Address", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/addresses/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Archive (soft-delete) a sender address. Once archived the sender is treated as gone: it is excluded from the list endpoint and a subsequent GET/PATCH/DELETE on its id returns 404 (there is no un-archive endpoint)." } ] }, { "info": { "name": "Emails::Broadcast", "type": "folder" }, "items": [ { "info": { "name": "List Email Broadcasts", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/broadcasts", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List all email broadcasts for a workspace. Filterable by id and status." }, { "info": { "name": "Create Email Broadcast", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/broadcasts", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new email broadcast. Broadcasts are created in DRAFT status — creating one does not send it. To send it, create a send action for the broadcast (POST /emails/broadcasts/{broadcast_id}/send_actions): omit send_at to send now, or pass a future send_at to schedule. (Alternatively, the legacy inline path accepts recipients with send_immediately=true, or send_at/send_at_local_time/time_zone to schedule.) A complete business mailing address is required even when creating a draft. Configure it" }, { "info": { "name": "Fetch Email Broadcast", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/broadcasts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single email broadcast by ID" }, { "info": { "name": "Update Email Broadcast", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/broadcasts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an email broadcast. Only broadcasts in draft status can be updated. When accessing the API through an OAuth connection from a third-party platform, this endpoint is restricted to trusted developer platforms. If you are using your own API key, you can send emails directly from your account. See [Broadcasts](https://accounts.myclickfunnels.com/.well-known/emails/skill.md#broadcasts) in the [Emails Skill](https://accounts.myclickfunnels.com/.well-known/emails/skill.md)." }, { "info": { "name": "Delete Email Broadcast", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/broadcasts/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete an email broadcast. Only broadcasts in draft status can be deleted. When accessing the API through an OAuth connection from a third-party platform, this endpoint is restricted to trusted developer platforms. If you are using your own API key, you can send emails directly from your account." } ] }, { "info": { "name": "Emails::Broadcasts::SendAction", "type": "folder" }, "items": [ { "info": { "name": "List Send Actions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/broadcasts/:broadcast_id/send_actions", "params": [ { "name": "broadcast_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all send actions for an email broadcast. Send actions represent past or scheduled delivery attempts for the broadcast.\nWhen accessing the API through an OAuth connection from a third-party platform, this endpoint is restricted to trusted developer platforms. If you are using your own API key, you can access this endpoint directly." }, { "info": { "name": "Create Send Action", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/broadcasts/:broadcast_id/send_actions", "params": [ { "name": "broadcast_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Send (or schedule) an email broadcast by creating a Send Action. This is the same trigger the ClickFunnels dashboard fires when you click \"Send\".\nThe request body is optional — a bodyless POST dispatches the broadcast immediately. Pass `send_at` inside `emails_broadcasts_send_action` to schedule the broadcast for a future date and time; the broadcast will be sent at the given hour on that day, adjusted to the workspace's time zone.\nThe broadcast must be ready to send before this call will succee" }, { "info": { "name": "Fetch Send Action", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/broadcasts/send_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single send action and its current async delivery progress. Compare `performed_count` to `target_count` to determine how far along delivery is. `completed_at` is set when delivery finishes.\nWhen accessing the API through an OAuth connection from a third-party platform, this endpoint is restricted to trusted developer platforms. If you are using your own API key, you can access this endpoint directly." }, { "info": { "name": "Remove Send Action", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/broadcasts/send_actions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a send action record. This cancels a scheduled (not-yet-started) send action and removes the record. Deleting a send action that has already started or completed may not halt in-flight delivery.\nWhen accessing the API through an OAuth connection from a third-party platform, this endpoint is restricted to trusted developer platforms. If you are using your own API key, you can access this endpoint directly." } ] }, { "info": { "name": "Emails::Domain", "type": "folder" }, "items": [ { "info": { "name": "List Email Domains", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/domains", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all email sending domains (DKIM/SPF/DMARC) for a workspace. These are **email sending** domains - for website/hosting domains, see **listDomains**. Each result separates workspace ownership (`ownership_verified`) from email transport (`verified`); addresses on a custom domain can send only when `ready_for_sending` is true. Ownership comes from connecting the domain, as `www.example.com` or another subdomain of it, to this workspace as a website/hosting domain in the ClickFunnels app - no AP" }, { "info": { "name": "Create Email Domain", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/domains", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Provision a sending domain for a workspace. Find-or-create: returns `200` with the existing record if a domain with this name already exists for the workspace, or `201` with freshly generated DNS records if it was just created. These are **email sending** domains (DKIM/SPF/DMARC) - for website/hosting domains, see **listDomains**. The response includes the email-transport records; `dkim_record` can be `null` until the DKIM key finishes generating, and POSTing the same name again retries provisio" }, { "info": { "name": "Get Email Domain", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/domains/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single email sending domain (DKIM/SPF/DMARC), including its ownership, transport, readiness, and return-path flags plus the DNS records to add at the provider. These are **email sending** domains - for website/hosting domains, see **listDomains**. `verified` reports transport only; `ready_for_sending` requires both workspace ownership and transport, while return-path verification is independent. Ownership is confirmed by connecting the domain, as `www.example.com` or another subdomain" }, { "info": { "name": "Verify Email Domain", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/domains/:id/verify", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Re-run the DNS checks for DKIM, SPF, DMARC, and the return path, cached for about 10 minutes, and return the refreshed status together with the current ownership state. A `200` means the check ran, not that it passed, so always read the booleans back. `verified` reports transport only and becomes true when DKIM, SPF, and DMARC are all live, or when a verified SMTP setting exists. `ownership_verified` reports workspace control of the name, which comes from connecting the domain, as `www.example.c" } ] }, { "info": { "name": "Emails::Settings", "type": "folder" }, "items": [ { "info": { "name": "Get Email Settings", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/settings", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ] }, "docs": "Retrieve email settings for a workspace. A workspace that has never configured its email settings has no persisted record yet; this returns `200` with the empty settings shape (`address: null`, `address_complete: false`) rather than a `404`, signalling \"not set up yet - PUT to configure\".\nCheck `address_complete` here before sending marketing email: see the [Business mailing address prerequisite](https://accounts.myclickfunnels.com/.well-known/emails/skill.md#business-mailing-address-prerequisit" }, { "info": { "name": "Update Email Settings", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/settings", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a workspace's email/marketing settings. Most importantly, this sets the marketing (business) address, which is the workspace-wide prerequisite for creating broadcasts and workflow send-email steps, and for sending broadcasts. When an `address` is supplied it is validated for completeness, so a 422 here means marketing-email creation and sending remain blocked. A workspace that has never configured its email settings has no persisted record yet; the first PUT builds and persists it, so it " } ] }, { "info": { "name": "Emails::Template", "type": "folder" }, "items": [ { "info": { "name": "List Email Templates", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/templates", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all email templates for a workspace" }, { "info": { "name": "Create Email Template", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/templates", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create an email template from html_body/text_body. The template is marked api-created and is hidden from the visual template pickers (it cannot be edited in the visual BeeFree editor). When accessing the API through an OAuth connection from a third-party platform acting on another team's workspaces, this endpoint is restricted to trusted developer platforms; if you are using your own API key (acting on your own account), you can write directly.\nSee [Create a template](https://accounts.myclickfun" }, { "info": { "name": "Fetch Email Template", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/templates/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single email template" }, { "info": { "name": "Update Email Template", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/templates/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an email template. Only the provided fields are changed. Invalid Liquid in html_body is rejected with 422. When accessing the API through an OAuth connection from a third-party platform acting on another team's workspaces, this endpoint is restricted to trusted developer platforms; if you are using your own API key (acting on your own account), you can write directly.\nSee [Update a template](https://accounts.myclickfunnels.com/.well-known/emails/skill.md#update-a-template) in the [Emails " }, { "info": { "name": "Delete Email Template", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/templates/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete an email template. Returns 422 if the template is shared or is in use by a workflow send-email step. When accessing the API through an OAuth connection from a third-party platform acting on another team's workspaces, this endpoint is restricted to trusted developer platforms; if you are using your own API key (acting on your own account), you can delete directly.\nSee [Delete a template](https://accounts.myclickfunnels.com/.well-known/emails/skill.md#delete-a-template) in the [Emails Skill" } ] }, { "info": { "name": "Emails::Topic", "type": "folder" }, "items": [ { "info": { "name": "List Email Topics", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/topics", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "include_archived", "value": "", "type": "query", "description": "Set to true to include archived topics in the results" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all email topics for a workspace. Use include_archived=true to include archived topics." }, { "info": { "name": "Create Email Topic", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/emails/topics", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new email topic for a workspace" }, { "info": { "name": "Fetch Email Topic", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/topics/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single email topic" }, { "info": { "name": "Update Email Topic", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/topics/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an email topic" }, { "info": { "name": "Archive Email Topic", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/emails/topics/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Archive an email topic. System topics cannot be archived." } ] }, { "info": { "name": "Form", "type": "folder" }, "items": [ { "info": { "name": "List Forms", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/forms", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List forms for a workspace" }, { "info": { "name": "Create Form", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/forms", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new form" }, { "info": { "name": "Fetch Form", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a form" }, { "info": { "name": "Update Form", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a form" }, { "info": { "name": "Remove Form", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a form" } ] }, { "info": { "name": "Forms::FieldSet", "type": "folder" }, "items": [ { "info": { "name": "List Field Sets", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/:form_id/field_sets", "params": [ { "name": "form_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List field sets for a form" }, { "info": { "name": "Create Field Set", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/:form_id/field_sets", "params": [ { "name": "form_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new field set" }, { "info": { "name": "Fetch Field Set", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/field_sets/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a field set" }, { "info": { "name": "Update Field Set", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/field_sets/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a field set" }, { "info": { "name": "Remove Field Set", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/field_sets/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a field set" } ] }, { "info": { "name": "Forms::Field", "type": "folder" }, "items": [ { "info": { "name": "List Fields", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/field_sets/:field_set_id/fields", "params": [ { "name": "field_set_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List fields for a field set" }, { "info": { "name": "Create Field", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/field_sets/:field_set_id/fields", "params": [ { "name": "field_set_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new field" }, { "info": { "name": "Fetch Field", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/fields/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a field" }, { "info": { "name": "Update Field", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/fields/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a field" }, { "info": { "name": "Remove Field", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/fields/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a field" }, { "info": { "name": "Reorder Fields", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/field_sets/:field_set_id/fields/reorder", "params": [ { "name": "field_set_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Reorders the fields of a field set." } ] }, { "info": { "name": "Forms::Fields::Option", "type": "folder" }, "items": [ { "info": { "name": "List Options", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/fields/:field_id/options", "params": [ { "name": "field_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List options for a field" }, { "info": { "name": "Create Option", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/fields/:field_id/options", "params": [ { "name": "field_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new option to a field" }, { "info": { "name": "Fetch Option", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/fields/options/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a option for a field" }, { "info": { "name": "Update Option", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/fields/options/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a option for a field" }, { "info": { "name": "Remove Option", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/fields/options/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a option for a field" } ] }, { "info": { "name": "Forms::Submission", "type": "folder" }, "items": [ { "info": { "name": "List Submissions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/:form_id/submissions", "params": [ { "name": "form_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List submissions for a form" }, { "info": { "name": "Create Submission", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/:form_id/submissions", "params": [ { "name": "form_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new submission to a form" }, { "info": { "name": "Fetch Submission", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/submissions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a submission for a form" }, { "info": { "name": "Update Submission", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/submissions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a submission for a form" }, { "info": { "name": "Remove Submission", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/submissions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a submission for a form" } ] }, { "info": { "name": "Forms::Submissions::Answer", "type": "folder" }, "items": [ { "info": { "name": "List Answers", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/submissions/:submission_id/answers", "params": [ { "name": "submission_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List answers for a submission" }, { "info": { "name": "Create Answer", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/submissions/:submission_id/answers", "params": [ { "name": "submission_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new answer to a submission" }, { "info": { "name": "Fetch Answer", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/submissions/answers/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a answer for a submission" }, { "info": { "name": "Update Answer", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/submissions/answers/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a answer for a submission" }, { "info": { "name": "Remove Answer", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/forms/submissions/answers/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a answer for a submission" } ] }, { "info": { "name": "FormSubmission", "type": "folder" }, "items": [ { "info": { "name": "List Form Submissions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/form_submissions", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List form submissions. This is a list of all form submissions for the workspace, including the submitted standard and custom fields. Please refer to the `Form` and `Forms::Submission` resources if you would like to submit forms programmatically." }, { "info": { "name": "Fetch Form Submission", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/form_submissions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a form submission. This is a record of a form submission, including the submitted standard and custom fields. Please refer to the `Form` and `Forms::Submission` resources if you would like to submit forms programmatically." } ] }, { "info": { "name": "Fulfillment", "type": "folder" }, "items": [ { "info": { "name": "List Fulfillments", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/fulfillments", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all fulfillments for your workspace. You will find detailed information about fulfilling orders is in [our Fulfillments guide](https://developers.myclickfunnels.com/docs/fulfillments)." }, { "info": { "name": "Create Fulfillment", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/fulfillments", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Fulfill an order or a part of an order. More information in [our Fulfillments guide](https://developers.myclickfunnels.com/docs/fulfillments)." }, { "info": { "name": "Fetch Fulfillment", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/fulfillments/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a specific fulfillment in the current workspace" }, { "info": { "name": "Update Fulfillment", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/fulfillments/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a specific fulfillment." }, { "info": { "name": "Remove Fulfillment", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/fulfillments/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove Fulfillment" }, { "info": { "name": "Cancel a Fulfillment", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/fulfillments/:id/cancel", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "This will cancel a Fulfillment. A Fulfillment can only be cancelled when it's in a "fulfilled" state. The "cancelled" state is final." } ] }, { "info": { "name": "Fulfillments::Location", "type": "folder" }, "items": [ { "info": { "name": "List Locations", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/fulfillments/locations", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List Locations" }, { "info": { "name": "Create Location", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/fulfillments/locations", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create Location" }, { "info": { "name": "Fetch Location", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/fulfillments/locations/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Location" }, { "info": { "name": "Update Location", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/fulfillments/locations/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Location" }, { "info": { "name": "Remove Location", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/fulfillments/locations/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove Location" } ] }, { "info": { "name": "Funnel", "type": "folder" }, "items": [ { "info": { "name": "List Funnels", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/funnels", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields. Available fields: head_code, footer_code. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for examples." } ] }, "docs": "List Funnels" }, { "info": { "name": "Create Funnel", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/funnels", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new funnel in the workspace.\n\nCreating a funnel automatically creates a workflow. You can then add pages to the funnel by creating pages with `funnel.funnel_id` set to the new funnel's ID (see the Create Page endpoint).\n\n**Client flow for building a funnel with pages:**\n1. `POST /api/v2/workspaces/:id/funnels` — creates the funnel (workflow auto-created)\n2. `POST /api/v2/workspaces/:id/pages` with `{ page: { name: \"...\", funnel: { funnel_id: \"\" }, markup: \"\" } }` " }, { "info": { "name": "Fetch Funnel", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:id", "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields. Available fields: head_code, footer_code. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for examples." } ] }, "docs": "Fetch Funnel" }, { "info": { "name": "Update Funnel", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:id", "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields. Available fields: head_code, footer_code. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for examples." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Funnel.\n\nYou can use head_code and footer_code parameters to inject custom code. Use head_code_mode and footer_code_mode to control whether code is appended or replaced.\n" }, { "info": { "name": "Fetch Funnel Structure", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:id/structure", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "A funnel's steps as a single, flat, ordered list — the same top‑to‑bottom flow you see in the funnel builder. Use it to read or visualize how a funnel is laid out.\n\nEach entry in `steps` is one of three kinds:\n\n- **`show_page_step`** — a page. Includes `page` (its `name`, `url`, and the `external` / `sdk_token` flags for externally‑hosted SDK pages) and `show_page_step_id` — the id you hand back as `funnel.show_page_step_id` to swap a page onto this step.\n- **`split_test_step`** — an A/B test: a" }, { "info": { "name": "Fetch Funnel Stats", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/stats", "params": [ { "name": "funnel_id", "value": "", "type": "path" }, { "name": "timerange_start", "value": "2026-01-01T00:00:00Z", "type": "query", "description": "Start of the stats timerange (ISO 8601 format). Defaults to 30 days before `timerange_end`. If the window between start and end exceeds 90 days, start is automatically clamped to 90 days before end. If start is after end, the window resets to the default 30 days ending at `timerange_end`. See [Timerange parameters (both endpoints)](https://accounts.myclickfunnels.com/.well-known/stats/skill.md#timerange-parameters-both-endpoints) in the [Stats Skill](https://accounts.myclickfunnels.com/.well-known/stats/skill.md) for the clamping rules and how to cover longer windows." }, { "name": "timerange_end", "value": "2026-01-31T23:59:59Z", "type": "query", "description": "End of the stats timerange (ISO 8601 format). Defaults to the current time. Values in the future are automatically clamped to now." }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=steps` to include per-step statistics. When `expand[]=steps` is set, the response contains a `steps` array with detailed metrics for each funnel step. When omitted, the response contains a `page_public_ids` array instead. See [the expanded steps response](https://accounts.myclickfunnels.com/.well-known/stats/skill.md#response-with-expandsteps) in the [Stats Skill](https://accounts.myclickfunnels.com/.well-known/stats/skill.md) for both response shapes." } ] }, "docs": "Retrieve detailed statistics for a funnel, including a summary of key metrics\nand optional per-step breakdowns of views, opt-ins, sales, and earnings.\n\nDefaults to a 30-day timerange ending now. Override with `timerange_start` and\n`timerange_end`. Timerange values are automatically clamped: future end dates\nare clamped to now, windows exceeding 90 days are clamped to 90 days, and if\nstart is after end the window resets to 30 days ending at `timerange_end`.\n\nBy default the response includes a `pa" } ] }, { "info": { "name": "Funnels::SplitTestStep", "type": "folder" }, "items": [ { "info": { "name": "List Split Test Steps", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/split_test_steps", "params": [ { "name": "funnel_id", "value": "", "type": "path" } ] }, "docs": "List all split test steps in a funnel. Each split test wraps an existing page in a\ntwo-branch split and optionally attaches a second page.\n\nSee the [Funnels Skill](https://accounts.myclickfunnels.com/.well-known/funnels/skill.md#split-test-steps) for the full split-test surface.\n" }, { "info": { "name": "Create Split Test Step", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/split_test_steps", "params": [ { "name": "funnel_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Wrap an existing page in a new split test. Provide one variant to wrap a single page\n(the second branch starts empty and can be attached later via PATCH), or two variants\nto wrap a page and attach a fresh page as the second branch. The API never clones\npages — the second variant's page must not already be used by any funnel step.\n\nSee the [Funnels Skill](https://accounts.myclickfunnels.com/.well-known/funnels/skill.md#split-test-steps) for the full split-test surface.\n" }, { "info": { "name": "Fetch Split Test Step", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/split_test_steps/:id", "params": [ { "name": "funnel_id", "value": "", "type": "path" }, { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch a single split test step with its variants and weights." }, { "info": { "name": "Update Split Test Step", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/split_test_steps/:id", "params": [ { "name": "funnel_id", "value": "", "type": "path" }, { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a split test's variants: attach a page to an empty branch, swap an existing\nvariant's page, or adjust the weights. The `variants` array length must equal the\nnumber of branches in the split test (2 for the standard binary case).\n\n- Weight rules: if *any* variant provides `weight`, all variants must provide it and\n the values must be integers 0..100 summing to 100. If *none* provide weight, weights\n stay unchanged.\n- Page-id rules per variant:\n - Equal to current `page_id` → no-op.\n - " }, { "info": { "name": "Destroy Split Test Step", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/split_test_steps/:id", "params": [ { "name": "funnel_id", "value": "", "type": "path" }, { "name": "id", "value": "", "type": "path" }, { "name": "branch", "value": "", "type": "query", "description": "Optional branch to remove. One of `left`, `right`, or `both` (default)." } ] }, "docs": "Remove a split test from the funnel.\n\n**A 1-branch split test is not a supported state**, so any value of\n`branch` collapses the entire split:\n\n- `DELETE /funnels/{funnel_id}/split_test_steps/{id}` (default `branch=both`)\n → removes the entire split test, both branches discarded.\n- `DELETE /funnels/{funnel_id}/split_test_steps/{id}?branch=left` → removes\n the entire split test; the **right** branch's pages are promoted up\n under the split's parent so they remain attached to the funnel's main\n" } ] }, { "info": { "name": "Funnels::ConditionalSplitStep", "type": "folder" }, "items": [ { "info": { "name": "List Conditional Split Steps", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/conditional_split_steps", "params": [ { "name": "funnel_id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Pass `filter` to include the full RefineFilter object in `condition.filter` for each step." } ] }, "docs": "List all conditional split steps in a funnel. Each entry exposes its `condition`\n(filter_id + is_setup) and 2-entry `branches` array (`[matched, unmatched]`).\n\nPass `expand[]=filter` to include the full RefineFilter object nested under\n`condition.filter` for each step. On the show endpoint (`GET /{id}`) the filter is\nalways included without needing the expand param.\n\nSee the [Funnels Skill](https://accounts.myclickfunnels.com/.well-known/funnels/skill.md#conditional-split-steps) for the full con" }, { "info": { "name": "Create Conditional Split Step", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/conditional_split_steps", "params": [ { "name": "funnel_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new conditional split step to a funnel. All fields are optional — providing\nnone creates an empty unconfigured split. Provide `condition` to set the contact\nfilter, `branches` to attach pages to one or both branches, and/or\n`show_page_step_id` to position the split in the workflow.\n\nSee the [Funnels Skill](https://accounts.myclickfunnels.com/.well-known/funnels/skill.md#conditional-split-steps) for the full surface.\n" }, { "info": { "name": "Fetch Conditional Split Step", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/conditional_split_steps/:id", "params": [ { "name": "funnel_id", "value": "", "type": "path" }, { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch a single conditional split step with its branches and condition." }, { "info": { "name": "Update Conditional Split Step", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/conditional_split_steps/:id", "params": [ { "name": "funnel_id", "value": "", "type": "path" }, { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update the `condition` and/or attach pages to existing `branches`. At least one of\nthe two must be provided.\n\n- `condition.filter_id` is the public id of a RefineFilter in the same workspace.\n- Branches array must have 2 entries (matched, unmatched). Each entry may carry a\n `page_id` to attach (currently empty branch) or swap (currently populated branch).\n Any page being attached / swapped-in must be a fresh `user_page` in the same\n workspace with no existing `ShowPageStep`.\n" }, { "info": { "name": "Destroy Conditional Split Step", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/:funnel_id/conditional_split_steps/:id", "params": [ { "name": "funnel_id", "value": "", "type": "path" }, { "name": "id", "value": "", "type": "path" }, { "name": "branch", "value": "", "type": "query", "description": "Optional branch to remove. One of `matched`, `unmatched`, or `both` (default)." } ] }, "docs": "Remove a conditional split from the funnel.\n\n**A 1-branch conditional split is not a supported state**, so any value\nof `branch` collapses the entire split:\n\n- `DELETE /funnels/{funnel_id}/conditional_split_steps/{id}` (default\n `branch=both`) → removes the entire conditional split, both branches\n discarded.\n- `DELETE /funnels/{funnel_id}/conditional_split_steps/{id}?branch=matched`\n → removes the entire conditional split; the **unmatched** branch's\n pages are promoted up under the split's p" } ] }, { "info": { "name": "Funnels::Tag", "type": "folder" }, "items": [ { "info": { "name": "List Tags", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/funnels/tags", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List Tags" }, { "info": { "name": "Create Tag", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/funnels/tags", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create Tag" }, { "info": { "name": "Fetch Tag", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Tag" }, { "info": { "name": "Update Tag", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Tag" }, { "info": { "name": "Remove Tag", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/funnels/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove Tag" } ] }, { "info": { "name": "Image", "type": "folder" }, "items": [ { "info": { "name": "List Images", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/images", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List Images" }, { "info": { "name": "Create Image", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/images", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create Image" }, { "info": { "name": "Fetch Image", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/images/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Image" }, { "info": { "name": "Update Image", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/images/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Image" }, { "info": { "name": "Remove Image", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/images/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove Image" } ] }, { "info": { "name": "Orders::AppliedTag", "type": "folder" }, "items": [ { "info": { "name": "List Applied Tags", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/:order_id/applied_tags", "params": [ { "name": "order_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List the applied tags for an order" }, { "info": { "name": "Create Applied Tag", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/:order_id/applied_tags", "params": [ { "name": "order_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Assign a tag to an order by creating an applied tag" }, { "info": { "name": "Fetch Applied Tag", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/applied_tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve an applied tag for an order" }, { "info": { "name": "Remove Applied Tag", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/applied_tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove a tag from an order by deleting an applied tag" } ] }, { "info": { "name": "Order", "type": "folder" }, "items": [ { "info": { "name": "List Orders", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/orders", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "stored_filter_id", "value": "", "type": "query", "description": "The `id` (integer) or `public_id` (string) of a saved order filter scoped to this workspace. Existing saved filters can be discovered with `GET /api/v2/workspaces/{workspace_id}/refine_filters`; choose an entry whose `filter_class` is `OrdersFilter`. Applies the saved filter's criteria to the results, composed (AND) with any `filter[...]` params.\nReturns 422 if the filter is unknown, invalid, belongs to a different workspace, or is not an order filter. When both `stored_filter_id` and `stable_id` are supplied, `stable_id` takes precedence." }, { "name": "stable_id", "value": "", "type": "query", "description": "A URL-encoded Refine `stable_id` token copied from a filtered ClickFunnels Orders page. Send it as a normally encoded query parameter; do not decode it or concatenate its raw value into a URL. Applies the encoded order-filter criteria to the results, composed (AND) with any `filter[...]` params.\nReturns 422 if the token is malformed, is not an order filter, mixes `and`/`or` across its conditions, or references records outside this workspace. Flat filters and grouped filters using a single conjunction (including tokens copied from the filtered Orders UI) are supported; mixing the two words is rejected whether or not the token groups its criteria, because a flat filter cannot express it. When both selectors are supplied, `stable_id` takes precedence.\nSee [Applying existing order filters](https://accounts.myclickfunnels.com/.well-known/refine-filters/skill.md#applying-existing-order-filters) in the [Refine Filters Skill](https://accounts.myclickfunnels.com/.well-known/refine-filters/skill.md) for where to copy this token from and how to send it." }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List all orders for the current workspace. Please refer to [our Orders Overview guide](https://developers.myclickfunnels.com/docs/orders) for more information about the different types of orders and payment processors. To apply an order filter that already exists in ClickFunnels, pass `stored_filter_id` or `stable_id`, see [Applying existing order filters](https://accounts.myclickfunnels.com/.well-known/refine-filters/skill.md#applying-existing-order-filters) in the [Refine Filters Skill](https:" }, { "info": { "name": "Create External Order", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/orders", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new [external order](https://developers.myclickfunnels.com/docs/orders#external-orders) in the current workspace. This is useful if you process payments outside of ClickFunnels, but still want to make use of ClickFunnels' automations and funnels. You can gain even more functionality by creating invoices for your new orders. It is currently only possible to create invoices with the 'external' payment processor type. Other payment processors like 'payments_ai' are not " }, { "info": { "name": "Fetch Order", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a specific order in the current workspace. Please refer to [our Orders Overview guide](https://developers.myclickfunnels.com/docs/orders) for more information about the different types of orders and payment processors." }, { "info": { "name": "Update Order", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a specific order in the current workspace. [External orders](https://developers.myclickfunnels.com/docs/orders#external-orders) have different updateable fields than orders that have a regular payment processor like Payments AI or Stripe. To stop a subscription from renewing, use `POST /orders/{id}/cancel` (see [Cancel a subscription](https://accounts.myclickfunnels.com/.well-known/orders/skill.md#cancel-a-subscription) in the [Orders Skill](https://accounts.myclickfunnels.com/.well-known" }, { "info": { "name": "Cancel Order", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/:id/cancel", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancel a subscription order through ClickFunnels' own cancel path (the same path the\nin-app \"Cancel subscription\" flow uses) so the cancelation actually propagates to the\npayment processor (Payments AI/Rebilly or Stripe). A direct `PATCH /orders/{id}` write\nof `service_status: canceled` is a no-op for processor-managed orders, which is why this\naction exists.\n\nOnly Payments AI and Stripe subscription orders can be canceled. Calling this on a\none-time order or an external subscription returns a 4" } ] }, { "info": { "name": "Orders::Invoices::Restock", "type": "folder" }, "items": [ { "info": { "name": "List Restocks", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/orders/invoices/restocks", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List Restocks" }, { "info": { "name": "Fetch Restock", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/invoices/restocks/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Restock" } ] }, { "info": { "name": "Orders::Invoice", "type": "folder" }, "items": [ { "info": { "name": "List Invoices", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/:order_id/invoices", "params": [ { "name": "order_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List invoices for a specific order. Please refer to [our Orders Overview guide](https://developers.myclickfunnels.com/docs/orders/invoices) for more information about the different types of invoices and payment processors." }, { "info": { "name": "Create External Invoice", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/:order_id/invoices", "params": [ { "name": "order_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create an invoice for an external order. This is useful if you process payments outside of ClickFunnels, but still want to make use of ClickFunnels' automations and funnels. Refer to the corresponding guide for more information [here](https://developers.myclickfunnels.com/docs/orders#external-orders)." }, { "info": { "name": "Fetch Invoice", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/invoices/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve an invoice for an order. Please refer to [our Orders Overview guide](https://developers.myclickfunnels.com/docs/orders/invoices) for more information about the different types of invoices and payment processors." }, { "info": { "name": "Update External Invoice", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/invoices/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a specific invoice in the current workspace. Currently, only invoices of [external orders](https://developers.myclickfunnels.com/docs/orders#external-orders) can be updated. So, you can't update invoices of other payment processors, like Payments AI and Stripe." }, { "info": { "name": "Abandon Invoice", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/invoices/:id/abandon", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Abandon an unpaid, draft, or past-due invoice through ClickFunnels' own abandon path (the\nsame path the in-app \"Abandon invoice\" button uses) so the abandon propagates to the payment\nprocessor and STOPS its autopay retry (dunning) schedule for this invoice.\n\nReach for this when the retries themselves are the problem: an insufficient-funds decline\nwhere the right move is to hold the retry cycle for a few days rather than cancel the\nsubscription or refund the customer. Abandoning affects only this" }, { "info": { "name": "List Workspace Invoices", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/orders/invoices", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List all invoices for a specific workspace. Please refer to the [API documentation](https://developers.myclickfunnels.com/docs/orders/invoices) for more information about the different types of invoices and payment processors." } ] }, { "info": { "name": "Orders::Transaction", "type": "folder" }, "items": [ { "info": { "name": "List Transactions", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/:order_id/transactions", "params": [ { "name": "order_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List transactions for an order" }, { "info": { "name": "Fetch Transaction", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/transactions/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a transaction for an order" }, { "info": { "name": "Refund Transaction", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/transactions/:id/refund", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Refund this charge, in full, through ClickFunnels' own refund path (the same path the in-app\nrefund button uses) so the money actually moves back through the payment processor (Payments\nAI/Rebilly or Stripe).\n\nA refund addresses a transaction because the transaction IS the charge: refundable balance and\nrefund eligibility are tracked per transaction, and the refund is recorded against this one. A\nsubscription order accumulates one charge per renewal and an invoice can carry more than one,\nso nei" } ] }, { "info": { "name": "Orders::LineItems::Change", "type": "folder" }, "items": [ { "info": { "name": "Preview Variant/Price Change", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/line_items/:line_item_id/changes", "params": [ { "name": "line_item_id", "value": "", "type": "path", "description": "The id of the subscription line item. Accepts either the integer database\nid or the obfuscated `public_id` string returned by line-item endpoints.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns a non-destructive preview of changing the variant and price of a subscription\nline item, including proration math, the next charge amount, and the effective date.\nFollows the same upgrade/downgrade rules as the in-app self-serve flow.\n\nWhen accessing the API through an OAuth connection from a third-party platform acting on\nanother team's workspaces, this endpoint requires trusted platform access and returns\n403 without it. This trusted-access check does not apply when acting on your own " }, { "info": { "name": "Change Variant/Price", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/line_items/:line_item_id/changes/perform", "params": [ { "name": "line_item_id", "value": "", "type": "path", "description": "The id of the subscription line item. Accepts either the integer database\nid or the obfuscated `public_id` string returned by line-item endpoints.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Commits a variant/price change for a subscription line item. The change must be\nconfigured as an allowed upgrade or downgrade option on the source variant. By default,\nupgrades take effect immediately and are prorated; downgrades take effect at the next\nrenewal and are not prorated. Both behaviours can be overridden via `prorate` and\n`effective_time`.\n\nWhen accessing the API through an OAuth connection from a third-party platform acting on\nanother team's workspaces, this endpoint requires truste" } ] }, { "info": { "name": "Orders::Tag", "type": "folder" }, "items": [ { "info": { "name": "List Tags", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/orders/tags", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List all order tags for your workspace" }, { "info": { "name": "Create Tag", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/orders/tags", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new order tag to your workspace" }, { "info": { "name": "Fetch Tag", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single order tag" }, { "info": { "name": "Update Tag", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an order tag" }, { "info": { "name": "Remove Tag", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/orders/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete an order tag from your workspace" } ] }, { "info": { "name": "Page", "type": "folder" }, "items": [ { "info": { "name": "List Pages", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/pages", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=head_code&expand[]=footer_code&expand[]=custom_css&expand[]=markup`). Markup is opt-in on every endpoint (show, list, create, update) because PML serialization runs per page. `custom_css` is available on internal pages only. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples. Read a page's existing markup with `expand[]=markup` before editing it: see [Reading Current Markup](https://accounts.myclickfunnels.com/.well-known/pages/skill.md#reading-current-markup) in the [Pages Skill](https://accounts.myclickfunnels.com/.well-known/pages/skill.md)." } ] }, "docs": "Page offers extra information about ClickFunnels pages, like those that are part of funnels." }, { "info": { "name": "Create Page", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/pages", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=head_code&expand[]=footer_code&expand[]=custom_css&expand[]=markup`). Markup is opt-in on every endpoint (show, list, create, update) because PML serialization runs per page. `custom_css` is available on internal pages only. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples. Read a page's existing markup with `expand[]=markup` before editing it: see [Reading Current Markup](https://accounts.myclickfunnels.com/.well-known/pages/skill.md#reading-current-markup) in the [Pages Skill](https://accounts.myclickfunnels.com/.well-known/pages/skill.md)." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new internal page in the workspace. By default, creating a page without references to a funnel or show page step will create a standalone landing page.\n\nYou can optionally attach the page to a funnel by providing either:\n- `funnel.funnel_id`: Creates a new show page step in the specified funnel. When provided without `show_page_step_id`, the page is added as the last step of the funnel, positioned after the currently last page.\n- `funnel.show_page_step_id`: Swaps the referenced step to " }, { "info": { "name": "Create External Page", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/pages/external", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> **Closed Alpha** — not yet enabled for all workspaces. Request access at https://developers.myclickfunnels.com/page/code-support.\n\nCreate an externally-hosted (SDK) page. Unlike internal pages, the visual content lives on your own domain and is registered with ClickFunnels via a lightweight SDK integration.\n\n**Required fields:**\n- `external_url`: The fully-qualified URL where your page is hosted.\n\n**Standalone vs in a funnel:** the `funnel` block is optional.\n- Omit it to create a **standalone" }, { "info": { "name": "Fetch Page", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/pages/:id", "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=head_code&expand[]=footer_code&expand[]=custom_css&expand[]=markup`). Markup is opt-in on every endpoint (show, list, create, update) because PML serialization runs per page. `custom_css` is available on internal pages only. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples. Read a page's existing markup with `expand[]=markup` before editing it: see [Reading Current Markup](https://accounts.myclickfunnels.com/.well-known/pages/skill.md#reading-current-markup) in the [Pages Skill](https://accounts.myclickfunnels.com/.well-known/pages/skill.md)." } ] }, "docs": "Page offers extra information about ClickFunnels pages, like those that are part of funnels." }, { "info": { "name": "Update Page", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/pages/:id", "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "expand[]", "value": "", "type": "query", "description": "Expand additional data in the response. Use `expand[]=field_name` to include optional fields (e.g., `expand[]=head_code&expand[]=footer_code&expand[]=custom_css&expand[]=markup`). Markup is opt-in on every endpoint (show, list, create, update) because PML serialization runs per page. `custom_css` is available on internal pages only. See the [Expanding guide](https://developers.myclickfunnels.com/docs/expand) for available fields and examples. Read a page's existing markup with `expand[]=markup` before editing it: see [Reading Current Markup](https://accounts.myclickfunnels.com/.well-known/pages/skill.md#reading-current-markup) in the [Pages Skill](https://accounts.myclickfunnels.com/.well-known/pages/skill.md)." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an existing page. Works for both internal and external (SDK) pages.\n\n> **Closed Alpha note:** updating an **external** page requires external (SDK) page access — not yet enabled for all workspaces (403 otherwise). Request access at https://developers.myclickfunnels.com/page/code-support. Internal page updates are unaffected.\n\nField availability depends on the page type — see `PageParametersUpdate` for the full breakdown. Sending an internal-only field on an external page (or `external_url" }, { "info": { "name": "Delete Page", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/pages/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a page by ID. Works for both internal and external (SDK) pages.\n\nThe page's show page steps are destroyed first (removing the funnel step slot entirely), then the page itself (including its SDK registration for external pages).\n" }, { "info": { "name": "Remove Products from Page", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/pages/:id/products", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Detach one or more products from the page's show page step. This is the **only** way\nto remove products from a page via the API — the `show_page_step.product_ids` and\n`show_page_step.bumps` fields on `POST/PATCH /api/v2/pages` are\nadditive-only and never remove products.\n\nDetaching is by product id and ignores the bump flag: main products and order bumps\nare removed the same way. Detach-then-re-attach via `show_page_step.product_ids` is\nalso how you turn an order bump back into a main product.\n\n" }, { "info": { "name": "Fetch Page Stats", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/pages/:page_id/stats", "params": [ { "name": "page_id", "value": "", "type": "path" }, { "name": "timerange_start", "value": "2026-01-01T00:00:00Z", "type": "query", "description": "Start of the stats timerange (ISO 8601 format). Defaults to 30 days before `timerange_end`. If the window between start and end exceeds 90 days, start is automatically clamped to 90 days before end. If start is after end, the window resets to the default 30 days ending at `timerange_end`. See [Timerange parameters (both endpoints)](https://accounts.myclickfunnels.com/.well-known/stats/skill.md#timerange-parameters-both-endpoints) in the [Stats Skill](https://accounts.myclickfunnels.com/.well-known/stats/skill.md) for the clamping rules and how to cover longer windows." }, { "name": "timerange_end", "value": "2026-01-31T23:59:59Z", "type": "query", "description": "End of the stats timerange (ISO 8601 format). Defaults to the current time. Values in the future are automatically clamped to now." } ] }, "docs": "Retrieve statistics for a page, including views, opt-ins, sales, and earnings.\nStats are computed from the page's associated funnel step.\n\n`funnel` and `step` are `null` when the page is not part of a funnel\n(e.g. a standalone page or site page). This endpoint currently only reports\nanalytics for pages reached via a funnel step; page-level analytics for standalone\npages will be exposed in a future release.\n\nDefaults to a 30-day timerange ending now. Override with `timerange_start` and\n`timerange" } ] }, { "info": { "name": "Product", "type": "folder" }, "items": [ { "info": { "name": "List Products", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/products", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List all products for a workspace" }, { "info": { "name": "Create Product", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/products", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new product to a workspace" }, { "info": { "name": "Fetch Product", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a product for a workspace" }, { "info": { "name": "Update Product", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a product for a workspace" }, { "info": { "name": "Archive a Product", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/:id/archive", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "This will archive a Product. A product can only be archived if it's not in the "live" state." }, { "info": { "name": "Unarchive a Product", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/:id/unarchive", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "This will unarchive a Product." } ] }, { "info": { "name": "Products::Collection", "type": "folder" }, "items": [ { "info": { "name": "List Collections", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/products/collections", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List Collections" }, { "info": { "name": "Create Collection", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/products/collections", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create Collection" }, { "info": { "name": "Fetch Collection", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/collections/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Collection" }, { "info": { "name": "Update Collection", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/collections/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Collection" } ] }, { "info": { "name": "Products::Price", "type": "folder" }, "items": [ { "info": { "name": "List Prices", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/:product_id/prices", "params": [ { "name": "product_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List all prices for a given product. This will include all prices for all variants of the product. You can also filter by variant_id to get prices for a specific variant." }, { "info": { "name": "Fetch Price", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/prices/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single price" }, { "info": { "name": "Update Price", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/prices/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a single price" }, { "info": { "name": "Create Price", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/variants/:variant_id/prices", "params": [ { "name": "variant_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new price for a given variant.\nNote that you must set a `variant_id` in the path.\n" } ] }, { "info": { "name": "Products::Variant", "type": "folder" }, "items": [ { "info": { "name": "List Variants", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/:product_id/variants", "params": [ { "name": "product_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List variants for a product" }, { "info": { "name": "Create Variant", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/:product_id/variants", "params": [ { "name": "product_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new variant for a product" }, { "info": { "name": "Fetch Variant", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/variants/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a single variant" }, { "info": { "name": "Update Variant", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/variants/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a single variant" } ] }, { "info": { "name": "Products::Prices::ChangeOption", "type": "folder" }, "items": [ { "info": { "name": "List Upgrade/Downgrade Options", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/prices/:price_id/change_options", "params": [ { "name": "price_id", "value": "", "type": "path", "description": "The source price for which to look up allowed upgrade/downgrade targets.\nAccepts either the integer database id or the obfuscated `public_id` string.\n" } ] }, "docs": "Returns the allowed upgrade and downgrade target variants for a price, grouped by\ntarget variant. Each group lists the prices on the target variant that a subscription\nusing this source price may switch to. Use this to render dynamic upgrade pricing\npages, or to source target `products_price_id` values for the line item change\nendpoints: `POST /orders/line_items/{line_item_id}/changes` (preview) and\n`POST /orders/line_items/{line_item_id}/changes/perform` (commit).\n\nSee [Step 1 - Discover what's" } ] }, { "info": { "name": "Products::Tag", "type": "folder" }, "items": [ { "info": { "name": "List Tags", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/products/tags", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List tags for a product" }, { "info": { "name": "Create Tag", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/products/tags", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new tag to a product" }, { "info": { "name": "Fetch Tag", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a tag for a product" }, { "info": { "name": "Update Tag", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a tag for a product" }, { "info": { "name": "Remove Tag", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/products/tags/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a tag for a product" } ] }, { "info": { "name": "RefineFilter", "type": "folder" }, "items": [ { "info": { "name": "List Refine Filters", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/refine_filters", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[name]=value`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List saved filters in a workspace, ordered by id ascending. `after` is the switch between two modes. For backwards compatibility, omitting it returns the complete registry in one payload with no `Pagination-Next` header. Sending it returns bounded pages. For that bounded walk, pass `after=0` on the first request, then pass each `Pagination-Next` value on the next request until the header is absent, which marks the last page. `after=0` is the opt-in itself rather than a row id (real ids start at " }, { "info": { "name": "Create Refine Filter", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/refine_filters", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new contact RefineFilter in the workspace. This endpoint does not create order filters.\nThe `criteria` array must contain at\nleast one entry. Criteria are validated against the\n[safe-condition whitelist](https://accounts.myclickfunnels.com/.well-known/refine-filters/skill.md#safe-condition-whitelist) —\nunsupported attributes/clauses return 422 with a pointer to the dev community.\nSee the [Refine Filters Skill](https://accounts.myclickfunnels.com/.well-known/refine-filters/skill.md)\nfor " }, { "info": { "name": "Fetch Refine Filter", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/refine_filters/:id", "params": [ { "name": "id", "value": "", "type": "path", "description": "Public id of the RefineFilter (e.g. `AbCdEf`)." } ] }, "docs": "Fetch a single saved filter by its public id. Inspect `filter_class` before applying it to contacts or orders. Treat order filters as read-only here and edit them in the ClickFunnels Orders UI; create and update operations on this public endpoint author contact filters only." }, { "info": { "name": "Update Refine Filter", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/refine_filters/:id", "params": [ { "name": "id", "value": "", "type": "path", "description": "Public id of the RefineFilter to update." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an existing RefineFilter. All fields are optional — only provided fields are\nupdated. When `criteria` is supplied it replaces the entire criteria set (must contain\nat least one entry). 422 covers shape errors and\n[safe-condition policy](https://accounts.myclickfunnels.com/.well-known/refine-filters/skill.md#safe-condition-whitelist) violations.\n" }, { "info": { "name": "Destroy Refine Filter", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/refine_filters/:id", "params": [ { "name": "id", "value": "", "type": "path", "description": "Public id of the RefineFilter to delete." } ] }, "docs": "Delete a RefineFilter. Note that deleting a filter that is currently attached to a\nconditional split step or other surface will leave those surfaces without a filter\n(`condition.filter_id` will remain but the filter record will no longer exist).\nDetach the filter from all consumers before deleting.\nSee [Applying filters to consumers](https://accounts.myclickfunnels.com/.well-known/refine-filters/skill.md#applying-filters-to-consumers) in the [Refine Filters Skill](https://accounts.myclickfunnels" } ] }, { "info": { "name": "Sales::Pipeline", "type": "folder" }, "items": [ { "info": { "name": "List Pipelines", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/sales/pipelines", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List Pipelines" }, { "info": { "name": "Create Pipeline", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/sales/pipelines", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create Pipeline" }, { "info": { "name": "Fetch Pipeline", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/pipelines/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Pipeline" }, { "info": { "name": "Update Pipeline", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/pipelines/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Pipeline" } ] }, { "info": { "name": "Sales::Pipelines::Stage", "type": "folder" }, "items": [ { "info": { "name": "List Stages", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/pipelines/:pipeline_id/stages", "params": [ { "name": "pipeline_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List Stages" }, { "info": { "name": "Create Stage", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/pipelines/:pipeline_id/stages", "params": [ { "name": "pipeline_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create Stage" }, { "info": { "name": "Fetch Stage", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/pipelines/stages/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Stage" }, { "info": { "name": "Update Stage", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/pipelines/stages/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Stage" }, { "info": { "name": "Remove Stage", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/pipelines/stages/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove Stage" } ] }, { "info": { "name": "Sales::Opportunity", "type": "folder" }, "items": [ { "info": { "name": "List Opportunities", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/sales/opportunities", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List Opportunities" }, { "info": { "name": "Create Opportunity", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/sales/opportunities", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create Opportunity" }, { "info": { "name": "Fetch Opportunity", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/opportunities/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Opportunity" }, { "info": { "name": "Update Opportunity", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/opportunities/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Opportunity" }, { "info": { "name": "Remove Opportunity", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/opportunities/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove Opportunity" } ] }, { "info": { "name": "Sales::Opportunities::Note", "type": "folder" }, "items": [ { "info": { "name": "List Notes", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/opportunities/:opportunity_id/notes", "params": [ { "name": "opportunity_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).\n" } ] }, "docs": "List Notes" }, { "info": { "name": "Create Note", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/opportunities/:opportunity_id/notes", "params": [ { "name": "opportunity_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create Note" }, { "info": { "name": "Fetch Note", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/opportunities/notes/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Note" }, { "info": { "name": "Update Note", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/opportunities/notes/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Note" }, { "info": { "name": "Remove Note", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/sales/opportunities/notes/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove Note" } ] }, { "info": { "name": "Shipping::LocationGroup", "type": "folder" }, "items": [ { "info": { "name": "List Location Groups", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/profiles/:profile_id/location_groups", "params": [ { "name": "profile_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List location groups for a profile" }, { "info": { "name": "Fetch Location Group", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/location_groups/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a location group for a profile" } ] }, { "info": { "name": "Shipping::Package", "type": "folder" }, "items": [ { "info": { "name": "List Packages", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/shipping/packages", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List packages for a workspace" }, { "info": { "name": "Create Package", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/shipping/packages", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new package to a workspace" }, { "info": { "name": "Fetch Package", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/packages/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a package for a workspace" }, { "info": { "name": "Update Package", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/packages/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a package for a workspace" }, { "info": { "name": "Remove Package", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/packages/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a package for a workspace" } ] }, { "info": { "name": "Shipping::Profile", "type": "folder" }, "items": [ { "info": { "name": "List Profiles", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/shipping/profiles", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List shipping profiles for a workspace" }, { "info": { "name": "Create Profile", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/shipping/profiles", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new shipping profile to a workspace" }, { "info": { "name": "Fetch Profile", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/profiles/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a shipping profile for a workspace" }, { "info": { "name": "Update Profile", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/profiles/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a shipping profile for a workspace" }, { "info": { "name": "Remove Profile", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/profiles/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a shipping profile for a workspace" } ] }, { "info": { "name": "Shipping::Rate", "type": "folder" }, "items": [ { "info": { "name": "List Rates", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/zones/:zone_id/rates", "params": [ { "name": "zone_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List shipping rates for a zone" }, { "info": { "name": "Create Rate", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/zones/:zone_id/rates", "params": [ { "name": "zone_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new shipping rate to a zone" }, { "info": { "name": "Fetch Rate", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/rates/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a shipping rate for a zone" }, { "info": { "name": "Update Rate", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/rates/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a shipping rate for a zone" }, { "info": { "name": "Remove Rate", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/rates/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a shipping rate for a zone" } ] }, { "info": { "name": "Shipping::Zone", "type": "folder" }, "items": [ { "info": { "name": "List Zones", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/location_groups/:location_group_id/zones", "params": [ { "name": "location_group_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List zones for a location group" }, { "info": { "name": "Create Zone", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/location_groups/:location_group_id/zones", "params": [ { "name": "location_group_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new zone to a location group" }, { "info": { "name": "Fetch Zone", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/zones/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a zone for a location group" }, { "info": { "name": "Update Zone", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/zones/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a zone for a location group" }, { "info": { "name": "Remove Zone", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/zones/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a zone for a location group" } ] }, { "info": { "name": "Shipping::Rates::Name", "type": "folder" }, "items": [ { "info": { "name": "List Names", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/shipping/rates/names", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List rate names for a shipping profile" }, { "info": { "name": "Create Name", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/shipping/rates/names", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new rate name to a shipping profile" }, { "info": { "name": "Fetch Name", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/rates/names/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a rate name for a shipping profile" }, { "info": { "name": "Update Name", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/rates/names/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a rate name for a shipping profile" }, { "info": { "name": "Remove Name", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/shipping/rates/names/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a rate name for a shipping profile" } ] }, { "info": { "name": "Store", "type": "folder" }, "items": [ { "info": { "name": "List Stores", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/stores", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List Stores" }, { "info": { "name": "Create Store", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/stores", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create Store" }, { "info": { "name": "Fetch Store", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/stores/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Fetch Store" }, { "info": { "name": "Update Store", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/stores/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Store" }, { "info": { "name": "Remove Store", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/stores/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Remove Store" } ] }, { "info": { "name": "Style", "type": "folder" }, "items": [ { "info": { "name": "List Styles", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/styles", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List Styles" } ] }, { "info": { "name": "Theme", "type": "folder" }, "items": [ { "info": { "name": "List Themes", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/themes", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List of all themes available in the workspace" }, { "info": { "name": "Fetch Theme", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/themes/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a theme" }, { "info": { "name": "Update Theme", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/themes/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a theme" }, { "info": { "name": "Set Default Theme", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/themes/:id/set_default", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "This will set the specified theme as the default theme for the current workspace." } ] }, { "info": { "name": "Webhooks::Outgoing::Endpoint", "type": "folder" }, "items": [ { "info": { "name": "List Endpoints", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/webhooks/outgoing/endpoints", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List webhook endpoints for a workspace" }, { "info": { "name": "Create Endpoint", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/webhooks/outgoing/endpoints", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a new webhook endpoint to a workspace" }, { "info": { "name": "Fetch Endpoint", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/webhooks/outgoing/endpoints/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve a webhook endpoint for a workspace" }, { "info": { "name": "Update Endpoint", "type": "http" }, "http": { "method": "PUT", "url": "https://{subdomain}.myclickfunnels.com/api/v2/webhooks/outgoing/endpoints/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a webhook endpoint for a workspace" }, { "info": { "name": "Remove Endpoint", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/webhooks/outgoing/endpoints/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Delete a webhook endpoint for a workspace" } ] }, { "info": { "name": "Webhooks::Outgoing::Event", "type": "folder" }, "items": [ { "info": { "name": "List Events", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/webhooks/outgoing/events", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ] }, "docs": "List webhook events for a workspace" }, { "info": { "name": "Fetch Event", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/webhooks/outgoing/events/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Retrieve an webhook event for a workspace" } ] }, { "info": { "name": "Webhooks::Outgoing::EventType", "type": "folder" }, "items": [ { "info": { "name": "List Event Types", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/webhooks/outgoing/event_types", "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Returns the complete, authoritative catalog of webhook event types that a webhook endpoint can subscribe to.\nEach entry's `id` field is the exact dotted/slashed string key (e.g. `contact.updated`, `order.completed`, `orders/invoice.paid`)\nto supply verbatim in the `event_type_ids` array when creating or updating a webhook endpoint.\nFetch this list instead of guessing event type identifiers or consulting an external reference — this is the canonical source.\nThis endpoint is global (not scoped to " } ] }, { "info": { "name": "Workflow", "type": "folder" }, "items": [ { "info": { "name": "List Workflows", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/workflows", "params": [ { "name": "workspace_id", "value": "", "type": "path" }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "List the standalone automation workflows for a workspace. Supports cursor\npagination and sort.\n" }, { "info": { "name": "Create Workflow", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workspaces/:workspace_id/workflows", "params": [ { "name": "workspace_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Create a new standalone automation workflow. New workflows are created in the\n`draft` state (disabled). Add triggers and steps, then call `POST /workflows/{id}/enable`\nto make it live.\n" }, { "info": { "name": "Fetch Workflow", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieve a single workflow by its integer id or obfuscated public_id.\n" }, { "info": { "name": "Update Workflow", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Update a workflow's `name` or `archived` flag. `run_type` is server-controlled\nand cannot be changed.\n" }, { "info": { "name": "Delete Workflow", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Permanently delete a workflow and all its associated triggers, steps, and run records.\n" }, { "info": { "name": "Fetch Workflow Structure", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:id/structure", "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Returns the workflow's complete tree in a single call: the workflow header,\nits active triggers (summary shape), and the ordered list of visible steps with\nbranching inlined. Internal container nodes are spliced out.\n\nSplit steps carry their child branches or variants directly in the response:\n- `conditional_split_step`: `branches` — always `[{branch: \"matched\", steps: [...]}, {branch: \"unmatched\", steps: [...]}]`\n- `split_test_step`: `variants` — each entry has `weight` and `steps`.\n\nWalk the `" }, { "info": { "name": "Enable Workflow", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:id/enable", "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Enable a workflow so it can accept new runs. The workflow must have at least one\nactive trigger — otherwise returns 422. Returns the updated workflow.\n" }, { "info": { "name": "Disable Workflow", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:id/disable", "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Disable a workflow, stopping new runs from being started. In-progress runs\nare canceled. Returns the updated workflow.\n" } ] }, { "info": { "name": "Workflows::Trigger", "type": "folder" }, "items": [ { "info": { "name": "List Triggers", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:workflow_id/triggers", "params": [ { "name": "workflow_id", "value": "", "type": "path", "description": "Integer id or obfuscated public_id of the workflow." }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "List all triggers attached to a workflow.\n" }, { "info": { "name": "Create Trigger", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:workflow_id/triggers", "params": [ { "name": "workflow_id", "value": "", "type": "path", "description": "Integer id or obfuscated public_id of the workflow." } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Add a new trigger to a workflow. The `event_type_key` must be a valid workflow\ntrigger event key — an invalid value returns 422. All condition FK fields accept\nthe integer id or obfuscated `public_id` of a referenced resource in the same\nworkspace/team scope.\n" }, { "info": { "name": "Fetch Trigger", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/triggers/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieve a single workflow trigger.\n" }, { "info": { "name": "Update Trigger", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/triggers/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Update an existing workflow trigger. All fields optional. An invalid `event_type_key`\nreturns 422.\n" }, { "info": { "name": "Delete Trigger", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/triggers/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Delete a trigger from a workflow.\n" } ] }, { "info": { "name": "Workflows::Step", "type": "folder" }, "items": [ { "info": { "name": "List Steps", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:workflow_id/steps", "params": [ { "name": "workflow_id", "value": "", "type": "path", "description": "Integer id or obfuscated public_id of the workflow." }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "List all visible (displayable) steps for a workflow using standard collection\nsorting. Internal container nodes are not included. `sort_order` is\ncontainer-local and not globally unique; use `GET /workflows/{id}/structure`\nwhen clients need execution order.\n" }, { "info": { "name": "Create Step", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:workflow_id/steps", "params": [ { "name": "workflow_id", "value": "", "type": "path", "description": "Integer id or obfuscated public_id of the workflow." } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Add a new step to a workflow. `step_type_settings` must contain exactly one key\nnaming the step type.\n\n**Placement:** omit `parent_step_id` to append to the trunk sequence. Set\n`parent_step_id` + `branch` to place inside a split branch. Use `position` (0-based)\nor `after_step_id` to control order within a container.\n\nFor `split_test_step`: provide `variants` with exactly 2 entries whose `weight`\nvalues sum to 100. For `conditional_split_step`: optionally provide\n`condition.filter_id` (integer id" }, { "info": { "name": "Fetch Step", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/steps/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieve a single workflow step.\n" }, { "info": { "name": "Update Step", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/steps/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Update a workflow step's `name`, `step_type_settings`, and/or placement.\nMoving split steps (`conditional_split_step`, `split_test_step`) is not supported\nand returns 422. A `send_email_step`'s `template_id` is create-only and cannot be\nchanged here (returns 422) — edit the email in place with `html_body`/`text_body`, or\ncreate a new step to use a different template.\n" }, { "info": { "name": "Delete Step", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/steps/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Delete a step from a workflow. Split steps and their branch contents are removed\nrecursively.\n" } ] }, { "info": { "name": "Workflows::Run", "type": "folder" }, "items": [ { "info": { "name": "List Runs", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:workflow_id/runs", "params": [ { "name": "workflow_id", "value": "", "type": "path", "description": "Integer id or obfuscated public_id of the workflow." }, { "name": "after", "value": "", "type": "query", "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)." }, { "name": "sort_order", "value": "", "type": "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)." }, { "name": "sort_property", "value": "", "type": "query", "description": "Sort property of a list response. The default is id and thus the created_at order.\nIf 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.\n" }, { "name": "filter", "value": "", "type": "query", "description": "Filter runs by `contact_id` (integer id or obfuscated public_id of the contact) and/or\n`status` (`active`, `paused`, `completed`, or `canceled`).\nAn invalid `status` value returns 422.\n" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "List automation runs for a workflow. Supports filtering by `contact_id` and `status`.\nOnly standard automation runs are returned (survey runs excluded).\n" }, { "info": { "name": "Enroll Contact (Create Run)", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/:workflow_id/runs", "params": [ { "name": "workflow_id", "value": "", "type": "path", "description": "Integer id or obfuscated public_id of the workflow." } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Manually enroll a contact into a workflow, starting a new run immediately.\nThe workflow must be enabled (`status: live`) — an unenabled workflow returns 422.\nThe contact must belong to the same workspace.\n\nSome step types are skipped at enrollment rather than executed — notably page\n(`show_page_step`) and internal sequence/plumbing steps, which only make sense\ninside a funnel. This list is non-exhaustive; standalone automations run the\naction and split steps documented under Workflows::Step.\n" }, { "info": { "name": "Fetch Run", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.myclickfunnels.com/api/v2/workflows/runs/:id", "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieve a single workflow run by its id or obfuscated public_id.\n" } ] } ], "bundled": true }