---
title: "Public Get Campaign Step Analytics"
method: GET
path: "/campaigns/{campaign_id}/analytics/steps"
tags: ["Campaigns"]
---

# Public Get Campaign Step Analytics

`GET /campaigns/{campaign_id}/analytics/steps`

## Request

- Base URL: `https://public.outreach2day.com`
- URL: `https://public.outreach2day.com/campaigns/{campaign_id}/analytics/steps`
- Auth: HTTP bearer

Return campaign step performance in one optimized EVA request.

## Path parameters

- `campaign_id` string, required

## Query parameters

- `workspaceId` integer, required
- `timeframe` 'today' | 'yesterday' | 'last_7_days' | 'last_4_weeks' | 'all': Relative analytics timeframe. `today` = current UTC calendar day. `yesterday` = previous UTC calendar day. `last_7_days` = current UTC day plus previous 6 UTC calendar days. `last_4_weeks` = current UTC day plus previous 27 UTC calendar days (28 days total). `all` = no date filter.

## Response `200`

Successful Response

- CampaignStepAnalyticsOut
  - `contractVersion` 'campaign-step-analytics.v1', required
  - `generatedAt` string, date-time, required: ISO 8601 generation time with an explicit timezone offset.
  - `scope` CampaignStepAnalyticsScopeOut, required
    - `type` 'campaign', required
    - `campaignId` string, required
    - `stepCount` integer, required
  - `range` CampaignStepAnalyticsRangeOut, required: The v2 analytics range semantics with an exact response shape.
    - `timeframe` 'today' | 'yesterday' | 'last_7_days' | 'last_4_weeks' | 'all', required
    - `from` string, date-time, required: Inclusive ISO 8601 range start with an explicit timezone offset.
    - `to` string, date-time, required: Exclusive ISO 8601 range end with an explicit timezone offset.
    - `timezone` string, required: Valid IANA timezone name or UTC used to build the buckets.
    - `granularity` 'day' | 'week', required
  - `totals` CampaignStepAnalyticsTotalsOut, required: Exact analytics totals used by the step-performance contract.
    - `sequenceStarted` integer, required
    - `sent` integer, required
    - `replied` integer, required
    - `positive` integer, required
    - `ooo` integer, required
    - `other` integer, required
    - `opportunities` integer, required
    - `opportunityValue` number, required
    - `bounced` integer, required
    - `failed` integer, required
    - `canceled` integer, required
  - `steps` CampaignStepAnalyticsStepOut[], required
    - `stepId` string, required
    - `order` integer, required
    - `subject` string, required
    - `totals` CampaignStepAnalyticsTotalsOut, required: Exact analytics totals used by the step-performance contract.
      - `sequenceStarted` integer, required
      - `sent` integer, required
      - `replied` integer, required
      - `positive` integer, required
      - `ooo` integer, required
      - `other` integer, required
      - `opportunities` integer, required
      - `opportunityValue` number, required
      - `bounced` integer, required
      - `failed` integer, required
      - `canceled` integer, required
  - `unattributed` CampaignStepAnalyticsTotalsOut, required: Exact analytics totals used by the step-performance contract.
    - `sequenceStarted` integer, required
    - `sent` integer, required
    - `replied` integer, required
    - `positive` integer, required
    - `ooo` integer, required
    - `other` integer, required
    - `opportunities` integer, required
    - `opportunityValue` number, required
    - `bounced` integer, required
    - `failed` integer, required
    - `canceled` integer, required
  - `timeframeApplied` boolean, nullable: False when the provider served all-time counters because it cannot bound them to range.timeframe.
  - `degradation` object, nullable: Why the envelope is narrower than requested, plus the contract fields the provider has no projection for.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/outreach2day/apis/outreach-today-public-api.md) · [All operations](https://skmtc.dev/outreach2day/apis/outreach-today-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/outreach2day/apis/outreach-today-public-api/revisions/0e5471143371?raw)
