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

# List agents

> List the sales, signal, creative, and outcome agents registered to your storefront

`GET /api/v2/storefront/agents`

Returns the partner agents registered to this storefront as compact summary rows, each with capability metadata and a per-agent account count. Filter by agent `type`, `status`, `relationship`, `name`, or `supportsRegistration`, and page with `limit` and `offset`. Use [Get agent](/v2/storefront/agents/tasks/get-agent) for the full resource.

## Request

<CodeGroup>
  ```bash curl theme={null}
  curl "https://api.interchange.io/api/v2/storefront/agents?type=SALES&status=ACTIVE&limit=10" \
    -H "Authorization: Bearer $SCOPE3_API_KEY"
  ```

  ```bash Owned agents theme={null}
  curl "https://api.interchange.io/api/v2/storefront/agents?relationship=SELF&limit=10&offset=0" \
    -H "Authorization: Bearer $SCOPE3_API_KEY"
  ```
</CodeGroup>

## Parameters

| Param                  | Type    | Required | Notes                                                                                 |
| ---------------------- | ------- | -------- | ------------------------------------------------------------------------------------- |
| `type`                 | enum    | No       | Filter by agent type: `SALES`, `SIGNAL`, `CREATIVE`, or `OUTCOME`                     |
| `status`               | enum    | No       | Filter by status: `PENDING`, `ACTIVE`, or `DISABLED`                                  |
| `relationship`         | enum    | No       | `SELF` = owned by you; `MARKETPLACE` = all other marketplace agents                   |
| `name`                 | string  | No       | Partial, case-insensitive match on agent name                                         |
| `supportsRegistration` | enum    | No       | `"true"` returns only agents that require operator authentication; `"false"` the rest |
| `limit`                | integer | No       | Page size (default 20, max 100)                                                       |
| `offset`               | integer | No       | Rows to skip (default 0)                                                              |

## Response

```json theme={null}
{
  "items": [
    {
      "agentId": "agt_premium_ctv",
      "type": "SALES",
      "name": "Premium CTV — Direct",
      "protocol": "MCP",
      "status": "ACTIVE",
      "relationship": "SELF",
      "requiresOperatorAuth": true,
      "requiresAccount": false,
      "authConfigured": true,
      "createdAt": "2026-05-01T12:00:00Z",
      "customerAccountCount": 2
    }
  ],
  "total": 1,
  "hasMore": false,
  "nextOffset": null
}
```

`status` is `PENDING`, `ACTIVE`, or `DISABLED`, plus `COMING_SOON` for `PENDING` agents you don't own. `customerAccountCount` is your own account count on the agent and replaces the embedded accounts array. When `hasMore` is `true`, pass `nextOffset` back as `offset` to walk pages.

## Errors

* `400 VALIDATION_ERROR` — invalid `type`, `status`, or `relationship` value, or out-of-range `limit`/`offset`.

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Agent tasks" href="/v2/storefront/agents/tasks" icon="list-check">
    All agent operations
  </Card>

  <Card title="Get agent" href="/v2/storefront/agents/tasks/get-agent" icon="magnifying-glass">
    Full detail for one agent
  </Card>

  <Card title="Start agent OAuth" href="/v2/storefront/agents/tasks/start-agent-oauth" icon="key">
    Authorize an OAuth agent
  </Card>

  <Card title="Agents overview" href="/v2/storefront/agents/overview" icon="robot">
    Agent types and OAuth concepts
  </Card>
</CardGroup>
