Confluence Blog Post API

Create, retrieve, update, and delete blog posts

OpenAPI Specification

confluence-blog-post-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Confluence Cloud REST API v2 Attachment Blog Post API
  description: Next generation REST API for Confluence Cloud providing access to pages, spaces, comments, blog posts, attachments, labels, and other content management operations. This API offers improved performance, consistent pagination, and new features compared to the v1 API.
  version: 2.0.0
  contact:
    name: Atlassian
    url: https://developer.atlassian.com/cloud/confluence/
    email: ecosystem@atlassian.com
  license:
    name: Atlassian Developer Terms
    url: https://developer.atlassian.com/platform/marketplace/atlassian-developer-terms/
  termsOfService: https://www.atlassian.com/legal/cloud-terms-of-service
  x-logo:
    url: https://www.atlassian.com/dam/jcr:5d1374c2-276f-4bca-9ce4-b3f5e2dd5d6c/confluence-icon-gradient-blue.svg
servers:
- url: https://{domain}.atlassian.net/wiki/api/v2
  description: Confluence Cloud
  variables:
    domain:
      default: your-domain
      description: Your Atlassian Cloud site domain
security:
- basicAuth: []
- oAuth2: []
- bearerAuth: []
tags:
- name: Blog Post
  description: Create, retrieve, update, and delete blog posts
  externalDocs:
    url: https://developer.atlassian.com/cloud/confluence/rest/v2/api-group-blog-post/
paths:
  /blogposts:
    get:
      operationId: getBlogPosts
      summary: Get Blog Posts
      description: Returns all blog posts. Results can be filtered by space, status, and title.
      tags:
      - Blog Post
      parameters:
      - $ref: '#/components/parameters/SpaceIdFilter'
      - $ref: '#/components/parameters/StatusFilter'
      - $ref: '#/components/parameters/TitleFilter'
      - $ref: '#/components/parameters/BodyFormatParam'
      - $ref: '#/components/parameters/SortParam'
      - $ref: '#/components/parameters/CursorParam'
      - $ref: '#/components/parameters/LimitParam'
      responses:
        '200':
          description: Returned if the blog posts are returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogPostBulk'
              examples:
                Getblogposts200Example:
                  summary: Default getBlogPosts 200 response
                  x-microcks-default: true
                  value:
                    results:
                    - id: abc123
                      status: current
                      title: Example Title
                      spaceId: '500123'
                      authorId: '500123'
                      createdAt: '2026-01-15T10:30:00Z'
                    _links:
                      next: example_value
                      base: example_value
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createBlogPost
      summary: Create Blog Post
      description: Creates a blog post in the specified space.
      tags:
      - Blog Post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlogPostCreateRequest'
            examples:
              CreateblogpostRequestExample:
                summary: Default createBlogPost request
                x-microcks-default: true
                value:
                  spaceId: '500123'
                  status: current
                  title: Example Title
                  body:
                    representation: storage
                    value: example_value
      responses:
        '200':
          description: Returned if the blog post was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogPost'
              examples:
                Createblogpost200Example:
                  summary: Default createBlogPost 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    status: current
                    title: Example Title
                    spaceId: '500123'
                    authorId: '500123'
                    createdAt: '2026-01-15T10:30:00Z'
                    version:
                      createdAt: '2026-01-15T10:30:00Z'
                      message: example_value
                      number: 10
                      minorEdit: true
                      authorId: '500123'
                    body: {}
                    labels:
                      results:
                      - {}
                    _links:
                      webui: example_value
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /blogposts/{id}:
    get:
      operationId: getBlogPostById
      summary: Get Blog Post by Id
      description: Returns a specific blog post by id.
      tags:
      - Blog Post
      parameters:
      - $ref: '#/components/parameters/ContentIdPath'
      - $ref: '#/components/parameters/BodyFormatParam'
      - $ref: '#/components/parameters/VersionParam'
      responses:
        '200':
          description: Returned if the blog post is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogPost'
              examples:
                Getblogpostbyid200Example:
                  summary: Default getBlogPostById 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    status: current
                    title: Example Title
                    spaceId: '500123'
                    authorId: '500123'
                    createdAt: '2026-01-15T10:30:00Z'
                    version:
                      createdAt: '2026-01-15T10:30:00Z'
                      message: example_value
                      number: 10
                      minorEdit: true
                      authorId: '500123'
                    body: {}
                    labels:
                      results:
                      - {}
                    _links:
                      webui: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateBlogPost
      summary: Update Blog Post
      description: Updates a blog post by id.
      tags:
      - Blog Post
      parameters:
      - $ref: '#/components/parameters/ContentIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlogPostUpdateRequest'
            examples:
              UpdateblogpostRequestExample:
                summary: Default updateBlogPost request
                x-microcks-default: true
                value:
                  id: abc123
                  status: current
                  title: Example Title
                  body:
                    representation: storage
                    value: example_value
                  version:
                    number: 10
                    message: example_value
      responses:
        '200':
          description: Returned if the blog post was updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogPost'
              examples:
                Updateblogpost200Example:
                  summary: Default updateBlogPost 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    status: current
                    title: Example Title
                    spaceId: '500123'
                    authorId: '500123'
                    createdAt: '2026-01-15T10:30:00Z'
                    version:
                      createdAt: '2026-01-15T10:30:00Z'
                      message: example_value
                      number: 10
                      minorEdit: true
                      authorId: '500123'
                    body: {}
                    labels:
                      results:
                      - {}
                    _links:
                      webui: example_value
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteBlogPost
      summary: Delete Blog Post
      description: Deletes a blog post by id.
      tags:
      - Blog Post
      parameters:
      - $ref: '#/components/parameters/ContentIdPath'
      responses:
        '204':
          description: Returned if the blog post was deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  parameters:
    BodyFormatParam:
      name: body-format
      in: query
      description: The representation format for the content body.
      schema:
        type: string
        enum:
        - storage
        - atlas_doc_format
        - view
        - export_view
        - anonymous_export_view
        - editor
    SortParam:
      name: sort
      in: query
      description: Sort order for results. Prefix with - for descending order. Supported fields include id, title, created-date, and modified-date.
      schema:
        type: string
        enum:
        - id
        - -id
        - title
        - -title
        - created-date
        - -created-date
        - modified-date
        - -modified-date
    CursorParam:
      name: cursor
      in: query
      description: Used for pagination. The cursor value is returned in the response _links.next when there are more results.
      schema:
        type: string
    StatusFilter:
      name: status
      in: query
      description: Filter by content status.
      schema:
        type: string
        enum:
        - current
        - archived
        - draft
        - trashed
    ContentIdPath:
      name: id
      in: path
      required: true
      description: The ID of the content.
      schema:
        type: integer
        format: int64
    SpaceIdFilter:
      name: space-id
      in: query
      description: Filter by space ID. Multiple IDs can be specified.
      schema:
        type: array
        items:
          type: integer
          format: int64
    VersionParam:
      name: version
      in: query
      description: The version number of the content to retrieve.
      schema:
        type: integer
        format: int32
    TitleFilter:
      name: title
      in: query
      description: Filter by content title. Supports exact match.
      schema:
        type: string
    LimitParam:
      name: limit
      in: query
      description: Maximum number of results to return.
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 250
        default: 25
  schemas:
    ContentLinks:
      type: object
      properties:
        webui:
          type: string
          description: Web UI link for the content.
          example: example_value
    Version:
      type: object
      description: Version information for content.
      properties:
        createdAt:
          type: string
          format: date-time
          description: The ISO 8601 timestamp of this version.
          example: '2026-01-15T10:30:00Z'
        message:
          type: string
          description: The message associated with this version.
          example: example_value
        number:
          type: integer
          description: The version number.
          example: 10
        minorEdit:
          type: boolean
          description: Whether this was a minor edit.
          example: true
        authorId:
          type: string
          description: The Atlassian account ID of the version author.
          example: '500123'
    PaginationLinks:
      type: object
      description: Pagination links for cursor-based pagination.
      properties:
        next:
          type: string
          description: URL for the next page of results. Contains the cursor parameter.
          example: example_value
        base:
          type: string
          description: The base URL of the Confluence instance.
          example: example_value
    Error:
      type: object
      description: Error response from the Confluence API.
      properties:
        statusCode:
          type: integer
          description: The HTTP status code.
          example: 10
        data:
          type: object
          properties:
            authorized:
              type: boolean
            valid:
              type: boolean
            errors:
              type: array
              items:
                type: object
                properties:
                  message:
                    type: object
                    properties:
                      key:
                        type: string
                      args:
                        type: array
                        items:
                          type: string
                      translation:
                        type: string
            successful:
              type: boolean
          description: Details about the error.
          example: example_value
        message:
          type: string
          description: A human-readable error message.
          example: example_value
    BlogPostUpdateRequest:
      type: object
      required:
      - id
      - status
      - title
      - body
      - version
      properties:
        id:
          type: string
          description: The ID of the blog post being updated.
          example: abc123
        status:
          type: string
          description: The status of the blog post.
          enum:
          - current
          - draft
          example: current
        title:
          type: string
          description: The new title of the blog post.
          example: Example Title
        body:
          $ref: '#/components/schemas/BodyWrite'
        version:
          $ref: '#/components/schemas/VersionWrite'
    BlogPost:
      type: object
      description: Represents a Confluence blog post.
      properties:
        id:
          type: string
          description: The unique identifier of the blog post.
          example: abc123
        status:
          type: string
          description: The current status of the blog post.
          enum:
          - current
          - draft
          - trashed
          example: current
        title:
          type: string
          description: The title of the blog post.
          example: Example Title
        spaceId:
          type: string
          description: The ID of the space this blog post belongs to.
          example: '500123'
        authorId:
          type: string
          description: The Atlassian account ID of the blog post author.
          example: '500123'
        createdAt:
          type: string
          format: date-time
          description: The ISO 8601 timestamp when the blog post was created.
          example: '2026-01-15T10:30:00Z'
        version:
          $ref: '#/components/schemas/Version'
        body:
          $ref: '#/components/schemas/Body'
        labels:
          $ref: '#/components/schemas/LabelArray'
        _links:
          $ref: '#/components/schemas/ContentLinks'
    BlogPostBulk:
      type: object
      description: A paginated list of blog posts.
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/BlogPost'
          example: []
        _links:
          $ref: '#/components/schemas/PaginationLinks'
    Body:
      type: object
      description: The body content in various representations.
      properties:
        storage:
          $ref: '#/components/schemas/BodyRepresentation'
        atlas_doc_format:
          $ref: '#/components/schemas/BodyRepresentation'
        view:
          $ref: '#/components/schemas/BodyRepresentation'
    BlogPostCreateRequest:
      type: object
      required:
      - spaceId
      - status
      - title
      - body
      properties:
        spaceId:
          type: string
          description: The ID of the space to create the blog post in.
          example: '500123'
        status:
          type: string
          description: The status of the blog post.
          enum:
          - current
          - draft
          example: current
        title:
          type: string
          description: The title of the blog post.
          example: Example Title
        body:
          $ref: '#/components/schemas/BodyWrite'
    Label:
      type: object
      description: Represents a label applied to Confluence content.
      properties:
        id:
          type: string
          description: The unique identifier of the label.
          example: abc123
        name:
          type: string
          description: The name of the label.
          example: Example Title
        prefix:
          type: string
          description: The prefix of the label (global, my, team).
          example: example_value
    VersionWrite:
      type: object
      required:
      - number
      properties:
        number:
          type: integer
          description: The new version number. Must be incremented by 1.
          example: 10
        message:
          type: string
          description: An optional message associated with this version.
          example: example_value
    BodyWrite:
      type: object
      required:
      - representation
      - value
      properties:
        representation:
          type: string
          description: The representation format of the body content.
          enum:
          - storage
          - atlas_doc_format
          - wiki
          - editor
          example: storage
        value:
          type: string
          description: The body content in the specified representation.
          example: example_value
    LabelArray:
      type: object
      description: A list of labels.
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Label'
          example: []
        _links:
          $ref: '#/components/schemas/PaginationLinks'
    BodyRepresentation:
      type: object
      properties:
        representation:
          type: string
          description: The name of the representation format.
          example: example_value
        value:
          type: string
          description: The body content in this representation.
          example: example_value
  responses:
    Unauthorized:
      description: Returned if the authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Returned if the requested resource is not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Returned if the request is malformed or contains invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Basic authentication using email and API token. Provide your Atlassian account email as the username and an API token as the password.
    oAuth2:
      type: oauth2
      description: OAuth 2.0 (3LO) for Confluence Cloud apps.
      flows:
        authorizationCode:
          authorizationUrl: https://auth.atlassian.com/authorize
          tokenUrl: https://auth.atlassian.com/oauth/token
          scopes:
            read:confluence-content.all: Read Confluence content
            read:confluence-content.summary: Read Confluence content summaries
            write:confluence-content: Create and update Confluence content
            read:confluence-space.summary: Read Confluence space summaries
            write:confluence-space: Create and update Confluence spaces
            read:confluence-user: Read Confluence user information
            read:confluence-groups: Read Confluence groups
            write:confluence-file: Upload attachments to Confluence
            delete:confluence-content: Delete Confluence content
    bearerAuth:
      type: http
      scheme: bearer
      description: Personal Access Token or OAuth 2.0 Bearer token.
externalDocs:
  description: Confluence Cloud REST API v2 Documentation
  url: https://developer.atlassian.com/cloud/confluence/rest/v2/intro/