> ## Documentation Index
> Fetch the complete documentation index at: https://developers.kit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List posts



## OpenAPI

````yaml /api-reference/v4.json get /v4/posts
openapi: 3.0.3
info:
  title: Kit API
  version: '4.0'
servers:
  - url: https://api.kit.com
security: []
paths:
  /v4/posts:
    get:
      tags:
        - Posts
      summary: List posts
      parameters:
        - name: after
          description: To fetch next page of results, use `?after=<end_cursor>`
          in: query
          required: false
          schema:
            nullable: true
        - name: before
          description: To fetch previous page of results, use `?before=<start_cursor>`
          in: query
          required: false
          schema:
            nullable: true
        - name: include_content
          in: query
          required: false
          schema:
            type: boolean
          example: false
          description: >-
            To include the `content` field on each post in the response, use
            `true`. Omitted by default because it significantly increases
            response size and latency for large collections.
        - name: include_total_count
          description: >-
            Set to `true` to include the `total_count` in the response. This
            option can cause slow responses; if paging through results, request
            it only on the first page and reuse the value for subsequent pages.
          in: query
          required: false
          schema:
            type: boolean
          example: false
        - name: per_page
          description: Number of results per page. Default 500, maximum 1000.
          in: query
          required: false
          schema:
            nullable: true
      responses:
        '200':
          description: Returns a paginated list of all posts for your account
          content:
            application/json:
              schema:
                type: object
                properties:
                  posts:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        publication_id:
                          type: integer
                          description: >-
                            Identifier of the underlying publication. Posts that
                            were also sent as broadcasts share the same
                            `publication_id` — use it to match a post to its
                            broadcast via `GET /v4/broadcasts`.
                        created_at:
                          type: string
                        title:
                          type: string
                        slug:
                          type: string
                          nullable: true
                        description:
                          nullable: true
                        meta_description:
                          nullable: true
                        status:
                          type: string
                        published_at:
                          type: string
                          nullable: true
                        sent_at:
                          type: string
                          nullable: true
                        thumbnail_alt:
                          nullable: true
                        thumbnail_url:
                          nullable: true
                        is_paid:
                          type: boolean
                        public_url:
                          type: string
                          nullable: true
                      required:
                        - id
                        - publication_id
                        - created_at
                        - title
                        - slug
                        - description
                        - meta_description
                        - status
                        - published_at
                        - sent_at
                        - thumbnail_alt
                        - thumbnail_url
                        - is_paid
                        - public_url
                  pagination:
                    type: object
                    properties:
                      has_previous_page:
                        type: boolean
                      has_next_page:
                        type: boolean
                      start_cursor:
                        type: string
                      end_cursor:
                        type: string
                      per_page:
                        type: integer
                    required:
                      - has_previous_page
                      - has_next_page
                      - start_cursor
                      - end_cursor
                      - per_page
                required:
                  - posts
                  - pagination
              example:
                posts:
                  - id: 3
                    publication_id: 106
                    created_at: '2026-05-08T14:39:40Z'
                    title: Draft Post
                    slug: null
                    description: null
                    meta_description: null
                    status: draft
                    published_at: null
                    sent_at: null
                    thumbnail_alt: null
                    thumbnail_url: null
                    is_paid: false
                    public_url: null
                  - id: 2
                    publication_id: 105
                    created_at: '2026-05-08T14:39:40Z'
                    title: Email and Web Post
                    slug: email-and-web-post
                    description: null
                    meta_description: null
                    status: published
                    published_at: '2026-05-06T14:39:40Z'
                    sent_at: '2026-05-08T14:39:40Z'
                    thumbnail_alt: null
                    thumbnail_url: null
                    is_paid: false
                    public_url: https://asdf.kit.com/posts/email-and-web-post
                  - id: 1
                    publication_id: 104
                    created_at: '2026-05-08T14:39:40Z'
                    title: Web Only Post
                    slug: web-only-post
                    description: null
                    meta_description: null
                    status: published
                    published_at: '2026-05-07T14:39:40Z'
                    sent_at: null
                    thumbnail_alt: null
                    thumbnail_url: null
                    is_paid: false
                    public_url: https://asdf.kit.com/posts/web-only-post
                pagination:
                  has_previous_page: false
                  has_next_page: false
                  start_cursor: WzNd
                  end_cursor: WzFd
                  per_page: 500
      security:
        - API Key: []
        - OAuth2: []
components:
  securitySchemes:
    API Key:
      description: Authenticate API requests via an API Key
      type: apiKey
      in: header
      name: X-Kit-Api-Key
    OAuth2:
      description: Authenticate API requests via an OAuth token
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://api.kit.com/v4/oauth/authorize
          tokenUrl: https://api.kit.com/v4/oauth/token
          refreshUrl: https://api.kit.com/v4/oauth/token
          scopes:
            read: Read access to Kit API v4
            write: Write access to Kit API v4

````