Sitefinity CMS Blog Posts API

CRUD operations for blog post content items

OpenAPI Specification

sitefinity-cms-blog-posts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Sitefinity CMS Content Blog Posts API
  description: The Sitefinity CMS Content API provides RESTful access to all content types defined in a Sitefinity instance. It exposes endpoints for creating, reading, updating, deleting, publishing, and unpublishing content items across all dynamic content types (news items, blog posts, events, etc.) and custom types defined through the CMS content model. The API follows OData conventions for filtering, sorting, and pagination. Authentication is handled via forms-based authentication or token-based auth depending on the Sitefinity configuration.
  version: v1
  contact:
    name: Progress Sitefinity Support
    url: https://www.progress.com/support
  termsOfService: https://www.progress.com/legal/privacy-policy
servers:
- url: https://{site}.sitefinity.com/api/default
  description: Sitefinity Instance Server
  variables:
    site:
      description: The Sitefinity instance hostname
      default: your-site
security:
- cookieAuth: []
tags:
- name: Blog Posts
  description: CRUD operations for blog post content items
paths:
  /blogposts:
    get:
      operationId: listBlogPosts
      summary: List Blog Posts
      description: Retrieves a paginated list of blog post content items. Supports OData query options for filtering by blog, author, date range, and status.
      tags:
      - Blog Posts
      parameters:
      - $ref: '#/components/parameters/top'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderby'
      responses:
        '200':
          description: A list of blog posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentItemListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createBlogPost
      summary: Create Blog Post
      description: Creates a new blog post content item in draft state.
      tags:
      - Blog Posts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateContentItemRequest'
      responses:
        '201':
          description: Blog post created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentItem'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    CreateContentItemRequest:
      type: object
      description: Request body for creating or updating a content item
      required:
      - Title
      properties:
        Title:
          type: string
          description: Title of the content item
        Content:
          type: string
          description: Main content body in HTML
        Summary:
          type: string
          description: Short summary or excerpt
        UrlName:
          type: string
          description: URL-friendly name for routing
        PublicationDate:
          type: string
          format: date-time
          description: Scheduled publication date
    ContentItem:
      type: object
      description: A Sitefinity CMS content item
      properties:
        Id:
          type: string
          format: uuid
          description: Unique identifier of the content item
        Title:
          type: string
          description: Title of the content item
        Content:
          type: string
          description: Main content body (HTML)
        Summary:
          type: string
          description: Short summary or lead paragraph
        Status:
          type: string
          description: Publication status of the item
          enum:
          - Draft
          - Published
          - Unpublished
        PublicationDate:
          type: string
          format: date-time
          description: When the item was or should be published
        LastModified:
          type: string
          format: date-time
          description: When the item was last modified
        Author:
          type: string
          description: Author of the content item
        UrlName:
          type: string
          description: URL-friendly name used in page routing
        Tags:
          type: array
          items:
            type: string
          description: Tags associated with the content item
        Category:
          type: array
          items:
            type: string
          description: Categories assigned to the content item
    ErrorResponse:
      type: object
      description: Error response
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code
            message:
              type: string
              description: Human-readable error message
    ContentItemListResponse:
      type: object
      description: A paginated list of content items
      properties:
        value:
          type: array
          items:
            $ref: '#/components/schemas/ContentItem'
          description: Array of content items
        '@odata.count':
          type: integer
          description: Total count of items matching the query
  responses:
    Unauthorized:
      description: Authentication is required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: The request body or parameters are invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    skip:
      name: $skip
      in: query
      description: Number of items to skip for pagination (OData $skip)
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
    filter:
      name: $filter
      in: query
      description: OData filter expression (e.g., Status eq 'Published')
      required: false
      schema:
        type: string
    orderby:
      name: $orderby
      in: query
      description: OData orderby clause (e.g., PublicationDate desc)
      required: false
      schema:
        type: string
    top:
      name: $top
      in: query
      description: Maximum number of items to return (OData $top)
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 50
  securitySchemes:
    cookieAuth:
      type: apiKey
      in: cookie
      name: .ASPXAUTH
      description: Sitefinity CMS uses ASP.NET forms authentication. Authenticate via the /Sitefinity/Authenticate/SWT endpoint to obtain a token, or use the /api/default/Authenticate endpoint for REST token-based auth.
externalDocs:
  description: Sitefinity CMS REST API Documentation
  url: https://www.progress.com/documentation/sitefinity-cms/for-developers-rest-api