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

# Get a public project board

> Read a public board in bounded task pages. Visibility is checked before loading tasks. Continue through pagination.totalPages for all tasks and through relatedPage/pagination.relatedTotalPages for their complete related records.



## OpenAPI

````yaml /openapi.json get /public-project/{id}
openapi: 3.1.0
info:
  title: Kaneo API
  version: 1.0.0
  description: Kaneo Project Management API - Manage projects, tasks, labels, and more
servers:
  - url: https://cloud.kaneo.app/api
    description: Kaneo API Server
security:
  - bearerAuth: []
paths:
  /public-project/{id}:
    get:
      tags:
        - Projects
      summary: Get a public project board
      description: >-
        Read a public board in bounded task pages. Visibility is checked before
        loading tasks. Continue through pagination.totalPages for all tasks and
        through relatedPage/pagination.relatedTotalPages for their complete
        related records.
      operationId: getPublicProject
      parameters:
        - schema:
            type: string
          required: true
          name: id
          in: path
        - schema:
            type: string
          required: false
          name: status
          in: query
        - schema:
            type: string
          required: false
          name: priority
          in: query
        - schema:
            type: string
          required: false
          name: assigneeId
          in: query
        - schema:
            type: string
            pattern: ^\d+$
          required: false
          name: page
          in: query
        - schema:
            type: string
            pattern: ^\d+$
          required: false
          name: relatedPage
          in: query
        - schema:
            type: string
            pattern: ^\d+$
          required: false
          name: limit
          in: query
        - schema:
            type: string
            enum:
              - createdAt
              - priority
              - dueDate
              - position
              - title
              - number
          required: false
          name: sortBy
          in: query
        - schema:
            type: string
            enum:
              - asc
              - desc
          required: false
          name: sortOrder
          in: query
        - schema:
            type: string
          required: false
          name: dueBefore
          in: query
        - schema:
            type: string
          required: false
          name: dueAfter
          in: query
      responses:
        '200':
          description: A public board page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBoardPage'
        '400':
          description: Invalid pagination or filters
          content:
            text/plain:
              schema:
                type: string
        '403':
          description: Project is not public
          content:
            text/plain:
              schema:
                type: string
        '404':
          description: Project not found
          content:
            text/plain:
              schema:
                type: string
        '503':
          description: Task list request timed out
          content:
            text/plain:
              schema:
                type: string
      security: []
components:
  schemas:
    PublicBoardPage:
      allOf:
        - $ref: '#/components/schemas/Board'
        - type: object
          properties:
            pagination:
              $ref: '#/components/schemas/BoardPagination'
          required:
            - pagination
    Board:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        slug:
          type: string
        icon:
          type:
            - string
            - 'null'
        description:
          type:
            - string
            - 'null'
        descriptionDeferred:
          type: boolean
          description: >-
            True when a project description above 64 KiB is omitted; use project
            detail or public project description pages for full text.
        isPublic:
          type:
            - boolean
            - 'null'
        workspaceId:
          type: string
        columns:
          type: array
          items:
            $ref: '#/components/schemas/BoardColumn'
        archivedTasks:
          type: array
          items:
            $ref: '#/components/schemas/BoardTask'
        plannedTasks:
          type: array
          items:
            $ref: '#/components/schemas/BoardTask'
      required:
        - id
        - name
        - slug
        - icon
        - description
        - isPublic
        - workspaceId
        - columns
        - archivedTasks
        - plannedTasks
    BoardPagination:
      type: object
      properties:
        total:
          type: number
        page:
          type: number
        pageSize:
          type: number
        totalPages:
          type: number
        relatedPage:
          type: number
        relatedPageSize:
          type: number
        relatedTotalPages:
          type: number
      required:
        - total
        - page
        - pageSize
        - totalPages
        - relatedPage
        - relatedPageSize
        - relatedTotalPages
      description: >-
        Always paginated: 50 tasks by default, at most 100 per page. Continue
        through totalPages to retrieve all tasks. For each task page, follow
        relatedPage through relatedTotalPages to retrieve all labels, external
        links and columns (100 related rows per kind per request, plus up to 100
        columns needed to represent the tasks).
    BoardColumn:
      type: object
      properties:
        id:
          type: string
          description: The column slug, same as `slug`.
        slug:
          type: string
        name:
          type: string
        icon:
          type:
            - string
            - 'null'
        isFinal:
          type: boolean
        position:
          type: number
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/BoardTask'
      required:
        - id
        - slug
        - name
        - icon
        - isFinal
        - tasks
    BoardTask:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        number:
          type:
            - number
            - 'null'
        description:
          type:
            - string
            - 'null'
        descriptionDeferred:
          type: boolean
          description: >-
            True when the list omits a large description; load the task detail
            or description pages to read it. Do not replace stored text with
            this null summary.
        status:
          type: string
        priority:
          type: string
          description: 'One of: no-priority, low, medium, high, urgent.'
        startDate:
          type:
            - string
            - 'null'
          format: date-time
        dueDate:
          type:
            - string
            - 'null'
          format: date-time
        position:
          type:
            - number
            - 'null'
        createdAt:
          type: string
          format: date-time
        userId:
          type:
            - string
            - 'null'
        assigneeName:
          type:
            - string
            - 'null'
        assigneeId:
          type:
            - string
            - 'null'
        assigneeImage:
          type:
            - string
            - 'null'
        projectId:
          type: string
        labels:
          type: array
          items:
            $ref: '#/components/schemas/TaskLabel'
        externalLinks:
          type: array
          items:
            $ref: '#/components/schemas/TaskExternalLink'
      required:
        - id
        - title
        - number
        - description
        - status
        - priority
        - startDate
        - dueDate
        - position
        - createdAt
        - userId
        - assigneeName
        - assigneeId
        - assigneeImage
        - projectId
        - labels
        - externalLinks
    TaskLabel:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        color:
          type: string
      required:
        - id
        - name
        - color
    TaskExternalLink:
      type: object
      properties:
        id:
          type: string
        taskId:
          type: string
        integrationId:
          type: string
        resourceType:
          type: string
        externalId:
          type: string
        url:
          type: string
        title:
          type:
            - string
            - 'null'
        metadata:
          type:
            - object
            - 'null'
          additionalProperties: {}
          description: >-
            Provider-specific payload, already parsed from the stored JSON
            string.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
        - id
        - taskId
        - integrationId
        - resourceType
        - externalId
        - url
        - title
        - metadata
        - createdAt
        - updatedAt
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or session token (Bearer)

````