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/