---
title: "List projects"
method: GET
path: "/api/public/v1/projects"
tags: ["Projects"]
---

# List projects

`GET /api/public/v1/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.

## Query parameters

- `cursor` string — 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.
- `limit` integer, nullable — Maximum number of items per page. Defaults to 20; values are clamped to 1–100.

## Response `200`

A page of projects.

- ProjectsResponse
  - `data` object[], required
    - `identity` object, required — Stable identifiers and handles for the project.
      - `slug` string, required — URL-safe identifier, used as the `{slug}` path parameter.
      - `displayName` string, required — Human-readable project name.
      - `fid` number — Farcaster ID of the project account, if any.
      - `xHandle` string, nullable, required — X (Twitter) handle without the leading @, or null.
      - `farcasterUsername` string — Farcaster username, if any.
    - `content` object, required — Display content for the project profile.
      - `bannerImageUrl` string — Absolute URL of the profile banner image.
      - `pfpUrl` string — Absolute URL of the profile picture.
      - `bio` string[], required — Profile bio, as an ordered list of paragraphs.
      - `telegramUrl` string, nullable — Telegram link, if any.
      - `websiteUrl` string, nullable — Project website, if any.
      - `teamMembers` object[] — Public team roster for the project.
        - `name` string, required — Team member’s name.
        - `pfpUrl` string, required — Absolute URL of the team member’s profile picture.
        - `followerCount` number, required — Farcaster follower count.
        - `roles` object[], required — Positions the member holds, across this and other projects.
          - `projectName` string, required
          - `title` string, required
        - `farcasterUrl` string, nullable — Link to the member’s Farcaster profile, if any.
        - `xUrl` string, nullable — Link to the member’s X profile, if any.
    - `expectedLaunch` union — 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`.
      - object
        - `kind` 'datetime', required
        - `value` string, required — ISO 8601 timestamp of the expected launch.
      - object
        - `kind` 'month', required
        - `value` string, required — Expected launch month, e.g. "2026-07".
      - object
        - `kind` 'label', required
        - `value` string, required — Free-text launch window, e.g. "Soon".
    - `status` object, required — Verification and protection status flags for the project.
      - `isProfileRegistered` boolean, required — Whether the project has registered a profile with AutoBoy.
      - `isLaunchVerified` boolean, required — Whether the project has verified its token deployment will support auto-buys via AutoBoy.
      - `hasSniperProtection` boolean, required — Whether the project has enabled Sniper Protection, deploying its token via AutoBoy at launch.
    - `defaultMaxSpendUsdc` string — 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.
    - `maxSpendOverrides` object[] — 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.
    - `defaultMinSpendUsdc` string — Owner-only. Minimum autobuy spend in USDC required from every user on this project, overriding the global floor. Present only when the requesting API key owns the project.
    - `launchConfig` object — Owner-only. The launchpad this project deploys on and its pool config, as `{ platform, config }`. For `platform: "clanker"` the config is the Clanker V4 deployment config (token admin, pool, fees); for `platform: "bankr"` it is the token symbol and the percent of supply vaulted. Present only when the requesting API key owns the project.
  - `meta` object, required
    - `total` integer, required — Total number of projects across all pages.
    - `limit` integer, required — Page size that was applied to this response.
    - `nextCursor` string, nullable, required — Cursor for the next page, or null when this is the last page. Pass it as the `cursor` query parameter to page forward.

## Other responses

- `400` — Invalid pagination parameters or an unknown cursor.
- `401` — Missing or invalid API key.
- `429` — Rate limit exceeded. Wait `Retry-After` seconds before retrying.

## Changes

- **2026-07-26** `551d21683ba6` — 1 warning, 2 info
  - removed the optional property `data/items/clanker4DeploymentConfig` from the response with the `200` status
  - added the optional property `data/items/defaultMinSpendUsdc` to the response with the `200` status
  - added the optional property `data/items/launchConfig` to the response with the `200` status

[Change history](https://skmtc.dev/thefirm/apis/autoboy-public-api/changes/api/public/v1/projects/get.md)

---

[API](https://skmtc.dev/thefirm/apis/autoboy-public-api.md) · [All operations](https://skmtc.dev/thefirm/apis/autoboy-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/thefirm/autoboy-public-api/revisions/6cba23209c3a/schema)
