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

# Get automation performance

> Returns one automation's results for the last days (default 30), counted as the dashboard counts them, each with the previous period, plus its lifetime totals.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/workspaces/{workspace_id}/automations/{automation_id}/performance
openapi: 3.1.0
info:
  title: Replier API
  version: '1'
servers:
  - url: https://api.usereplier.com
security:
  - apiKey: []
paths:
  /v1/workspaces/{workspace_id}/automations/{automation_id}/performance:
    get:
      tags:
        - Automations
      summary: Get automation performance
      description: >-
        Returns one automation's results for the last days (default 30), counted
        as the dashboard counts them, each with the previous period, plus its
        lifetime totals.
      operationId: get_automation_performance
      parameters:
        - name: workspace_id
          in: path
          required: true
          description: Workspace ID returned by `GET /v1/workspaces`
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - name: automation_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - name: days
          in: query
          required: false
          description: Reporting window in days, ending now
          schema:
            default: 30
            type: integer
            minimum: 1
            maximum: 90
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  workspace:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      name:
                        type: string
                      kind:
                        type: string
                        enum:
                          - personal
                          - agency
                      role:
                        type: string
                        enum:
                          - owner
                          - admin
                          - member
                    required:
                      - id
                      - name
                      - kind
                      - role
                  automation:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      version:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                      name:
                        type: string
                      enabled:
                        description: >-
                          The automation's own on/off switch. Whether it answers
                          now is status.
                        type: boolean
                      status:
                        description: >-
                          live: on and at least one target answers now.
                          not_live: on, but nothing answers; issues says why.
                          paused: switched off with enabled false.
                        type: string
                        enum:
                          - live
                          - not_live
                          - paused
                      issues:
                        description: >-
                          Each reason something doesn't answer now, with what it
                          means and what the user does. code is a target state
                          other than active (see targets[].state, listed in
                          target_ids), no_targets, workspace_paused or
                          workspace_payment_overdue. A live automation can list
                          issues for some of its targets.
                        type: array
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            target_ids:
                              type: array
                              items:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            since:
                              description: >-
                                For no_targets: when its last target was
                                removed.
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          required:
                            - code
                      paused:
                        description: >-
                          Only when status is paused: what turned it off, and
                          when.
                        type: object
                        properties:
                          by:
                            description: >-
                              person: someone in the workspace turned it off, or
                              removed its last target. channel_disconnect:
                              disconnecting its account's channel turned it off,
                              and reconnecting turns it back on unless someone
                              saved it since. unrecorded: Replier has no record
                              of what turned it off.
                            type: string
                            enum:
                              - person
                              - channel_disconnect
                              - unrecorded
                          at:
                            anyOf:
                              - type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                              - type: 'null'
                          by_name:
                            description: Who turned it off, when by is person.
                            type:
                              - string
                              - 'null'
                        required:
                          - by
                          - at
                          - by_name
                      keywords:
                        type: array
                        items:
                          type: string
                      public_reply_enabled:
                        type: boolean
                      public_replies:
                        type: array
                        items:
                          type: string
                      public_reply_selection:
                        type: string
                        enum:
                          - random
                          - round_robin
                      dm_message:
                        type: string
                      dm_image:
                        anyOf:
                          - type: object
                            properties:
                              id:
                                type: string
                              url:
                                type: string
                              display:
                                description: >-
                                  card: cropped per channel with the message as
                                  its title and the buttons on it. photo: sent
                                  at its original ratio, then the message (if
                                  any) with the buttons.
                                default: card
                                type: string
                                enum:
                                  - card
                                  - photo
                            required:
                              - id
                              - url
                              - display
                          - type: 'null'
                      follow_gate_enabled:
                        type: boolean
                      follow_gate_message:
                        type: string
                      follow_gate_button_text:
                        type: string
                      follow_gate_retry_message:
                        type: string
                      follow_gate_retry_button_text:
                        type: string
                      follow_gate_profile_button_enabled:
                        description: >-
                          Whether the Follow Gate prompt and its reminder show a
                          button that opens the Instagram account's profile.
                        type: boolean
                      follow_gate_profile_button_text:
                        description: >-
                          Null until the automation has its own label; turning
                          the button on then needs one.
                        type:
                          - string
                          - 'null'
                      gates:
                        description: >-
                          Opening and email gates, in addition to Follow Gate.
                          Set them with gates in `POST
                          /v1/workspaces/{workspace_id}/automations` or `PATCH
                          /v1/workspaces/{workspace_id}/automations/{automation_id}`.
                          Runs waiting on any gate appear as gated.
                        type: object
                        properties:
                          opening:
                            description: >-
                              The recipient must tap this button before the main
                              DM is sent.
                            anyOf:
                              - type: object
                                properties:
                                  message:
                                    type: string
                                  button_text:
                                    type: string
                                required:
                                  - message
                                  - button_text
                              - type: 'null'
                          email:
                            description: >-
                              The recipient must reply with an email address
                              before the main DM is sent.
                            anyOf:
                              - type: object
                                properties:
                                  message:
                                    type: string
                                  retry_message:
                                    type: string
                                required:
                                  - message
                                  - retry_message
                              - type: 'null'
                        required:
                          - opening
                          - email
                      follow_up:
                        description: >-
                          Follow-up message after the DM, or null. Set it with
                          follow_up in `POST
                          /v1/workspaces/{workspace_id}/automations` or `PATCH
                          /v1/workspaces/{workspace_id}/automations/{automation_id}`,
                          which describes when each branch is sent.
                        anyOf:
                          - type: object
                            properties:
                              wait_hours:
                                type: number
                              clicked:
                                type: object
                                properties:
                                  message:
                                    type: string
                                  image:
                                    anyOf:
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                          url:
                                            type: string
                                          display:
                                            type: string
                                        required:
                                          - id
                                          - url
                                          - display
                                      - type: 'null'
                                  buttons:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        title:
                                          type: string
                                        url:
                                          type: string
                                      required:
                                        - title
                                        - url
                                  enabled:
                                    type: boolean
                                  delay_minutes:
                                    type: number
                                required:
                                  - message
                                  - image
                                  - buttons
                                  - enabled
                                  - delay_minutes
                              not_clicked:
                                type: object
                                properties:
                                  message:
                                    type: string
                                  image:
                                    anyOf:
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                          url:
                                            type: string
                                          display:
                                            type: string
                                        required:
                                          - id
                                          - url
                                          - display
                                      - type: 'null'
                                  buttons:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        title:
                                          type: string
                                        url:
                                          type: string
                                      required:
                                        - title
                                        - url
                                  enabled:
                                    type: boolean
                                required:
                                  - message
                                  - image
                                  - buttons
                                  - enabled
                            required:
                              - wait_hours
                              - clicked
                              - not_clicked
                          - type: 'null'
                      buttons:
                        type: array
                        items:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                title:
                                  type: string
                                url:
                                  type: string
                              required:
                                - id
                                - title
                                - url
                            - type: object
                              properties:
                                id:
                                  type: string
                                title:
                                  type: string
                                type:
                                  type: string
                                  const: postback
                                message:
                                  description: Sent as a DM when the button is tapped.
                                  type: string
                              required:
                                - id
                                - title
                                - type
                                - message
                      flow:
                        anyOf:
                          - type: object
                            properties:
                              nodes:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    name:
                                      type: string
                                    message:
                                      type: string
                                    image:
                                      anyOf:
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                            url:
                                              type: string
                                            display:
                                              description: >-
                                                card: cropped per channel with the
                                                message as its title and the buttons on
                                                it. photo: sent at its original ratio,
                                                then the message (if any) with the
                                                buttons.
                                              default: card
                                              type: string
                                              enum:
                                                - card
                                                - photo
                                          required:
                                            - id
                                            - url
                                            - display
                                        - type: 'null'
                                    buttons:
                                      type: array
                                      items:
                                        oneOf:
                                          - type: object
                                            properties:
                                              type:
                                                type: string
                                                const: web_url
                                              id:
                                                type: string
                                              title:
                                                type: string
                                              url:
                                                type: string
                                            required:
                                              - type
                                              - id
                                              - title
                                              - url
                                          - type: object
                                            properties:
                                              type:
                                                type: string
                                                const: postback
                                              id:
                                                type: string
                                              title:
                                                type: string
                                              target_node_id:
                                                type: string
                                            required:
                                              - type
                                              - id
                                              - title
                                              - target_node_id
                                  required:
                                    - id
                                    - name
                                    - message
                                    - image
                                    - buttons
                              keyword_routes:
                                description: >-
                                  Branches after the automation's own keywords
                                  (branch 1), tried in order: the first branch
                                  with a keyword standing alone in a comment,
                                  story reply or message (else the first with a
                                  keyword inside a longer word) sends its entry
                                  node and public replies.
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    keywords:
                                      type: array
                                      items:
                                        type: string
                                    entry_node_id:
                                      type: string
                                    public_reply_enabled:
                                      type: boolean
                                    public_replies:
                                      type: array
                                      items:
                                        type: string
                                    public_reply_selection:
                                      type: string
                                      enum:
                                        - random
                                        - round_robin
                                  required:
                                    - id
                                    - keywords
                                    - entry_node_id
                                    - public_reply_enabled
                                    - public_replies
                                    - public_reply_selection
                            required:
                              - nodes
                          - type: 'null'
                      targets:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              pattern: >-
                                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            channel:
                              type: string
                              enum:
                                - instagram
                                - facebook
                            account_id:
                              type: string
                            account_name:
                              description: >-
                                The Instagram username or Facebook Page name.
                                Null when the account is no longer connected to
                                this workspace.
                              type:
                                - string
                                - 'null'
                            target_type:
                              description: >-
                                scheduled_post waits for a post Replier will
                                publish and becomes post when it does.
                                unchosen_post answers nothing until a post is
                                chosen: any other comment target on the same
                                account replaces it when saved, so send the new
                                target without the unchosen_post.
                              type: string
                              enum:
                                - post
                                - next_post
                                - all_future_posts
                                - story_replies
                                - story_mentions
                                - next_story
                                - story
                                - message
                                - scheduled_post
                                - unchosen_post
                            post_id:
                              type:
                                - string
                                - 'null'
                            scheduled_post_id:
                              anyOf:
                                - type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                - type: 'null'
                            post_permalink:
                              type:
                                - string
                                - 'null'
                            post_label:
                              type:
                                - string
                                - 'null'
                            post_image_url:
                              type:
                                - string
                                - 'null'
                            activated_at:
                              anyOf:
                                - type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                                - type: 'null'
                            resolved_at:
                              description: >-
                                When a next_post, next_story or scheduled_post
                                target took this post or story and became a post
                                or story target. Null for a target chosen
                                directly.
                              anyOf:
                                - type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                                - type: 'null'
                            expires_at:
                              anyOf:
                                - type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                                - type: 'null'
                            resolution_source:
                              anyOf:
                                - type: string
                                  enum:
                                    - comment_webhook
                                    - story_reply_webhook
                                    - dashboard_refresh
                                    - scheduled_reconcile
                                    - publish
                                - type: 'null'
                            queue_position:
                              description: >-
                                For next_post, active or paused: which upcoming
                                post it will use (1 = the next post). Null
                                otherwise.
                              anyOf:
                                - type: integer
                                  exclusiveMinimum: 0
                                  maximum: 9007199254740991
                                - type: 'null'
                            state:
                              description: >-
                                Whether this target answers now. active: it
                                does. waiting_for_next_post,
                                waiting_for_next_story: it takes the account's
                                next post or story. waiting_for_publish: it
                                takes a post when Replier publishes it.
                                waiting_for_post_choice: no post chosen yet, so
                                it answers nothing. expired: the story or post
                                is gone. account_not_subscribed: the account
                                receives no comment or message events; the user
                                retries auto-reply setup in Replier.
                                account_needs_reconnect: Meta rejected the
                                account's token; the user reconnects it in
                                Replier. account_disconnected: the account is no
                                longer connected to this workspace.
                              type: string
                              enum:
                                - active
                                - waiting_for_next_post
                                - waiting_for_next_story
                                - waiting_for_publish
                                - waiting_for_post_choice
                                - expired
                                - account_not_subscribed
                                - account_needs_reconnect
                                - account_disconnected
                          required:
                            - id
                            - channel
                            - account_id
                            - target_type
                            - post_id
                            - post_permalink
                            - post_label
                            - post_image_url
                            - activated_at
                            - resolved_at
                            - expires_at
                            - resolution_source
                      lifetime:
                        description: >-
                          Running counters since the automation was created. Not
                          comparable with period performance, and dms_sent /
                          matches is not a delivery rate.
                        type: object
                        properties:
                          matches:
                            description: >-
                              Every matched comment or message since creation,
                              including ones skipped before a DM.
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          dms_sent:
                            description: >-
                              Messages sent since creation. Each message-flow
                              step counts separately, so one recipient can add
                              several.
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          interactions:
                            description: >-
                              Interactions since creation, as the Replier
                              automation list shows: runs whose first message
                              was delivered.
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          completed_interactions:
                            description: Interactions whose main DM was sent.
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          last_interaction_at:
                            description: >-
                              When its most recent interaction started. Null
                              when it has none.
                            anyOf:
                              - type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                              - type: 'null'
                        required:
                          - matches
                          - dms_sent
                          - interactions
                          - completed_interactions
                    required:
                      - id
                      - version
                      - name
                      - enabled
                      - keywords
                      - public_reply_enabled
                      - public_replies
                      - public_reply_selection
                      - dm_message
                      - dm_image
                      - follow_gate_enabled
                      - follow_gate_message
                      - follow_gate_button_text
                      - follow_gate_retry_message
                      - follow_gate_retry_button_text
                      - gates
                      - buttons
                      - flow
                      - targets
                      - lifetime
                  period:
                    type: object
                    properties:
                      days:
                        type: integer
                        minimum: 1
                        maximum: 365
                      start:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      end:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                    required:
                      - days
                      - start
                      - end
                  performance:
                    type: object
                    properties:
                      dm_attempts:
                        description: >-
                          Runs that started in the period and reached the DM
                          step: dms_sent + dms_failed + dms_skipped + dms_queued
                          + dms_gated. A multi-message flow run counts once.
                          Matched comments skipped before a DM was created (for
                          example own comments or duplicates) are not included.
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      dms_sent:
                        description: >-
                          Runs whose main DM was delivered. Not the dashboard's
                          DMs sent, which counts every message of a flow: see
                          messages_sent in `GET
                          /v1/workspaces/{workspace_id}/performance`.
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      dms_failed:
                        description: >-
                          Runs whose main DM send errored. Excludes Meta
                          refusals and Free Plan limit stops, which are in
                          dms_skipped.
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      dms_skipped:
                        description: >-
                          Runs not sent because Meta refused this recipient or
                          comment (cannot receive messages, comment deleted,
                          already replied privately) or the Free Plan monthly
                          allowance was used up. Not send failures.
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      dms_queued:
                        description: >-
                          Runs whose main DM has not gone out yet and are not
                          waiting on the recipient. Excludes dms_gated.
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      dms_gated:
                        description: >-
                          Runs paused at a gate the recipient must complete
                          before the main DM is sent: Follow Gate (follow, then
                          tap the button), an opening button to tap, or an email
                          reply. The gate prompt was delivered, so these count
                          as delivered interactions. Not a failure or a backlog;
                          they complete only if the recipient responds.
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      link_clicks:
                        description: >-
                          Clicks on links in any message of these runs,
                          including repeats.
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      clicked_messages:
                        description: Runs in which the recipient clicked at least one link.
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      unique_clickers:
                        description: >-
                          Distinct clicking recipients. Recipient IDs are scoped
                          per channel account, so one person clicking on both
                          Instagram and Facebook counts twice.
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      send_rate:
                        description: >-
                          dms_sent / dm_attempts. dms_gated, dms_skipped and
                          dms_queued lower it without being failures; use
                          dms_failed for actual send errors.
                        type: number
                        minimum: 0
                      message_click_through_rate:
                        description: clicked_messages / dms_sent.
                        type: number
                        minimum: 0
                      clicks_per_sent_dm:
                        description: link_clicks / dms_sent.
                        type: number
                        minimum: 0
                    required:
                      - dm_attempts
                      - dms_sent
                      - dms_failed
                      - dms_skipped
                      - dms_queued
                      - dms_gated
                      - link_clicks
                      - clicked_messages
                      - unique_clickers
                      - send_rate
                      - message_click_through_rate
                      - clicks_per_sent_dm
                  interaction_metrics:
                    description: >-
                      The numbers the Replier dashboard shows for this scope,
                      counted from interactions that started in the period.
                    type: object
                    properties:
                      previous_start:
                        description: Start of the previous period; it ends at period.start.
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      interactions:
                        description: >-
                          Runs whose first message, a gate prompt or the DM, was
                          delivered. A multi-message flow run counts once.
                        type: object
                        properties:
                          value:
                            type: number
                            minimum: 0
                          previous:
                            description: >-
                              The same metric for the equally long period just
                              before.
                            type: number
                            minimum: 0
                        required:
                          - value
                          - previous
                      people_reached:
                        description: >-
                          Distinct recipients of those interactions; people
                          whose run failed or was skipped before a message
                          reached them are not counted. Recipient IDs are scoped
                          per channel account, so one person on Instagram and
                          Facebook counts twice.
                        type: object
                        properties:
                          value:
                            type: number
                            minimum: 0
                          previous:
                            description: >-
                              The same metric for the equally long period just
                              before.
                            type: number
                            minimum: 0
                        required:
                          - value
                          - previous
                      link_click_rate:
                        description: >-
                          Share (0-1) of interactions that sent a link in which
                          the recipient clicked one.
                        type: object
                        properties:
                          value:
                            type: number
                            minimum: 0
                          previous:
                            description: >-
                              The same metric for the equally long period just
                              before.
                            type: number
                            minimum: 0
                        required:
                          - value
                          - previous
                      link_interactions:
                        description: >-
                          Interactions that sent a link. When it is 0,
                          link_click_rate has nothing to measure; it is not a
                          poor result.
                        type: object
                        properties:
                          value:
                            type: number
                            minimum: 0
                          previous:
                            description: >-
                              The same metric for the equally long period just
                              before.
                            type: number
                            minimum: 0
                        required:
                          - value
                          - previous
                      completion_rate:
                        description: >-
                          Share (0-1) of interactions whose main DM was sent.
                          The rest are waiting at a gate or stopped before the
                          DM.
                        type: object
                        properties:
                          value:
                            type: number
                            minimum: 0
                          previous:
                            description: >-
                              The same metric for the equally long period just
                              before.
                            type: number
                            minimum: 0
                        required:
                          - value
                          - previous
                    required:
                      - previous_start
                      - interactions
                      - people_reached
                      - link_click_rate
                      - link_interactions
                      - completion_rate
                  click_locations:
                    description: >-
                      Top 5 countries and cities by link clicks in the period,
                      located by Cloudflare from each click. Clicks without a
                      location are left out.
                    type: object
                    properties:
                      countries:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              description: ISO 3166-1 alpha-2 country code.
                              type: string
                            clicks:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                          required:
                            - country
                            - clicks
                      cities:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                            city:
                              type: string
                            clicks:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                          required:
                            - country
                            - city
                            - clicks
                    required:
                      - countries
                      - cities
                required:
                  - workspace
                  - automation
                  - period
                  - performance
                  - interaction_metrics
                  - click_locations
        default:
          $ref: '#/components/responses/Error'
components:
  responses:
    Error:
      description: Refused
      content:
        application/json:
          schema:
            type: object
            required:
              - error
            properties:
              error:
                type: object
                required:
                  - code
                  - message
                properties:
                  code:
                    type: string
                    description: >-
                      Why the request was refused, such as AUTOMATION_NOT_FOUND
                      or VERSION_CONFLICT. Other fields beside it give details.
                  message:
                    type: string
                    description: The same reason, in English.
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: A Replier API key (rpl_...).

````

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