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

# List all projects



## OpenAPI

````yaml https://api.specular.dev/openapi.json get /projects/
openapi: 3.0.0
info:
  title: Specular API
  description: Backend-as-a-Service API for managing projects and branches
  version: 1.0.0
servers:
  - url: https://api.specular.dev
    description: Production server
  - url: http://localhost:3000
    description: Development server
security:
  - bearerAuth: []
paths:
  /projects/:
    get:
      tags:
        - Projects
      summary: List all projects
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
          in: query
          name: limit
          required: false
          description: Maximum number of projects to return (1-100)
        - schema:
            type: integer
            minimum: 0
            default: 0
          in: query
          name: offset
          required: false
          description: Number of projects to skip
      responses:
        '200':
          description: List of projects
          content:
            application/json:
              schema:
                description: List of projects
                type: object
                properties:
                  projects:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        state:
                          type: string
                          enum:
                            - creating
                            - active
                            - deleting
                            - deleted
                            - failed
                            - archived
                          description: >-
                            Project state: creating (initial creation), active
                            (ready to use), deleting (being deleted), deleted
                            (soft deleted), failed (creation failed), archived
                            (due to inactivity)
                        productionUrl:
                          type: string
                          nullable: true
                          description: Production API URL (available after first merge)
                        openApiSpec:
                          type: string
                          nullable: true
                          description: >-
                            OpenAPI spec in YAML format (available after first
                            merge)
                        createdAt:
                          type: string
                          format: date-time
                        updatedAt:
                          type: string
                          format: date-time
                        git:
                          type: object
                          nullable: true
                          properties:
                            remoteUrl:
                              type: string
                            username:
                              type: string
                              nullable: true
                            mainBranch:
                              type: string
                            path:
                              type: string
                              nullable: true
                  total:
                    type: integer
                    description: Total number of projects
                  limit:
                    type: integer
                    description: Maximum number of projects returned
                  offset:
                    type: integer
                    description: Number of projects skipped
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                description: Authentication required
                type: object
                properties:
                  error:
                    type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: 'Bearer authentication with API key (format: Bearer sk_xxx)'

````