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

# List your projects and published changelog entries

> Returns all projects the caller can access, each with a slice of published changelog entries (newest first). Use this to sync or render changelogs in your own UI. Authenticate with an API key (Bearer or X-API-KEY). Optional `X-Clerk-User-Id` lists personal (user-owned) projects only — API keys are recommended for integrations.



## OpenAPI

````yaml /openapi.json get /v1/projects
openapi: 3.1.0
info:
  title: SuprLogs API
  version: 0.1.0
  description: >-
    SuprLogs lets you use our changelog database as the source of truth while
    building your own UI. This reference documents the **supported integration
    surface**: a health check, a projects endpoint (authenticated, returns your
    projects with published entries), and public changelog routes for listing
    and fetching individual posts by project slug. Create API keys in the
    dashboard (Settings → API Keys) to call authenticated routes.
  contact:
    name: SuprLogs Support
    url: https://suprlogs.com
    email: support@suprlogs.com
servers:
  - url: https://api.suprlogs.com
    description: Production
  - url: http://localhost:4704
    description: Local
security: []
paths:
  /v1/projects:
    get:
      tags:
        - Projects
      summary: List your projects and published changelog entries
      description: >-
        Returns all projects the caller can access, each with a slice of
        published changelog entries (newest first). Use this to sync or render
        changelogs in your own UI. Authenticate with an API key (Bearer or
        X-API-KEY). Optional `X-Clerk-User-Id` lists personal (user-owned)
        projects only — API keys are recommended for integrations.
      operationId: listProjectsWithChangelog
      parameters:
        - in: query
          name: entries_limit
          required: false
          description: Max published entries per project (most recent first).
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 50
      responses:
        '200':
          description: Projects with nested published changelog entries.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProjectsResponse'
        '401':
          description: Missing or invalid credentials.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    ListProjectsResponse:
      type: object
      required:
        - projects
        - meta
      properties:
        projects:
          type: array
          items:
            $ref: '#/components/schemas/ProjectSummary'
        meta:
          type: object
          properties:
            count:
              type: integer
              description: Number of projects returned.
            entries_limit:
              type: integer
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          example: Invalid request
        details:
          type: array
          items:
            type: object
      required:
        - error
    ProjectSummary:
      type: object
      required:
        - id
        - name
        - slug
        - owner_type
        - changelog_entries
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        owner_type:
          type: string
          enum:
            - user
            - org
        owner_id:
          type: string
          format: uuid
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        changelog_entries:
          type: array
          description: Published changelog entries (newest first).
          items:
            $ref: '#/components/schemas/ChangelogEntry'
    ChangelogEntry:
      type: object
      required:
        - id
        - entry_type
        - status
        - project_id
        - created_at
        - updated_at
      properties:
        id:
          type: string
          format: uuid
        project_id:
          type: string
          format: uuid
        entry_type:
          type: string
          enum:
            - commit
            - daily
            - weekly
            - monthly
        status:
          type: string
          example: published
        title:
          type: string
          nullable: true
        content:
          type: string
          nullable: true
          description: Markdown body.
        generated_json:
          type: object
          nullable: true
          description: >-
            Structured changelog with headline items, sections, and component
            tags.
          properties:
            title:
              type: string
            headline_items:
              type: array
              items:
                type: object
                properties:
                  section_type_key:
                    type: string
                  title:
                    type: string
                  body:
                    type: string
                    nullable: true
            sections:
              type: array
              items:
                type: object
                properties:
                  section_type_key:
                    type: string
                  label:
                    type: string
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        text:
                          type: string
                        component:
                          type: string
                          nullable: true
            component_tags:
              type: array
              items:
                type: string
            team_attribution:
              type: string
              nullable: true
        version_label:
          type: string
          nullable: true
        team_attribution:
          type: string
          nullable: true
        component_tags:
          type: array
          items:
            type: string
        commit_id:
          type: string
          format: uuid
          nullable: true
        commit_shas:
          type: array
          items:
            type: string
        period_start:
          type: string
          format: date-time
          nullable: true
        period_end:
          type: string
          format: date-time
          nullable: true
        published_at:
          type: string
          format: date-time
          nullable: true
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: 'Send API key as Authorization: Bearer <key>.'

````