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

# List projects

> Returns a cursor-paginated list of public project profiles. Pass the `meta.nextCursor` from a response as the `cursor` of the next request to page forward.



## OpenAPI

````yaml https://thefirm.biz/api/public/v1/openapi.json get /api/public/v1/projects
openapi: 3.1.0
info:
  title: AutoBoy Public API
  version: 0.1.0
  description: >-
    REST API for AutoBoy — browse projects, view detailed stats about your own
    launch, create buy orders and manage your AutoBoy smart wallet.


    ## Authentication


    Most endpoints require an API key, sent as a bearer token:


    ```

    Authorization: Bearer autoboy_…

    ```


    ## Quick start


    1. **Request a key** — `POST /api/public/v1/api-key-requests`

    2. **Register a project** — `POST /api/public/v1/projects`.


    New to AutoBoy? Read the product docs https://docs.thefirm.biz.
servers:
  - url: https://thefirm.biz
security: []
tags:
  - name: API Keys
    description: Request, create, and inspect API keys.
  - name: Projects
    description: Browse projects and their buyers.
  - name: Buy Orders
    description: Read and manage the API key owner's pre-launch buy orders.
  - name: AutoBoy Wallet
    description: Balances of, and withdrawals from, the AutoBoy smart wallet.
  - name: Feedback
    description: Send feedback to The Firm.
paths:
  /api/public/v1/projects:
    get:
      tags:
        - Projects
      summary: List projects
      description: >-
        Returns a cursor-paginated list of public project profiles. Pass the
        `meta.nextCursor` from a response as the `cursor` of the next request to
        page forward.
      operationId: listProjects
      parameters:
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque cursor marking where the previous page ended. Omit it to
              fetch the first page; pass the `meta.nextCursor` from a response
              verbatim to fetch the next. A null `meta.nextCursor` means there
              are no more pages. Treat the value as opaque — its format varies
              per endpoint.
          required: false
          description: >-
            Opaque cursor marking where the previous page ended. Omit it to
            fetch the first page; pass the `meta.nextCursor` from a response
            verbatim to fetch the next. A null `meta.nextCursor` means there are
            no more pages. Treat the value as opaque — its format varies per
            endpoint.
          name: cursor
          in: query
        - schema:
            type:
              - integer
              - 'null'
            default: 20
            description: >-
              Maximum number of items per page. Defaults to 20; values are
              clamped to 1–100.
          required: false
          description: >-
            Maximum number of items per page. Defaults to 20; values are clamped
            to 1–100.
          name: limit
          in: query
      responses:
        '200':
          description: A page of projects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectsResponse'
              example:
                data:
                  - identity:
                      slug: yurts-by-nurt
                      displayName: Yurts By Nurt
                      fid: 3324275
                      xHandle: null
                      farcasterUsername: nurt
                    content:
                      bannerImageUrl: >-
                        https://thefirm.biz/profiles/yurts-by-nurt/yurts-logo.png
                      pfpUrl: https://thefirm.biz/profiles/yurts-by-nurt/yurts-pfp.png
                      bio:
                        - >-
                          Yurts by Nurt aims to be a yurt-centric construction
                          organization leveraging synergy and quantum resistance
                          to deliver sustainable employee housing.
                      websiteUrl: https://thefirm.biz/autoboy
                      teamMembers:
                        - name: Nurt Baglard
                          pfpUrl: >-
                            https://thefirm.biz/profiles/headshots/headshot-nurt.png
                          followerCount: 1
                          farcasterUrl: https://farcaster.xyz/nurt
                          roles:
                            - projectName: Yurts By Nurt
                              title: Spokesperson
                    status:
                      isProfileRegistered: true
                      isLaunchVerified: true
                      hasSniperProtection: true
                meta:
                  total: 12
                  limit: 20
                  nextCursor: yurts-by-nurt
        '400':
          description: Invalid pagination parameters or an unknown cursor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalidPagination:
                  value:
                    error: Bad request
                    message: Invalid pagination parameters
                unknownCursor:
                  value:
                    error: Bad request
                    message: cursor does not match a known project
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                missingAuthorizationHeader:
                  value:
                    error: Unauthorized
                    message: Missing or invalid Authorization header
                invalidApiKey:
                  value:
                    error: Unauthorized
                    message: Invalid API key
      security:
        - apiKeyAuth: []
components:
  schemas:
    ProjectsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              identity:
                type: object
                properties:
                  slug:
                    type: string
                    description: URL-safe identifier, used as the `{slug}` path parameter.
                    example: yurts-by-nurt
                  displayName:
                    type: string
                    description: Human-readable project name.
                    example: Yurts By Nurt
                  fid:
                    type: number
                    description: Farcaster ID of the project account, if any.
                    example: 3324275
                  xHandle:
                    type:
                      - string
                      - 'null'
                    description: X (Twitter) handle without the leading @, or null.
                  farcasterUsername:
                    type: string
                    description: Farcaster username, if any.
                    example: nurt
                required:
                  - slug
                  - displayName
                  - xHandle
                description: Stable identifiers and handles for the project.
              content:
                type: object
                properties:
                  bannerImageUrl:
                    type: string
                    description: Absolute URL of the profile banner image.
                  pfpUrl:
                    type: string
                    description: Absolute URL of the profile picture.
                  bio:
                    type: array
                    items:
                      type: string
                    description: Profile bio, as an ordered list of paragraphs.
                  telegramUrl:
                    type:
                      - string
                      - 'null'
                    description: Telegram link, if any.
                  websiteUrl:
                    type:
                      - string
                      - 'null'
                    description: Project website, if any.
                    example: https://thefirm.biz/autoboy
                  teamMembers:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Team member’s name.
                          example: Nurt Baglard
                        pfpUrl:
                          type: string
                          description: Absolute URL of the team member’s profile picture.
                          example: >-
                            https://thefirm.biz/profiles/headshots/headshot-nurt.png
                        followerCount:
                          type: number
                          description: Farcaster follower count.
                          example: 1
                        roles:
                          type: array
                          items:
                            type: object
                            properties:
                              projectName:
                                type: string
                                example: Yurts By Nurt
                              title:
                                type: string
                                example: Spokesperson
                            required:
                              - projectName
                              - title
                          description: >-
                            Positions the member holds, across this and other
                            projects.
                        farcasterUrl:
                          type:
                            - string
                            - 'null'
                          description: Link to the member’s Farcaster profile, if any.
                          example: https://farcaster.xyz/nurt
                        xUrl:
                          type:
                            - string
                            - 'null'
                          description: Link to the member’s X profile, if any.
                      required:
                        - name
                        - pfpUrl
                        - followerCount
                        - roles
                    description: Public team roster for the project.
                required:
                  - bio
                description: Display content for the project profile.
              expectedLaunch:
                oneOf:
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - datetime
                      value:
                        type: string
                        description: ISO 8601 timestamp of the expected launch.
                        example: '2026-07-01T15:00:00.000Z'
                    required:
                      - kind
                      - value
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - month
                      value:
                        type: string
                        description: Expected launch month, e.g. "2026-07".
                        example: 2026-07
                    required:
                      - kind
                      - value
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - label
                      value:
                        type: string
                        description: Free-text launch window, e.g. "Soon".
                        example: Soon
                    required:
                      - kind
                      - value
                description: >-
                  When the project expects to launch, expressed as a precise
                  datetime, a month, or a free-text label. The `kind` field
                  discriminates the shape of `value`.
              status:
                type: object
                properties:
                  isProfileRegistered:
                    type: boolean
                    description: Whether the project has registered a profile with AutoBoy.
                  isLaunchVerified:
                    type: boolean
                    description: >-
                      Whether the project has verified its token deployment will
                      support auto-buys via AutoBoy.
                  hasSniperProtection:
                    type: boolean
                    description: >-
                      Whether the project has enabled Sniper Protection,
                      deploying its token via AutoBoy at launch.
                required:
                  - isProfileRegistered
                  - isLaunchVerified
                  - hasSniperProtection
                description: Verification and protection status flags for the project.
              defaultMaxSpendUsdc:
                type: string
                description: >-
                  Owner-only. Default max autobuy spend in USDC applied to every
                  user on this project, overriding the global default. Present
                  only when the requesting API key owns the project.
                example: '500'
              maxSpendOverrides:
                type: array
                items:
                  type: object
                description: >-
                  Owner-only. Per-account max autobuy spend overrides. Each
                  entry pairs a USDC limit with the accounts it applies to,
                  matched by FID, address, or X username. Present only when the
                  requesting API key owns the project.
              clanker4DeploymentConfig:
                type: object
                description: >-
                  Owner-only. Clanker V4 token deployment config for
                  sniper-protected projects: token admin, pool configuration,
                  and fee structure. Present only when the requesting API key
                  owns the project.
            required:
              - identity
              - content
              - status
        meta:
          type: object
          properties:
            total:
              type: integer
              description: Total number of projects across all pages.
              example: 12
            limit:
              type: integer
              description: Page size that was applied to this response.
              example: 20
            nextCursor:
              type:
                - string
                - 'null'
              description: >-
                Cursor for the next page, or null when this is the last page.
                Pass it as the `cursor` query parameter to page forward.
          required:
            - total
            - limit
            - nextCursor
      required:
        - data
        - meta
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
      required:
        - error
        - message
      example:
        error: Bad request
        message: Invalid request body
  securitySchemes:
    apiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: API key issued via POST /api/public/v1/api-keys.

````