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

# Report of a campaign

> Counts, rates and delays of the campaign, per channel too, and its cost so far. Refreshed every few minutes.



## OpenAPI

````yaml /api-reference/v2.0/openapi.json get /campaigns/{id}/report
openapi: 3.1.0
info:
  title: Shortext API
  description: >-
    **Versioning**: every version is a frozen contract. A released version only
    receives additive changes

    (new endpoints, new optional fields, new response fields); anything breaking
    ships in a new version.

    Responses carry `X-Shortext-Api-Version`. When a version is scheduled for
    removal, responses also carry

    `Deprecation` and `Sunset` headers; after the sunset date the version
    answers HTTP 410.

    The list of versions and their status is available at `GET /api/versions`.


    **Responses**: always HTTP 200. Check `success` and `code` (`1000` =
    success), see `ApiEnvelope`.

    On failure, `trace_id` identifies the request for support.


    **Rate limit**: 300 requests per minute per company, shared by all its keys
    and by every API version.

    Responses carry `X-RateLimit-Limit` and `X-RateLimit-Remaining`; beyond the
    limit the API answers

    HTTP 429 with `Retry-After` (seconds) and the usual envelope. Prefer
    webhooks to polling.
  version: '2.0'
servers:
  - url: https://shortext.ny-corp.io/api/v2.0
security: []
tags:
  - name: Agents
    description: Agents
  - name: Knowledge
    description: Knowledge
  - name: Dynamic links
    description: Dynamic links
  - name: Billing
    description: Billing
  - name: Campaigns
    description: Campaigns
  - name: Channels
    description: Channels
  - name: Conversations
    description: Conversations
  - name: Follow-ups
    description: Follow-ups
  - name: Account
    description: Account
  - name: Tickets
    description: Tickets
  - name: Templates
    description: Templates
  - name: Hosted sessions
    description: Hosted sessions
  - name: Webhooks
    description: Webhooks
paths:
  /campaigns/{id}/report:
    get:
      tags:
        - Campaigns
      summary: Report of a campaign
      description: >-
        Counts, rates and delays of the campaign, per channel too, and its cost
        so far. Refreshed every few minutes.
      operationId: getCampaignReport
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: >-
            Always HTTP 200: the outcome is in `success` and `code` (absolute
            value of the response code).
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiEnvelope'
                  - properties:
                      body:
                        $ref: '#/components/schemas/CampaignReport'
                    type: object
      security:
        - bearerAuth: []
components:
  schemas:
    ApiEnvelope:
      properties:
        success:
          type: boolean
          example: true
        code:
          type: integer
          example: 1000
        message:
          type: string
          example: Request success.
        body:
          description: Endpoint payload, null when there is none
        token:
          description: Present only on authentication routes
          type:
            - string
            - 'null'
        trace_id:
          description: Present only when success is false
          type:
            - string
            - 'null'
      type: object
    CampaignReport:
      description: >-
        A message that failed counts as failed only (an email accepted then
        bounced, for example): sent + failed = attempted, and no rate goes over
        100.
      properties:
        counts:
          description: >-
            total, queued, attempted (sent or failed), sent, delivered, read,
            responded, failed
          type: object
        rates:
          description: >-
            Percentages, each on its own base: delivery = delivered / attempted,
            open = read / delivered, response = responded / read, intention =
            intentions / responded, failure = failed / attempted
          type: object
        comparison:
          description: >-
            Each rate next to its average over your ended campaigns (same
            category when there are some), and the gap in points (null before
            the first send)
          type: object
        funnel:
          description: >-
            attempted, delivered, read, responded, intentions: count and rate on
            the step before
          type: array
          items:
            type: object
        timelines:
          description: Average delays in seconds, on real receipt dates
          type: object
        hourly:
          description: >-
            Reads and replies per hour since the first send (72 hours), with the
            peak reply hour of the day
          type: object
        failures:
          description: >-
            Failures by motif: no_whatsapp, invalid_number, email_refused,
            limit_reached, template_refused, insufficient_credit, other
          type: array
          items:
            type: object
        intentions:
          description: >-
            Recipients with a follow-up intention, and per intention: count and
            how many went on to a ticket
          type: object
        return:
          description: >-
            cost, revenue (orders of a recipient within 7 days after receipt),
            orders, profit, roi_multiple (revenue per unit spent),
            cost_per_message, cost_per_response
          type: object
        progress:
          description: >-
            done, total, percent, estimated_end_at (while sending), postponed
            (to the next opening of the send window)
          type: object
        source:
          description: >-
            type: segment (name), file (name, rows, rejected), manual (contacts)
            or automatic
          type: object
        channels:
          type: array
          items:
            type: object
        cost:
          description: Charged so far (same as return.cost)
          type: number
      type: object
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        Company API key, sent as `Authorization: Bearer <key>`. Create it in the
        dashboard (Developer > API Keys) with the permissions the integration
        needs.
      scheme: bearer

````

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