ClickFunnels Blog API

> Blogs represent a blog resource belonging to a workspace site A Blog is a top-level container for blog posts, categories, tags, and authors. Each workspace site can have one or more blogs, each with their own SEO settings, theme, and URL path. See the [Blogs Skill](https://accounts.myclickfunnels.com/.well-known/blogs/skill.md) for the end-to-end guide to creating, reading, and updating blog posts.

Operations 3

GET /workspaces/{workspace_id}/blogs List Blogs #
GET /blogs/{id} Fetch Blog #
PATCH /blogs/{id} Update Blog #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

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

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

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

clickfunnels-blog-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ClickFunnels Blog API
  termsOfService: https://www.clickfunnels.com/terms-of-service
  contact:
    name: ClickFunnels API Team
    url: https://developers.myclickfunnels.com
  x-logo:
    url: https://statics.myclickfunnels.com/image/1126065/file/31edf05760fafe41a82f16a668ab251f.png
  description: 'The ClickFunnels REST API that powers webhooks, native integrations, and Zapier lets you manage your ClickFunnels data, automate your workflows, and recreate ClickFunnels functionality in your own apps.

    '
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: 2.0.0
servers:
- url: https://{subdomain}.myclickfunnels.com/api/v2
  description: ClickFunnels API
  variables:
    subdomain:
      default: myworkspace
security:
- BearerAuth: []
tags:
- name: Blog
  description: '> Blogs represent a blog resource belonging to a workspace site


    A Blog is a top-level container for blog posts, categories, tags, and authors. Each workspace site can have one or more blogs, each with their own SEO settings, theme, and URL path.


    See the [Blogs Skill](https://accounts.myclickfunnels.com/.well-known/blogs/skill.md) for the end-to-end guide to creating, reading, and updating blog posts.

    '
paths:
  /workspaces/{workspace_id}/blogs:
    get:
      tags:
      - Blog
      summary: List Blogs
      description: List blogs for the given workspace.
      operationId: listBlogs
      parameters:
      - name: workspace_id
        in: path
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/sort_order'
      - $ref: '#/components/parameters/sort_property'
      responses:
        '200':
          description: OK
          headers:
            Pagination-Next:
              $ref: '#/components/headers/PaginationNext'
            Link:
              $ref: '#/components/headers/Link'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BlogAttributes'
              example:
              - id: 1
                public_id: aBcDeF
                workspace_id: 42000
                site_id: 10
                name: My Blog
                current_path: /blog
                url: https://myworkspace.myclickfunnels.com/blog
                theme_id: 5
                resolved_template_page_id: 101
                resolved_post_template_page_id: 102
                resolved_category_template_page_id: 103
                style_id: null
                seo_image_id: null
                seo_title: My Blog - Latest Articles
                seo_description: Read our latest articles and updates.
                created_at: '2025-01-01T00:00:00.000Z'
                updated_at: '2025-01-01T00:00:00.000Z'
              - id: 2
                public_id: gHiJkL
                workspace_id: 42000
                site_id: 10
                name: Product Updates
                current_path: /product-updates
                url: https://myworkspace.myclickfunnels.com/product-updates
                theme_id: 5
                resolved_template_page_id: 101
                resolved_post_template_page_id: 102
                resolved_category_template_page_id: 103
                style_id: null
                seo_image_id: null
                seo_title: null
                seo_description: null
                created_at: '2025-03-01T00:00:00.000Z'
                updated_at: '2025-03-15T00:00:00.000Z'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: API key missing or invalid
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Not found - This usually happens when you try to access a record that does not exist in your account. It can also happen when the provided parent record is missing, e.g. you have put in a non-existent Workspaces parent ID.
              example:
                error: 'Not found: Record missing'
  /blogs/{id}:
    get:
      tags:
      - Blog
      summary: Fetch Blog
      description: Retrieve a blog.
      operationId: getBlog
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogAttributes'
              example:
                id: 1
                public_id: aBcDeF
                workspace_id: 42000
                site_id: 10
                name: My Blog
                current_path: /blog
                url: https://myworkspace.myclickfunnels.com/blog
                theme_id: 5
                resolved_template_page_id: 101
                resolved_post_template_page_id: 102
                resolved_category_template_page_id: 103
                style_id: null
                seo_image_id: null
                seo_title: My Blog - Latest Articles
                seo_description: Read our latest articles and updates.
                created_at: '2025-01-01T00:00:00.000Z'
                updated_at: '2025-01-01T00:00:00.000Z'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: API key missing or invalid
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: 'Not found: Record missing'
    patch:
      tags:
      - Blog
      summary: Update Blog
      description: 'Update a blog''s metadata. Permitted fields: `name`, `seo_title`, `seo_description`, `seo_image_id`, `theme_id`.


        See [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-existing-theme-and-page-apis).

        '
      operationId: updateBlog
      parameters:
      - $ref: '#/components/parameters/id'
      requestBody:
        description: Fields to update on the blog
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                blog:
                  type: object
                  $ref: '#/components/schemas/BlogParameters'
            example:
              blog:
                name: My Updated Blog
                seo_title: My Blog - Latest Articles
                seo_description: Read our latest articles and updates.
                seo_image_id: null
                theme_id: 5
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogAttributes'
              example:
                id: 1
                public_id: aBcDeF
                workspace_id: 42000
                site_id: 10
                name: My Updated Blog
                current_path: /blog
                url: https://myworkspace.myclickfunnels.com/blog
                theme_id: 5
                resolved_template_page_id: 101
                resolved_post_template_page_id: 102
                resolved_category_template_page_id: 103
                style_id: null
                seo_image_id: null
                seo_title: My Blog - Latest Articles
                seo_description: Read our latest articles and updates.
                created_at: '2025-01-01T00:00:00.000Z'
                updated_at: '2025-06-01T00:00:00.000Z'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: API key missing or invalid
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: 'Not found: Record missing'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: Name can't be blank
components:
  parameters:
    id:
      name: id
      in: path
      required: true
      schema:
        type: string
    sort_property:
      name: sort_property
      in: query
      description: 'Sort property of a list response. The default is id and thus the created_at order.

        If you sort by other properties, we additionally sort by id implicitly as a secondary sort property, so that you can rely on the sort order to be deterministic even if the main sort property ends up with the same values.

        '
      required: false
      schema:
        type: string
        enum:
        - id
        - updated_at
    sort_order:
      name: sort_order
      in: query
      description: Sort order of a list response. Use 'desc' to reverse the default 'asc' (ascending) sort order. Examples [in our guides](https://developers.myclickfunnels.com/docs/pagination).
      required: false
      schema:
        type: string
        enum:
        - asc
        - desc
    after:
      name: after
      in: query
      required: false
      schema:
        type: string
      description: ID of item after which the collection should be returned. More examples and info about pagination [in our guides](https://developers.myclickfunnels.com/docs/pagination).
  schemas:
    BlogAttributes:
      type: object
      title: Blogs
      description: Blogs
      properties:
        id:
          type: integer
          description: Blog ID
        public_id:
          type: string
          description: The public identifier of the blog
        workspace_id:
          type: integer
          description: Workspace ID that the blog belongs to
        site_id:
          type:
          - integer
          - 'null'
          description: Site ID that the blog belongs to
        name:
          type: string
          description: Name of the blog
        current_path:
          type: string
          description: The URL path for the blog
        url:
          type: string
          description: The full public URL of the blog
        theme_id:
          type:
          - integer
          - 'null'
          description: Theme ID for the blog
        resolved_template_page_id:
          type:
          - integer
          - 'null'
          description: Effective Page ID used to render the blog index
        resolved_post_template_page_id:
          type:
          - integer
          - 'null'
          description: Effective Page ID used to render individual blog posts
        resolved_category_template_page_id:
          type:
          - integer
          - 'null'
          description: Effective Page ID used to render blog category archives
        style_id:
          type:
          - integer
          - 'null'
          description: Style ID for the blog
        seo_image_id:
          type:
          - integer
          - 'null'
          description: Default sharing image ID for the blog
        seo_title:
          type:
          - string
          - 'null'
          description: Default Blog title for SEO
        seo_description:
          type:
          - string
          - 'null'
          description: Default Blog description for SEO
        created_at:
          type: string
          format: date-time
          description: Created at
        updated_at:
          type: string
          format: date-time
          description: Updated at
      example:
        id: 1
        public_id: aBcDeF
        workspace_id: 42000
        site_id: 10
        name: My Blog
        current_path: /blog
        url: https://myworkspace.myclickfunnels.com/blog
        theme_id: 5
        resolved_template_page_id: 101
        resolved_post_template_page_id: 102
        resolved_category_template_page_id: 103
        style_id: null
        seo_image_id: null
        seo_title: My Blog - Latest Articles
        seo_description: Read our latest articles and updates.
        created_at: '2025-01-01T00:00:00.000Z'
        updated_at: '2025-01-01T00:00:00.000Z'
      required:
      - created_at
      - current_path
      - id
      - name
      - public_id
      - resolved_category_template_page_id
      - resolved_post_template_page_id
      - resolved_template_page_id
      - seo_description
      - seo_image_id
      - seo_title
      - site_id
      - style_id
      - theme_id
      - updated_at
      - url
      - workspace_id
    BlogParameters:
      type: object
      title: Blogs
      description: Blogs
      properties:
        name:
          type: string
          description: Name of the blog
        seo_title:
          type:
          - string
          - 'null'
          description: Default Blog title for SEO
        seo_description:
          type:
          - string
          - 'null'
          description: Default Blog description for SEO
        seo_image_id:
          type:
          - integer
          - 'null'
          description: Default sharing image ID
        theme_id:
          type:
          - integer
          - 'null'
          description: Theme ID for the blog
      example:
        blog:
          name: My Updated Blog
          seo_title: My Blog - Latest Articles
          seo_description: Read our latest articles and updates.
          seo_image_id: null
          theme_id: 5
  headers:
    Link:
      description: A direct link to the next page for the cursor-based pagination. It includes the `after` and the Pagination-Next ID value.
      schema:
        type: string
    PaginationNext:
      description: ID of the last item in the current response after which more records exist. You can use it in an `after` query parameter for cursor-based pagination to get to the next page.
      schema:
        type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
externalDocs:
  description: More in-depth guides and further resources
  url: https://developers.myclickfunnels.com