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

# Get campaign

> **Get detailed campaign information**

Retrieve complete campaign details including configuration, variants, sequences, inboxes, and statistics.

## Response Includes

- Campaign configuration (name, schedule, limits)
- Email variants for A/B testing
- Follow-up sequences
- Assigned sender inboxes
- Lead batches and statistics
- Performance metrics (sent, opened, replied, bounced)

## Example Usage

```python
import requests

campaign_id = "550e8400-e29b-41d4-a716-446655440000"

response = requests.get(
    f"https://api.coldsend.io/api/public/v1/campaigns/{campaign_id}",
    headers={"X-API-Key": "your-api-key"}
)

print(response.json())
```



## OpenAPI

````yaml /public_openapi.json get /api/public/v1/campaigns/{campaign_id}
openapi: 3.0.3
info:
  title: ColdSend Public API
  description: >-
    Programmatic access to ColdSend for managing cold email campaigns and sender
    accounts.
  version: 1.0.0
  contact:
    name: ColdSend Support
    email: support@coldsend.pro
    url: https://coldsend.pro
servers:
  - url: https://api.coldsend.pro
    description: Production
security:
  - ApiKeyAuth: []
paths:
  /api/public/v1/campaigns/{campaign_id}:
    get:
      tags:
        - Campaigns
      summary: Get campaign
      description: >-
        **Get detailed campaign information**


        Retrieve complete campaign details including configuration, variants,
        sequences, inboxes, and statistics.


        ## Response Includes


        - Campaign configuration (name, schedule, limits)

        - Email variants for A/B testing

        - Follow-up sequences

        - Assigned sender inboxes

        - Lead batches and statistics

        - Performance metrics (sent, opened, replied, bounced)


        ## Example Usage


        ```python

        import requests


        campaign_id = "550e8400-e29b-41d4-a716-446655440000"


        response = requests.get(
            f"https://api.coldsend.io/api/public/v1/campaigns/{campaign_id}",
            headers={"X-API-Key": "your-api-key"}
        )


        print(response.json())

        ```
      operationId: get_campaign_api_public_v1_campaigns__campaign_id__get
      parameters:
        - name: campaign_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Campaign Id
      responses:
        '200':
          description: Campaign retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignResponse'
        '401':
          description: Missing or invalid API key
        '403':
          description: Insufficient permissions - requires 'campaigns:read' scope
        '404':
          description: Campaign not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    CampaignResponse:
      properties:
        campaign_id:
          type: string
          format: uuid
          title: Campaign Id
          description: Campaign ID
        name:
          type: string
          title: Name
          description: Campaign name
        workspace_id:
          type: string
          format: uuid
          nullable: true
          title: Workspace Id
          description: Workspace ID the campaign belongs to
        status:
          type: string
          title: Status
          description: Campaign status
        current_step:
          type: integer
          title: Current Step
          description: Current creation step
        daily_limit_per_inbox:
          type: integer
          nullable: true
          title: Daily Limit Per Inbox
          description: Daily limit per inbox (None = no limit)
        start_date:
          type: string
          format: date-time
          nullable: true
          title: Start Date
          description: Campaign start date
        timezone:
          type: string
          title: Timezone
          description: Campaign timezone
        sending_days:
          items:
            type: integer
          type: array
          title: Sending Days
          description: Days of week for sending
        sending_window_start:
          type: integer
          title: Sending Window Start
          description: Sending window start hour
        sending_window_start_minute:
          type: integer
          title: Sending Window Start Minute
          description: Sending window start minute
        sending_window_end:
          type: integer
          title: Sending Window End
          description: Sending window end hour
        sending_window_end_minute:
          type: integer
          title: Sending Window End Minute
          description: Sending window end minute
        skip_weekends_for_sequences:
          type: boolean
          title: Skip Weekends For Sequences
          description: >-
            When True, follow-up sequence emails scheduled on weekends are
            deferred to Monday
          default: false
        enable_tracking:
          type: boolean
          title: Enable Tracking
          description: Email tracking enabled
        enable_click_tracking:
          type: boolean
          title: Enable Click Tracking
          description: Whether click-through-rate tracking is enabled for this campaign
          default: false
        enable_unsubscribe:
          type: boolean
          title: Enable Unsubscribe
          description: Enable automatic unsubscribe option insertion
          default: true
        ramp_up_enabled:
          type: boolean
          title: Ramp Up Enabled
          description: Whether ramp-up is enabled for this campaign
          default: false
        ramp_up_increment:
          type: integer
          title: Ramp Up Increment
          description: Emails/inbox/day added per ramp-up day
          default: 5
        ramp_up_max_limit:
          type: integer
          title: Ramp Up Max Limit
          description: Fully-ramped daily cap (emails/inbox/day)
          default: 50
        reply_to:
          type: string
          nullable: true
          title: Reply To
          description: Optional Reply-To email override. None = no Reply-To header.
        variants:
          items:
            $ref: '#/components/schemas/VariantResponse'
          type: array
          title: Variants
          description: Email variants for A/B testing the initial email
        lead_mapping:
          additionalProperties:
            type: string
          type: object
          nullable: true
          title: Lead Mapping
          description: Lead field mapping
        lead_batches:
          items:
            $ref: '#/components/schemas/LeadBatchResponse'
          type: array
          title: Lead Batches
          description: List of lead batches
        sequences:
          items:
            $ref: '#/components/schemas/SequenceResponse'
          type: array
          title: Sequences
          description: Email sequences
        inboxes:
          items:
            $ref: '#/components/schemas/CampaignInboxResponse'
          type: array
          title: Inboxes
          description: Campaign inboxes
        total_leads:
          type: integer
          title: Total Leads
          description: Total number of leads
          default: 0
        sent_count:
          type: integer
          title: Sent Count
          description: Emails sent
          default: 0
        initial_sent_count:
          type: integer
          title: Initial Sent Count
          description: Initial emails sent
          default: 0
        followup_sent_count:
          type: integer
          title: Followup Sent Count
          description: Follow-up sequence emails sent
          default: 0
        reply_count:
          type: integer
          title: Reply Count
          description: Replies received
          default: 0
        open_count:
          type: integer
          title: Open Count
          description: Emails opened
          default: 0
        bounce_count:
          type: integer
          title: Bounce Count
          description: Emails bounced
          default: 0
        unsubscribe_count:
          type: integer
          title: Unsubscribe Count
          description: Unsubscribes
          default: 0
        completion_rate:
          type: number
          title: Completion Rate
          description: 'Campaign completion rate: (sent + bounced) / total * 100'
          default: 0
        success_rate:
          type: number
          title: Success Rate
          description: 'Campaign success rate: sent / total * 100'
          default: 0
        open_to_reply_rate:
          type: number
          title: Open To Reply Rate
          description: 'Open-to-reply rate: replies / opens * 100'
          default: 0
        created_by_user_id:
          type: string
          format: uuid
          title: Created By User Id
          description: Creator user ID
        team_id:
          type: string
          format: uuid
          title: Team Id
          description: Team ID
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Creation timestamp
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: Last update timestamp
        launched_at:
          type: string
          format: date-time
          nullable: true
          title: Launched At
          description: Launch timestamp
      type: object
      required:
        - campaign_id
        - name
        - status
        - current_step
        - daily_limit_per_inbox
        - start_date
        - timezone
        - sending_days
        - sending_window_start
        - sending_window_start_minute
        - sending_window_end
        - sending_window_end_minute
        - enable_tracking
        - lead_mapping
        - sequences
        - inboxes
        - created_by_user_id
        - team_id
        - created_at
        - updated_at
        - launched_at
      title: CampaignResponse
      description: Detailed campaign response schema.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    VariantResponse:
      properties:
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        id:
          type: string
          format: uuid
          title: Id
          description: Variant ID
        campaign_id:
          type: string
          format: uuid
          title: Campaign Id
          description: Campaign ID
        sequence_id:
          type: string
          format: uuid
          nullable: true
          title: Sequence Id
          description: Sequence ID (NULL = initial email)
        variant_name:
          type: string
          title: Variant Name
          description: Variant identifier (A, B, C)
        variant_label:
          type: string
          nullable: true
          title: Variant Label
          description: User-friendly label
        subject_template:
          type: string
          title: Subject Template
          description: Subject line template
        body_template:
          type: string
          nullable: true
          title: Body Template
          description: Plain text body
        html_template:
          type: string
          nullable: true
          title: Html Template
          description: HTML body
        content_type:
          type: string
          nullable: true
          title: Content Type
          description: 'Email content mode: plaintext, html, or raw_html'
        distribution_percent:
          type: integer
          title: Distribution Percent
          description: Distribution percentage
        is_active:
          type: boolean
          title: Is Active
          description: Whether variant is active
        stats:
          $ref: '#/components/schemas/VariantStats'
          description: Variant statistics
      type: object
      required:
        - created_at
        - updated_at
        - id
        - campaign_id
        - sequence_id
        - variant_name
        - variant_label
        - subject_template
        - body_template
        - html_template
        - distribution_percent
        - is_active
        - stats
      title: VariantResponse
      description: Response schema for a single email variant.
    LeadBatchResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Batch ID
        campaign_id:
          type: string
          format: uuid
          title: Campaign Id
          description: Campaign ID
        source_type:
          type: string
          title: Source Type
          description: Source type (CSV, MANUAL, COPY)
        source_name:
          type: string
          nullable: true
          title: Source Name
          description: Source name (e.g. filename)
        column_mapping:
          additionalProperties:
            type: string
          type: object
          nullable: true
          title: Column Mapping
          description: Column mapping used for this batch
        lead_count:
          type: integer
          title: Lead Count
          description: Number of leads in this batch
        duplicate_action:
          type: string
          title: Duplicate Action
          description: Action taken for duplicates
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Batch creation timestamp
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: Last update timestamp
      type: object
      required:
        - id
        - campaign_id
        - source_type
        - source_name
        - column_mapping
        - lead_count
        - duplicate_action
        - created_at
        - updated_at
      title: LeadBatchResponse
      description: Response schema for a lead batch.
    SequenceResponse:
      properties:
        sequence_id:
          type: string
          format: uuid
          title: Sequence Id
          description: Sequence ID
        step_number:
          type: integer
          title: Step Number
          description: Sequence step number
        trigger_type:
          type: string
          title: Trigger Type
          description: Trigger condition
        wait_days:
          type: integer
          title: Wait Days
          description: Days to wait before sending
        is_active:
          type: boolean
          title: Is Active
          description: Whether sequence is active
        variants:
          items:
            $ref: '#/components/schemas/VariantResponse'
          type: array
          title: Variants
          description: Email variants for this sequence
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Creation timestamp
      type: object
      required:
        - sequence_id
        - step_number
        - trigger_type
        - wait_days
        - is_active
        - created_at
      title: SequenceResponse
      description: Response schema for email sequence.
    CampaignInboxResponse:
      properties:
        inbox_id:
          type: string
          format: uuid
          title: Inbox Id
          description: Inbox ID
        email_address:
          type: string
          title: Email Address
          description: Inbox email address
        display_name:
          type: string
          title: Display Name
          description: Inbox display name
        domain_name:
          type: string
          nullable: true
          title: Domain Name
          description: Domain name
        emails_sent_today:
          type: integer
          title: Emails Sent Today
          description: Emails sent today from this inbox
        daily_limit:
          type: integer
          title: Daily Limit
          description: Daily sending limit for this inbox
        health_score:
          type: number
          title: Health Score
          description: Inbox health score
        ramp_up_current_day:
          type: integer
          title: Ramp Up Current Day
          description: Current ramp-up day (0=not started, otherwise 1..max_day)
          default: 0
        ramp_up_daily_limit:
          type: integer
          nullable: true
          title: Ramp Up Daily Limit
          description: Computed ramp-up limit for the current day when enabled, else None
      type: object
      required:
        - inbox_id
        - email_address
        - display_name
        - domain_name
        - emails_sent_today
        - daily_limit
        - health_score
      title: CampaignInboxResponse
      description: Response schema for campaign inbox information.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    VariantStats:
      properties:
        sent_count:
          type: integer
          title: Sent Count
          description: Number of emails sent
        open_count:
          type: integer
          title: Open Count
          description: Number of emails opened
        reply_count:
          type: integer
          title: Reply Count
          description: Number of replies received
        bounce_count:
          type: integer
          title: Bounce Count
          description: Number of bounced emails
        click_count:
          type: integer
          title: Click Count
          description: Number of link clicks
        open_rate:
          type: number
          title: Open Rate
          description: Open rate percentage
        reply_rate:
          type: number
          title: Reply Rate
          description: Reply rate percentage
        bounce_rate:
          type: number
          title: Bounce Rate
          description: Bounce rate percentage
        click_rate:
          type: number
          title: Click Rate
          description: Click rate percentage
      type: object
      required:
        - sent_count
        - open_count
        - reply_count
        - bounce_count
        - click_count
        - open_rate
        - reply_rate
        - bounce_rate
        - click_rate
      title: VariantStats
      description: Statistics for an email variant.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key with format cs_live_xxx

````