Disconetwork Discobeat API

The Discobeat API from Disconetwork — 3 operation(s) for discobeat.

Operations 3

GET /discobeat/reporting/v1/summary/ Channel summary #
GET /discobeat/reporting/v1/publishers/ Publisher breakdown #
GET /discobeat/reporting/v2/report/ Build a report #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/disconetwork-discobeat-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

disconetwork-discobeat-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Disconetwork Discobeat API
  version: '1.0'
  description: 'Operations tagged Discobeat across 2 of this provider''s published API definitions: disconetwork-reporting-api-v1.yml, disconetwork-reporting-api-v2.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.disconetwork.com
  description: Disco API
security:
- ManagementApiKey: []
tags:
- name: Discobeat
paths:
  /discobeat/reporting/v1/summary/:
    get:
      summary: Channel summary
      description: Channel-level metric totals across all your publishers for a date range.
      operationId: getReportingSummary
      parameters:
      - $ref: '#/components/parameters/From'
      - $ref: '#/components/parameters/To'
      responses:
        '200':
          description: Channel totals.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SummaryResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
      tags:
      - Discobeat
    servers:
    - url: https://api.disconetwork.com
      description: Disco API
  /discobeat/reporting/v1/publishers/:
    get:
      summary: Publisher breakdown
      description: Per-publisher metrics.
      operationId: getReportingPublishers
      parameters:
      - $ref: '#/components/parameters/From'
      - $ref: '#/components/parameters/To'
      - name: granularity
        in: query
        required: false
        description: Time-series bucket size.
        schema:
          type: string
          enum:
          - day
          - hour
          default: day
      - name: breakdown
        in: query
        required: false
        description: Series split.
        schema:
          type: string
          enum:
          - page_type
          - widget_type
          - widget_id
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 50
          default: 50
      responses:
        '200':
          description: Per-publisher metrics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishersResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
      tags:
      - Discobeat
    servers:
    - url: https://api.disconetwork.com
      description: Disco API
  /discobeat/reporting/v2/report/:
    get:
      summary: Build a report
      description: 'Returns flat, paginated rows plus summary metrics across the complete filtered result. The response includes only the requested metrics and selected breakdown columns.

        '
      operationId: getReportingV2Report
      parameters:
      - $ref: '#/components/parameters/From_2'
      - $ref: '#/components/parameters/To_2'
      - $ref: '#/components/parameters/Metrics'
      - $ref: '#/components/parameters/TimeGrain'
      - $ref: '#/components/parameters/GroupBy'
      - $ref: '#/components/parameters/PublisherIds'
      - $ref: '#/components/parameters/PageTypes'
      - $ref: '#/components/parameters/WidgetTypes'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Paginated report rows and complete matching summary.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportResponse'
        '400':
          $ref: '#/components/responses/BadRequest_2'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '405':
          $ref: '#/components/responses/MethodNotAllowed_2'
      tags:
      - Discobeat
    servers:
    - url: https://api.disconetwork.com
      description: Disco API
components:
  schemas:
    CalculatedMetrics:
      description: Derived from raw metrics. Ratios are rounded to four decimals. Zero denominators return 0.
      type: object
      required:
      - ctr
      - cvr
      - rps
      - rpl
      properties:
        ctr:
          type: number
          format: float
          example: 0.028
        cvr:
          type: number
          format: float
          example: 0.05
        rps:
          type: number
          format: float
          example: 0.04
        rpl:
          type: number
          format: float
          example: 0.0375
    RawMetrics:
      type: object
      required:
      - impressions
      - clicks
      - conversions
      - channel_payout
      - revenue_with_email
      - revenue_without_email
      - sessions
      - feed_loads
      properties:
        impressions:
          type: integer
          example: 480000
        clicks:
          type: integer
          example: 13440
        conversions:
          type: integer
          example: 672
        channel_payout:
          type: number
          format: float
          example: 9600.0
        revenue_with_email:
          type: number
          format: float
          example: 7200.0
        revenue_without_email:
          type: number
          format: float
          example: 2400.0
        sessions:
          type: integer
          example: 240000
        feed_loads:
          type: integer
          example: 256000
    DateRange:
      type: object
      required:
      - from
      - to
      properties:
        from:
          type: string
          format: date
          example: '2026-06-08'
        to:
          type: string
          format: date
          example: '2026-06-14'
    SeriesPoint:
      type: object
      required:
      - bucket
      - metrics
      properties:
        bucket:
          type: string
          description: A date (granularity=day) or an ISO hour timestamp (granularity=hour).
          example: '2026-06-14'
        page_type:
          type:
          - string
          - 'null'
          description: Present when breakdown=page_type.
          example: ORDER_TRACKING
        widget_type:
          type:
          - string
          - 'null'
          description: Present when breakdown=widget_type.
          example: APP_NATIVE_ESSENTIAL
        widget_id:
          type:
          - string
          - 'null'
          maxLength: 64
          description: Present when breakdown=widget_id.
        metrics:
          $ref: '#/components/schemas/MetricBlock'
    PublishersResponse:
      type: object
      required:
      - channel_id
      - channel_name
      - date_range
      - available_window
      - granularity
      - breakdown
      - has_data
      - publishers
      - pagination
      - data_freshness
      - generated_at
      properties:
        channel_id:
          type: string
          example: 7c3e1a90-4b2d-4f8a-9c11-2e6b5a0d8f34
        channel_name:
          type: string
          example: Acme
        date_range:
          $ref: '#/components/schemas/DateRange'
        available_window:
          $ref: '#/components/schemas/AvailableWindow'
        granularity:
          type: string
          enum:
          - day
          - hour
          example: day
        breakdown:
          type:
          - string
          - 'null'
          enum:
          - page_type
          - widget_type
          - widget_id
          example: page_type
        has_data:
          type: boolean
          example: true
        publishers:
          type: array
          items:
            $ref: '#/components/schemas/PublisherRow'
        pagination:
          $ref: '#/components/schemas/Pagination'
        data_freshness:
          type:
          - string
          - 'null'
          example: '2026-06-14T05:00:00'
        generated_at:
          type:
          - string
          - 'null'
          example: '2026-06-14T05:25:11'
    AvailableWindow:
      type: object
      required:
      - from
      - to
      description: Date range currently available from this reporting source.
      properties:
        from:
          type: string
          format: date
          example: '2026-05-26'
        to:
          type: string
          format: date
          example: '2026-06-30'
    AuthError:
      type: object
      required:
      - detail
      properties:
        detail:
          type: string
          example: Invalid or expired management API key.
    AvailabilityError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          enum:
          - REPORTING_DATA_UNAVAILABLE
          - DATE_RANGE_OUTSIDE_AVAILABLE_WINDOW
        message:
          type: string
        available_window:
          $ref: '#/components/schemas/AvailableWindow'
    PublisherRow:
      type: object
      required:
      - publisher_uuid
      - publisher_name
      - publisher_category
      - metrics
      - series
      properties:
        publisher_uuid:
          type: string
          example: f47ac10b-58cc-4372-a567-0e02b2c3d479
        publisher_name:
          type: string
          example: Acme Tracking Page
        publisher_category:
          type:
          - string
          - 'null'
          example: Logistics
        metrics:
          $ref: '#/components/schemas/MetricBlock'
        series:
          type: array
          items:
            $ref: '#/components/schemas/SeriesPoint'
    SummaryResponse:
      type: object
      required:
      - channel_id
      - channel_name
      - date_range
      - available_window
      - has_data
      - metrics
      - data_freshness
      - generated_at
      properties:
        channel_id:
          type: string
          example: 7c3e1a90-4b2d-4f8a-9c11-2e6b5a0d8f34
        channel_name:
          type: string
          example: Acme
        date_range:
          $ref: '#/components/schemas/DateRange'
        available_window:
          $ref: '#/components/schemas/AvailableWindow'
        has_data:
          type: boolean
          example: true
        metrics:
          $ref: '#/components/schemas/MetricBlock'
        data_freshness:
          type:
          - string
          - 'null'
          example: '2026-06-14T05:00:00'
        generated_at:
          type:
          - string
          - 'null'
          example: '2026-06-14T05:25:11'
    MetricBlock:
      type: object
      required:
      - raw
      - calculated
      properties:
        raw:
          $ref: '#/components/schemas/RawMetrics'
        calculated:
          $ref: '#/components/schemas/CalculatedMetrics'
    Pagination:
      type: object
      required:
      - offset
      - limit
      - total
      properties:
        offset:
          type: integer
          example: 0
        limit:
          type: integer
          example: 50
        total:
          type: integer
          example: 1
    ValidationError:
      type: object
      additionalProperties: true
    ReportRow:
      allOf:
      - type: object
        required:
        - period_start
        - period_end
        properties:
          period_start:
            type: string
            format: date-time
            description: Inclusive UTC period boundary.
            example: '2026-07-18T00:00:00Z'
          period_end:
            type: string
            format: date-time
            description: Exclusive UTC period boundary.
            example: '2026-07-19T00:00:00Z'
          publisher_id:
            type:
            - string
            - 'null'
            example: 9aa17f8c-7746-4218-9025-83d38c406179
          publisher_name:
            type:
            - string
            - 'null'
            example: AfterShip Tracking Page
          page_type:
            type:
            - string
            - 'null'
            example: ORDER_TRACKING
          widget_type:
            type:
            - string
            - 'null'
            example: APP_NATIVE_ESSENTIAL
          widget_id:
            type:
            - string
            - 'null'
            maxLength: 64
      - $ref: '#/components/schemas/MetricValues'
    Metric:
      type: string
      enum:
      - impressions
      - clicks
      - conversions
      - channel_payout
      - revenue_with_email
      - revenue_without_email
      - sessions
      - feed_loads
      - ctr
      - cvr
      - rps
      - rpl
    MetricValues:
      type: object
      properties:
        impressions:
          type: integer
          example: 225072
        clicks:
          type: integer
          example: 8928
        conversions:
          type: integer
          example: 864
        channel_payout:
          type: number
          format: double
          example: 6546.24
        revenue_with_email:
          type: number
          format: double
          example: 4909.68
        revenue_without_email:
          type: number
          format: double
          example: 1636.56
        sessions:
          type: integer
          example: 120000
        feed_loads:
          type: integer
          example: 135000
        ctr:
          type: number
          format: double
          example: 0.0397
        cvr:
          type: number
          format: double
          example: 0.0968
        rps:
          type: number
          format: double
          example: 0.0546
        rpl:
          type: number
          format: double
          example: 0.0485
    ReportResponse:
      type: object
      required:
      - data
      - summary
      - pagination
      - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ReportRow'
        summary:
          $ref: '#/components/schemas/MetricValues'
        pagination:
          $ref: '#/components/schemas/Pagination_2'
        meta:
          $ref: '#/components/schemas/ReportMeta'
    ReportMeta:
      type: object
      required:
      - timezone
      - data_through
      - request_id
      properties:
        timezone:
          type: string
          enum:
          - UTC
        data_through:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-07-22T23:00:00Z'
        request_id:
          type:
          - string
          - 'null'
          example: 7e9fe348-7558-4e28-b8c6-b26ea44899eb
    ErrorResponse:
      type: object
      additionalProperties: true
    Pagination_2:
      type: object
      required:
      - offset
      - limit
      - total
      - has_more
      properties:
        offset:
          type: integer
          example: 0
        limit:
          type: integer
          example: 50
        total:
          type: integer
          example: 36
        has_more:
          type: boolean
          example: false
  responses:
    MethodNotAllowed:
      description: Only GET is supported.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthError'
          example:
            detail: Method "POST" not allowed.
    Unauthorized:
      description: Missing or invalid management API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthError'
          example:
            detail: Invalid or expired management API key.
    BadRequest:
      description: Invalid parameters, unsupported date range, or unavailable reporting data.
      content:
        application/json:
          schema:
            oneOf:
            - $ref: '#/components/schemas/ValidationError'
            - $ref: '#/components/schemas/AvailabilityError'
          examples:
            rangeTooLarge:
              value:
                date_range:
                - Date range cannot exceed 90 days.
            badGranularity:
              value:
                granularity:
                - '"weekly" is not a valid choice.'
            outsideAvailableWindow:
              value:
                code: DATE_RANGE_OUTSIDE_AVAILABLE_WINDOW
                message: Reporting data is available from 2026-05-26 through 2026-06-30.
                available_window:
                  from: '2026-05-26'
                  to: '2026-06-30'
    MethodNotAllowed_2:
      description: Only GET is supported.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            detail: Method "POST" not allowed.
    Unauthorized_2:
      description: Missing or invalid management API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            detail: Invalid or expired management API key.
    BadRequest_2:
      description: Invalid query, unavailable metric or data, date outside the available window, or result over 10,000 rows.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            metricNotAvailable:
              value:
                code: METRIC_NOT_AVAILABLE
                unsupported_metrics:
                - channel_payout
                allowed_metrics:
                - impressions
                - clicks
                - ctr
            outsideAvailableWindow:
              value:
                code: DATE_RANGE_OUTSIDE_AVAILABLE_WINDOW
                message: Reporting data is available from 2026-05-16 through 2026-07-22.
                available_window:
                  from: '2026-05-16'
                  to: '2026-07-22'
            rowLimit:
              value:
                code: REPORT_ROW_LIMIT_EXCEEDED
                message: Report exceeds the interactive row limit. Narrow the date range or remove one or more breakdowns.
                max_rows: 10000
                total_rows: 12000
  parameters:
    From:
      name: from
      in: query
      required: false
      description: Start date YYYY-MM-DD (UTC), inclusive. Default 6 days before `to` (7-day window).
      schema:
        type: string
        format: date
    To:
      name: to
      in: query
      required: false
      description: End date YYYY-MM-DD (UTC), inclusive. Default today. Max range 90 days.
      schema:
        type: string
        format: date
    Metrics:
      name: metrics
      in: query
      required: true
      description: 'Comma-separated metrics enabled for the authenticated channel. Metrics must be unique.

        '
      style: form
      explode: false
      schema:
        type: array
        minItems: 1
        uniqueItems: true
        items:
          $ref: '#/components/schemas/Metric'
      example:
      - impressions
      - clicks
      - channel_payout
      - ctr
    Offset:
      name: offset
      in: query
      required: false
      description: Pagination offset.
      schema:
        type: integer
        minimum: 0
        default: 0
    PageTypes:
      name: page_types
      in: query
      required: false
      description: Comma-separated page-type filter. Filtering does not add a report column.
      style: form
      explode: false
      schema:
        type: array
        maxItems: 250
        items:
          type: string
      example:
      - ORDER_TRACKING
      - THANK_YOU
    From_2:
      name: from
      in: query
      required: true
      description: Start date in UTC, inclusive.
      schema:
        type: string
        format: date
        example: '2026-07-18'
    PublisherIds:
      name: publisher_ids
      in: query
      required: false
      description: Comma-separated publisher UUID filter. Filtering does not add a report column.
      style: form
      explode: false
      schema:
        type: array
        maxItems: 250
        items:
          type: string
      example:
      - 9aa17f8c-7746-4218-9025-83d38c406179
    GroupBy:
      name: group_by
      in: query
      required: false
      description: 'Comma-separated breakdown columns. Up to three are supported except hourly reports, which support at most one.

        '
      style: form
      explode: false
      schema:
        type: array
        maxItems: 3
        uniqueItems: true
        items:
          type: string
          enum:
          - publisher
          - page_type
          - widget_type
          - widget_id
      example:
      - publisher
      - page_type
    Limit:
      name: limit
      in: query
      required: false
      description: JSON page size.
      schema:
        type: integer
        minimum: 1
        maximum: 250
        default: 50
    WidgetTypes:
      name: widget_types
      in: query
      required: false
      description: Comma-separated widget-type filter. Filtering does not add a report column.
      style: form
      explode: false
      schema:
        type: array
        maxItems: 250
        items:
          type: string
      example:
      - APP_NATIVE_ESSENTIAL
    TimeGrain:
      name: time_grain
      in: query
      required: false
      description: 'UTC row interval. Hour supports at most 3 days and one breakdown. Week and month edge periods are clipped to the requested date range.

        '
      schema:
        type: string
        enum:
        - total
        - day
        - week
        - month
        - hour
        default: total
    To_2:
      name: to
      in: query
      required: true
      description: End date in UTC, inclusive. The requested range can span at most 90 days.
      schema:
        type: string
        format: date
        example: '2026-07-20'
  securitySchemes:
    ManagementApiKey:
      type: apiKey
      in: header
      name: x-api-key
x-refined-from:
- disconetwork-reporting-api-v1.yml
- disconetwork-reporting-api-v2.yml