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

# List campaigns

> Returns all campaigns for the authenticated team

## Overview

List campaigns for the authenticated team.

This endpoint returns a plain array of campaigns.

## Backward Compatibility

* Default behavior remains unchanged: `GET /v1/campaigns` returns a plain array of campaigns.
* Existing integrations do not need to change anything.

## Optional Pagination Params

* `limit` is optional.
* If both pagination params are omitted, the endpoint returns the full list.
* If either pagination param is provided, pagination mode is used.
* Default `offset`: `0`
* Maximum: `100`
* Response shape does not change.

## Examples

Legacy full-list request:

```bash theme={null}
curl -X GET "https://api.kakiyo.com/v1/campaigns" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

With an explicit limit:

```bash theme={null}
curl -X GET "https://api.kakiyo.com/v1/campaigns?limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

With limit and offset:

```bash theme={null}
curl -X GET "https://api.kakiyo.com/v1/campaigns?limit=25&offset=25" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

Legacy response:

```json theme={null}
[
  {
    "id": "campaign_123",
    "name": "Q4 Enterprise Outreach",
    "status": "active",
    "agent": "agent_123",
    "product": "product_123",
    "createdAt": "2026-03-01T12:00:00.000Z",
    "stats": {
      "prospects": 120,
      "prospectsAnswers": 14,
      "messages": 38,
      "qualified": 3,
      "closed": 0
    }
  }
]
```


## OpenAPI

````yaml GET /campaigns
openapi: 3.1.0
info:
  title: Kakiyo API
  description: API for automating LinkedIn outreach campaigns with AI-powered conversations
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.kakiyo.com/v1
security:
  - bearerAuth: []
paths:
  /campaigns:
    get:
      summary: List Campaigns
      description: Returns all campaigns for the authenticated team
      operationId: listCampaigns
      parameters:
        - name: limit
          in: query
          description: Maximum number of campaigns to return
          schema:
            type: integer
            format: int32
            default: 20
            maximum: 100
        - name: after
          in: query
          description: Cursor for pagination
          schema:
            type: string
      responses:
        '200':
          description: List of campaigns
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Campaign'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Campaign:
      type: object
      properties:
        id:
          type: string
          example: campaign_12345abcde
        name:
          type: string
          example: Q2 Sales Outreach
        status:
          type: string
          enum:
            - draft
            - active
            - paused
            - completed
          example: active
        agent:
          type: string
          example: agent_abcdef123456
        product:
          type: string
          example: prod_123456789
        createdAt:
          type: string
          format: date-time
          example: '2023-06-15T10:30:00Z'
        stats:
          type: object
          properties:
            prospects:
              type: integer
              example: 150
            prospectsAnswers:
              type: integer
              example: 42
            messages:
              type: integer
              example: 320
            qualified:
              type: integer
              example: 18
            closed:
              type: integer
              example: 5
    Error:
      type: object
      properties:
        error:
          type: string
          example: validation_error
        message:
          type: string
          example: The request parameters failed validation
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                example: name
              message:
                type: string
                example: The name field is required
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````