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

> ## Agent Instructions
> Use Stable documentation by default. Honor an explicit Beta request or a URL under /docs/beta/. If the requested version conflicts with the installed CLI package or API origin, clarify the target before writing integration code.
> Pages under /docs/beta/ document Beta; other product pages document Stable. Keep the CLI package, commands, API origin, and credentials within the selected version. State the documentation version in your answer.
> For MCP search, always pass version: Stable or version: Beta. Unfiltered search mixes both versions. For filesystem reads, keep Beta queries under /beta/ and exclude /beta/ from Stable queries; discover paths before reading them.
> The public docs base is https://photon.codes/docs. Convert MCP page paths to public URLs under that base, preserving /beta/ when present. Read https://photon.codes/docs/skill.md for version selection and https://photon.codes/docs/llms.txt for the version indexes.

# List projects

> Returns every project the authenticated user owns or has been added to as a member.



## OpenAPI

````yaml /api-reference/dashboard-openapi.json get /api/projects/
openapi: 3.0.3
info:
  title: Photon Dashboard API
  version: 0.1.0
  description: >-
    Authenticated REST API for the Photon Dashboard. Used by the web app and the
    `photon` CLI. Only the public-surface endpoints are listed here today.
servers:
  - url: https://app.photon.codes
security: []
tags:
  - name: Projects
    description: Project CRUD and Spectrum credentials.
  - name: Device login
    description: RFC 8628 device authorization flow used by the CLI.
paths:
  /api/projects/:
    get:
      tags:
        - Projects
      summary: List projects
      description: >-
        Returns every project the authenticated user owns or has been added to
        as a member.
      operationId: listProjects
      responses:
        '200':
          description: Projects accessible to the caller.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
        '401':
          description: Missing or invalid access token.
      security:
        - bearerAuth: []
components:
  schemas:
    Project:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        location:
          type: string
          example: United States
        status:
          type: string
          example: running
        spectrum:
          type: boolean
        spectrumProjectId:
          type: string
          nullable: true
          description: >-
            Spectrum project id. Use as the `projectId` half of HTTP Basic auth
            against the Spectrum API.
        projectSecret:
          type: string
          nullable: true
          description: >-
            Spectrum project secret. Use as the `projectSecret` half of HTTP
            Basic auth against the Spectrum API. Returned only to project owners
            and members.
        template:
          type: boolean
        observability:
          type: boolean
        userId:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
        - id
        - name
        - location
        - status
        - spectrum
        - template
        - observability
        - userId
        - createdAt
        - updatedAt
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Access token obtained via the device login flow, or an OAuth 2.1 access
        token — see the OAuth guide.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.