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

# List Marketplace Campaigns

> List public teasers for live marketplace campaigns

List live marketplace campaign teasers, ordered by `start_date` descending. This endpoint is public and does not require authentication. The `Authorization` header is ignored, including leftover or invalid API keys.

> [!NOTE]
>
> The team routes under `/v1/program/campaigns`, [List Campaigns](https://docs.affonso.io/api/endpoint/campaigns/list.md) and [Get Campaign](https://docs.affonso.io/api/endpoint/campaigns/get.md), require an API key with `read:program`. They return only your team's campaigns in any status, including drafts, with owner fields such as `status`, `max_budget` and retainer settings. Marketplace routes show the partner view: only live campaigns from marketplace-listed programs across any team, public teasers without authentication, no `max_budget`, and hidden owner settings. The full brief (`details`) is available only for an approved partner of your team through `affiliate_id` and an API key with `read:affiliates`.

## Query Parameters

**page** `integer` (default: 1)

Page number for pagination. Minimum 1.

**limit** `integer` (default: 50)

Number of results per page. Minimum 1, maximum 200.

**marketplace\_id** `string`

Filter by an encoded marketplace program id from [List Marketplace Programs](https://docs.affonso.io/api/endpoint/marketplace/list.md) or [Get Marketplace Program](https://docs.affonso.io/api/endpoint/marketplace/get.md).

## Response

Paginated list of campaign teasers. Full briefs are available through [Get Marketplace Campaign](https://docs.affonso.io/api/endpoint/marketplace/get-campaign.md) for eligible partners.

**success** `boolean`

Always `true` for successful responses

**data** `array`

Array of campaign teasers.

**Campaign Teaser Properties**

**id** `string`

Encoded campaign id

**name** `string`

Campaign title

**reward** `object`

Campaign reward.

**Reward Properties**

**type** `string`

`flat_rate`, `custom`, `range`, or `retainer`

**amount** `number | null`

Fixed reward amount

**amount\_min** `number | null`

Range minimum

**amount\_max** `number | null`

Range maximum

**currency** `string`

Team currency, for example `USD`

**start\_date** `string`

ISO 8601 start datetime

**end\_date** `string | null`

ISO 8601 end datetime, or `null`

**program** `object`

Marketplace program.

**Program Properties**

**id** `string`

Encoded program id, the same as the marketplace program id

**name** `string`

Program name

**logo\_url** `string | null`

Program logo URL, falling back to the team avatar

**currency** `string`

Program currency, for example `USD`

**pagination** `object`

Pagination metadata: `page` (integer), `limit` (integer), `total` (integer), `total_pages` (integer), `has_next_page` (boolean), `has_prev_page` (boolean).

```bash cURL theme={null}
curl -X GET "https://api.affonso.io/v1/marketplace/campaigns?page=1&limit=50&marketplace_id=cmlaunch01prog0001"
```

```json Response theme={null}
{
  "success": true,
  "data": [
    {
      "id": "cmlaunch01camp0001",
      "name": "Launch Review Bounty",
      "reward": {
        "type": "flat_rate",
        "amount": 100,
        "amount_min": null,
        "amount_max": null,
        "currency": "USD"
      },
      "start_date": "2026-10-01T00:00:00.000Z",
      "end_date": null,
      "program": {
        "id": "cmlaunch01prog0001",
        "name": "Acme Analytics",
        "logo_url": "https://cdn.affonso.io/logos/acme-analytics.png",
        "currency": "USD"
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 50,
    "total": 1,
    "total_pages": 1,
    "has_next_page": false,
    "has_prev_page": false
  }
}
```

## Notes

* Only `ACTIVE` campaigns whose `start_date` is at or before now and whose `end_date` is `null` or at or after now are visible. Their program must have joined the marketplace, be `ACTIVE`, and have an access mode other than `invite`.
* Public marketplace requests have an IP rate limit of 60 requests per window. Rate limit headers are `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`. Authenticated requests also have the normal API key rate limit.
* Responses use `Cache-Control: no-store` because campaign windows are time-sensitive.
* Only teasers are returned. `max_budget` is never returned on marketplace routes.
* Invalid `page` or `limit` values return `VALIDATION_ERROR` (HTTP 400), with the message "Invalid query parameters" and `details`.
* An invalid `marketplace_id` returns `VALIDATION_ERROR` (HTTP 400), with the message "Invalid marketplace program ID" and field `marketplace_id`.
* A server error returns `INTERNAL_ERROR` (HTTP 500), with the message "Failed to fetch campaigns".


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