> ## 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 a project's buyers

> Returns a cursor-paginated page of a project's buyers, ordered by follower count (highest first). When the request's API key owns the project, each buyer additionally carries `maxSpendUsdc` & `maxFdvUsdc`.



## OpenAPI

````yaml https://thefirm.biz/api/public/v1/openapi.json get /api/public/v1/projects/{slug}/buyers
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


    - **Buying tokens?** Request a key — `POST /api/public/v1/api-key-requests`.

    - **Launching a token?** Register your project — `POST
    /api/public/v1/projects`; approval comes with an API key.


    New to AutoBoy? Read the product docs https://docs.thefirm.biz.
servers:
  - url: https://thefirm.biz
security: []
tags:
  - name: API Keys
    description: Request and create API keys.
  - name: Identity
    description: Inspect the identity behind your API key.
  - 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/{slug}/buyers:
    get:
      tags:
        - Projects
      summary: List a project's buyers
      description: >-
        Returns a cursor-paginated page of a project's buyers, ordered by
        follower count (highest first). When the request's API key owns the
        project, each buyer additionally carries `maxSpendUsdc` & `maxFdvUsdc`.
      operationId: listProjectBuyers
      parameters:
        - schema:
            type: string
            description: URL-safe identifier of the project.
            example: yurts-by-nurt
          required: true
          description: URL-safe identifier of the project.
          name: slug
          in: path
        - 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 buyers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyersResponse'
              example:
                data:
                  - source: farcaster
                    fid: 3324275
                    username: nurt
                    pfpUrl: https://thefirm.biz/profiles/headshots/headshot-nurt.png
                    followerCount: 1240
                  - source: x
                    fid: 0
                    username: thefirm
                    pfpUrl: https://pbs.twimg.com/profile_images/thefirm.jpg
                    followerCount: 980
                  - source: wallet
                    fid: 0
                    username: 0x1234…5678
                    pfpUrl: null
                    followerCount: 0
                meta:
                  limit: 20
                  nextCursor: null
        '400':
          description: Invalid pagination parameters or cursor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalidPagination:
                  value:
                    error: Bad request
                    message: Invalid pagination parameters
                invalidCursor:
                  value:
                    error: Bad request
                    message: Invalid cursor
        '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
        '404':
          description: No project matches the slug.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: Not found
                message: No project matches the slug
      security:
        - apiKeyAuth: []
components:
  schemas:
    BuyersResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
                enum:
                  - farcaster
                  - x
                  - wallet
                description: >-
                  Which identity the buyer is shown under. `farcaster`: a
                  Farcaster account. `x`: an X (Twitter) account. `wallet`: a
                  wallet with no linked social account.
                example: farcaster
              fid:
                type: integer
                description: Farcaster ID when `source` is `farcaster`; `0` otherwise.
                example: 3324275
              username:
                type: string
                description: >-
                  Display handle: the Farcaster username (`source: farcaster`),
                  the X handle without the leading @ (`source: x`), or a
                  shortened wallet address such as `0x1234…5678` (`source:
                  wallet`).
                example: nurt
              pfpUrl:
                type:
                  - string
                  - 'null'
                description: >-
                  Absolute URL of the buyer’s profile picture, or null when none
                  is available. Always null for `wallet` buyers.
              followerCount:
                type: integer
                description: >-
                  Follower count of the buyer’s account, used to rank the page.
                  `0` when no follower data is available, such as `wallet`
                  buyers.
                example: 1240
              maxSpendUsdc:
                type: string
                description: >-
                  Owner-only. Committed max autobuy spend in USDC for this
                  buyer.
                example: '250'
              maxFdvUsdc:
                type:
                  - string
                  - 'null'
                description: >-
                  Owner-only. Max fully-diluted valuation in USD the buyer will
                  buy up to, or null for no cap.
                example: '1000000'
            required:
              - source
              - fid
              - username
              - pfpUrl
              - followerCount
        meta:
          type: object
          properties:
            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:
            - 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.

````