GroundTruth Reporting API

The Reporting API from GroundTruth — 160 operation(s) for reporting.

Operations 160

GET /reporting/distribution/supply/campaign/{campaign_id} Get Supply System Distribution Campaign #
GET /reporting/distribution/performance/campaign/{campaign_id} Get Performance Distribution Campaign #
GET /reporting/distribution/supply/adgroup/{adgroup_id} Get Supply System Distribution Adgroup #
GET /reporting/distribution/performance/adgroup/{adgroup_id} Get Performance Distribution Adgroup #
GET /reporting/ctv_ott/performance/campaign/{campaign_id} Get Ctv Ott Performance Campaign #
GET /reporting/ctv_ott/performance/campaign/{campaign_id}/adgroups Get Ctv Ott Performance Adgroup #
GET /reporting/dow/campaign/{campaign_id} Get Dow Metrics Campaign #
GET /reporting/dow/creative/{creative_id} Get Dow Metrics Creative #
GET /reporting/timeseries/dow/adgroup/{adgroup_id} Get Timeseries Dow Adgroup #
GET /reporting/dow/adgroup/{adgroup_id} Get Dow Metrics Adgroup #
GET /reporting/tod/adgroup/{adgroup_id} Get Tod Metrics Adgroup #
GET /reporting/tod/weekday/campaign/{campaign_id} Get Tod Weekday Campaign #
GET /reporting/tod/weekday/adgroup/{adgroup_id} Get Tod Weekday Adgroup #
GET /reporting/tod/weekend/adgroup/{adgroup_id} Get Tod Weekend Adgroup #
GET /reporting/tod/weekend/campaign/{campaign_id} Get Tod Weekend Campaign #
GET /reporting/timeseries/dow/campaign/{campaign_id} Get Timeseries Dow Campaign #
GET /reporting/timeseries/dow/campaign/{campaign_id}/adgroups Get Timeseries Dow Campaign Adgroups #
GET /reporting/timeseries/dow/campaign/{campaign_id}/creatives Get Timeseries Dow Campaign Creatives #
GET /reporting/timeseries/dow/creative/{creative_id} Get Timeseries Dow Creative #
GET /reporting/timeseries/dow_tod/campaign/{campaign_id} Get Timeseries Dow Tod Campaign #
GET /reporting/timeseries/dow_tod/campaign/{campaign_id}/adgroups Get Timeseries Dow Tod Campaign Adgroups #
GET /reporting/timeseries/dow_tod/campaign/{campaign_id}/creatives Get Timeseries Dow Tod Campaign Creatives #
GET /reporting/timeseries/dow_tod/adgroup/{adgroup_id} Get Timeseries Dow Tod Adgroup #
GET /reporting/timeseries/dow_tod/creative/{creative_id} Get Timeseries Dow Tod Creative #
GET /reporting/timeseries/tod/imp/campaign/{campaign_id} Get Timeseries Tod Imp Campaign #
GET /reporting/timeseries/tod/campaign/{campaign_id}/adgroups Get Timeseries Tod Campaign Adgroups #
GET /reporting/timeseries/tod/campaign/{campaign_id}/creatives Get Timeseries Tod Creatives Campaign #
GET /reporting/timeseries/tod/adgroup/{adgroup_id} Get Timeseries Tod Adgroup #
GET /reporting/timeseries/tod/creative/{creative_id} Get Timeseries Tod Creative #
GET /reporting/product/campaign/{campaign_id} Get Product Insights Campaign #
GET /reporting/targeting_tactic/adgroup/{adgroup_id} Get Product Insights Adgroup #
GET /reporting/targeting_tactic/creative/{creative_id} Get Product Insights Creative #
GET /reporting/product/campaign/{campaign_id}/targeting Get Product Insights Campaign Targeting #
GET /reporting/product/campaign/{campaign_id}/audience Get Product Insights Campaign Audience #
GET /reporting/product/adgroup/{adgroup_id}/targeting Get Product Insights Adgroup Targeting #
GET /reporting/product/adgroup/{adgroup_id}/audience Get Product Insights Adgroup Audience #
GET /reporting/targeting_tactic/campaign/{campaign_id}/adgroups Get Product Insights Campaign Adgroups #
GET /reporting/targeting_tactic/campaign/{campaign_id}/creatives Get Product Insights Campaign Creatives #
GET /reporting/visitation/lag_window/campaign/{campaign_id} Get Visitation Lag Window Campaign #
GET /reporting/visitation/svl/campaign/{campaign_id} Get Visitation Svl Campaign #
GET /reporting/userinsight/visit Get Userinsight Visit #
GET /reporting/userinsight/visit/adgroup/{adgroup_id} Get Userinsight Visit Adgroup #
GET /reporting/userinsight/visit/campaign/{campaign_id} Get Userinsight Visit Campaign #
GET /reporting/visitation/lag_window/adgroup/{adgroup_id} Get Visitation Lag Window Adgroup #
GET /reporting/visitation/lag_window/creative/{creative_id} Get Visitation Lag Window Creative #
GET /reporting/incremental_visits/campaign/{campaign_id} Get Incremental Visits Campaign #
GET /reporting/incremental_visits/campaign/{campaign_id}/adgroups Get Incremental Visits Campaign Adgroup #
GET /reporting/incremental_visits/campaign/{campaign_id}/creatives Get Incremental Visits Campaign Creatives #
GET /reporting/incremental_visits/adgroup/{adgroup_id} Get Incremental Visits Adgroup #
GET /reporting/incremental_visits/creative/{creative_id} Get Incremental Visits Creative #
GET /reporting/locations/imp/adgroup/{adgroup_id} Get Locations Imp Adgroup #
GET /reporting/locations/imp/campaign/{campaign_id} Get Locations Imp Campaign #
GET /reporting/locations/visit/campaign/{campaign_id} Get Locations Visit Campaign #
GET /reporting/locations/visit/adgroup/{adgroup_id} Get Locations Visit Adgroup #
GET /reporting/top_locations/campaign/{campaign_id} Get Top Locations Campaign #
GET /reporting/top_locations/adgroup/{adgroup_id} Get Top Locations Adgroup #
GET /reporting/top_sv_locations/campaign/{campaign_id} Get Top Sv Locations Campaign #
GET /reporting/top_sv_locations/adgroup/{adgroup_id} Get Top Sv Locations Adgroup #
GET /reporting/top_imp_locations/campaign/{campaign_id} Get Top Imp Locations Campaign #
GET /reporting/top_imp_locations/adgroup/{adgroup_id} Get Top Imp Locations Adgroup #
GET /reporting/totals/account/{account_id} Get Totals Account #
GET /reporting/totals/organization/{organization_id} Get Totals Organization #
POST /reporting/totals/tenant Post Totals Tenant #
GET /reporting/totals/v2/account/{account_id} Get Totals Account V2 #
GET /reporting/tav/campaign/{campaign_id} Get Total Attributed Visits Campaign #
GET /reporting/tav/campaign/{campaign_id}/adgroups Get Total Attributed Visits Campaign Adgroups #
GET /reporting/totals/campaign/{campaign_id} Get Totals Campaign #
GET /reporting/totals/adgroup/{adgroup_id} Get Totals Adgroup #
GET /reporting/demographics/adgroup/{adgroup_id} Get Demographics Partial Adgroup #
GET /reporting/totals/creative/{creative_id} Get Totals Creative #
GET /reporting/totals/campaign/{campaign_id}/creatives Get Totals Campaign Creatives #
GET /reporting/audio/podcast_topic/campaign/{campaign_id} Get Audio Podcast Topic Metrics Campaign #
GET /reporting/audio/podcast_topic/adgroup/{adgroup_id} Get Audio Podcast Topic Metrics Adgroup #
GET /reporting/audio/podcast_series/campaign/{campaign_id} Get Audio Podcast Series Metrics Campaign #
GET /reporting/audio/podcast_series/adgroup/{adgroup_id} Get Audio Podcast Series Metrics Adgroup #
GET /reporting/recommendations/campaign/{campaign_id} Get Campaign Recommendations #
PUT /reporting/recommendations/campaign/{campaign_id}/{recommendation_id}/dismiss Dismiss Recommendation #
PUT /reporting/recommendations/{recommendation_id}/apply Apply Recommendation #
POST /reporting/recommendations/account/{account_id}/count Get Recommendation Count #
POST /reporting/foot_traffic_attribution Get Foot Traffic Attribution #
POST /reporting/foot_traffic_attribution/detailed Get Foot Traffic Attribution Detailed #
GET /reporting/foot_traffic_attribution/v2/order/{order_id}/summary Get Foot Traffic Attribution V2 Order Summary #
GET /reporting/foot_traffic_attribution/v2/order/{order_id}/detailed Get Foot Traffic Attribution V2 Detailed #
GET /reporting/fp_poitag/campaign/{campaign_id} Get Fp Poitag Campaign #
GET /reporting/fp_poitag/adgroup/{adgroup_id} Get Fp Poitag Adgroup #
GET /reporting/mobile/category/campaign/{campaign_id} Get Mobile Category Campaign #
GET /reporting/mobile/category/adgroup/{adgroup_id} Get Mobile Category Adgroup #
GET /reporting/mobile/category/campaign/{campaign_id}/adgroups Get Mobile Category All Adgroups #
GET /reporting/demographics/campaign/{campaign_id} Get Demographics Partial Campaign #
GET /reporting/demographics/campaign/{campaign_id}/age-gender-distribution Get Age Gender Distribution Campaign #
GET /reporting/demographic/adgroups/{adgroup_id}/age_gender_distribution Get Age Gender Distribution Adgroup #
GET /reporting/audience_affinity/creative/{creative_id} Get Audience Affinity Creative #
GET /reporting/audience/category/campaign/{campaign_id} Get Audience Category Campaign #
GET /reporting/audience_affinity/campaign/{campaign_id} Get Audience Affinity Campaign #
GET /reporting/brand_affinity/adgroup/{adgroup_id} Get Brand Affinity Adgroup #
GET /reporting/brand_affinity/campaign/{campaign_id} Get Brand Affinity Campaign #
GET /reporting/brand_affinity/campaigns/{campaign_id}/adgroups Get Brand Affinity Campaign Adgroups #
GET /reporting/brand_affinity/campaigns/{campaign_id}/creatives Get Brand Affinity Campaign Creatives #
GET /reporting/brand_affinity/creative/{creative_id} Get Brand Affinity Creative #
GET /reporting/userinsight/imp/adgroup/{adgroup_id} Get Imp Membership Breakdown Adgroup #
GET /reporting/userinsight/imp/campaign/{campaign_id} Get Imp Membership Breakdown Campaign #
GET /reporting/audience_affinity/campaign/{campaign_id}/adgroups Get Audience Affinity Campaign Adgroups #
GET /reporting/audience_affinity/campaign/{campaign_id}/creatives Get Audience Affinity Campaign Creatives #
GET /reporting/audience_affinity/v2/campaign/{campaign_id} Get Audience Affinity Campaign V2 #
GET /reporting/audience_affinity/v2/campaign/{campaign_id}/adgroups Get Audience Affinity Campaign Adgroups V2 #
GET /reporting/audience_affinity/v2/creative/{creative_id} Get Audience Affinity Creative V2 #
GET /reporting/audience_affinity/v2/{campaign_id}/creatives Get Audience Affinity Campaign Creatives V2 #
GET /reporting/audience_affinity/adgroup/{adgroup_id} Get Audience Affinity Adgroup #
GET /reporting/audience_affinity/v2/adgroup/{adgroup_id} Get Audience Affinity Adgroup V2 #
GET /reporting/audience/category/campaign/{campaign_id}/adgroups Get Audience Category Campaign All Adgroups #
GET /reporting/audience/category/campaign/{campaign_id}/creatives Get Audience Category Campaign Creatives #
GET /reporting/audience/category/adgroup/{adgroup_id} Get Audience Category Adgroup #
GET /reporting/audience/category/creative/{creative_id} Get Audience Category Creative #
GET /reporting/audience/v1/campaign/{campaign_id} Get Audience V1 Breakdown Campaign #
GET /reporting/audience/v1/adgroup/{adgroup_id} Get Audience V1 Breakdown Adgroup #
GET /reporting/audience/v1/creative/{creative_id} Get Audience V1 Breakdown Creative #
GET /reporting/audience/behavioral/campaigns/{campaign_id}/adgroups Get Audience Behavioral Campaign Adgroups #
GET /reporting/audience/behavioral/campaigns/{campaign_id}/creatives Get Audience Behavioral Campaign Creatives #
GET /reporting/audience/v2/campaign/{campaign_id} Get Audience V2 Breakdown Campaign #
GET /reporting/audience/v2/adgroup/{adgroup_id} Get Audience V2 Breakdown Adgroup #
GET /reporting/audience/behavioral/adgroup/{adgroup_id} Get Audience Behavioral Adgroup #
GET /reporting/audience/behavioral/creative/{creative_id} Get Audience Behavioral Creative #
GET /reporting/audience/segments/behavioral/adgroup/{adgroup_id} Get Audience Segments Behavioral Adgroup #
GET /reporting/audience/segments/behavioral/campaign/{campaign_id} Get Audience Segments Behavioral Campaign #
GET /reporting/audience/behavioral/campaign/{campaign_id} Get Audience Behavioral Campaign #
GET /reporting/audience/v2/creative/{creative_id} Get Audience V2 Breakdown Creative #
GET /reporting/conversion_tracking/account/{account_id} Get Conversion Tracking Account #
GET /reporting/pixel/campaign/{campaign_id} Get Pixel Campaign #
GET /reporting/pixel/adgroup/{adgroup_id} Get Pixel Adgroup #
GET /reporting/spend/campaign/{campaign_id} Get Campaign Spend #
GET /reporting/spend/adgroup/{adgroup_id} Get Adgroup Spend #
GET /reporting/marketshare/campaign/{campaign_id} Get Marketshare Campaign #
GET /reporting/audio/podcast_ad_position/campaign/{campaign_id} Get Audio Podcast Ad Position Campaign #
GET /reporting/audio/podcast_ad_position/campaign/{campaign_id}/adgroups Get Audio Podcast Ad Position Campaign Adgroups #
GET /reporting/audio/streaming_genre/campaign/{campaign_id} Get Audio Streaming Genre Campaign #
GET /reporting/audio/streaming_genre/adgroup/{adgroup_id} Get Audio Streaming Genre Adgroup #
GET /reporting/audio/streaming_genre/campaign/{campaign_id}/adgroups Get Audio Streaming Genre Campaign Adgroups #
GET /reporting/daily/campaign/{campaign_id} Get Daily Metrics Campaign #
GET /reporting/audio/publisher/campaign/{campaign_id} Get Audio Publisher Campaign #
GET /reporting/audio/publisher/adgroup/{adgroup_id} Get Audio Publisher Adgroup #
GET /reporting/audio/publisher/campaign/{campaign_id}/adgroups Get Audio Publisher Campaign All Adgroups #
GET /reporting/daily/adgroup/{adgroup_id} Get Daily Metrics Adgroup #
GET /reporting/daily/creative/{creative_id} Get Daily Metrics Creative #
GET /reporting/publisher/v2/adgroup/{adgroup_id} Get Ctv Publisher Adgroup #
GET /reporting/publisher/v2/campaign/{campaign_id} Get Ctv Publisher Campaign #
GET /reporting/ctv_ott/publisher/campaigns/{campaign_id}/adgroups Get Ctv Publisher Campaign Adgroups #
GET /reporting/ctv_ott/network/campaign/{campaign_id} Get Ctv Network Campaign #
GET /reporting/ctv_ott/network/campaign/{campaign_id}/adgroups Get Ctv Network Campaign Adgroups #
GET /reporting/ctv_ott/network/adgroup/{adgroup_id} Get Ctv Network Adgroup #
GET /reporting/daily/campaign/{campaign_id}/adgroups Get Daily Metrics Campaign Adgroups #
GET /reporting/daily/campaign/{campaign_id}/creatives Get Daily Metrics Campaign Creatives #
GET /reporting/dooh/v1/campaign/{campaign_id} Get Dooh Campaign V1 #
GET /reporting/dooh/publisher/campaign/{campaign_id} Get Dooh Publisher Campaign #
GET /reporting/banner/adgroup/{adgroup_id} Get Banner Size Breakdown Adgroup #
GET /reporting/banner/campaign/{campaign_id} Get Banner Size Breakdown Campaign #
GET /reporting/dooh/venue_type/campaign/{campaign_id} Get Dooh Venue Type Campaign #
GET /reporting/web_engagement/campaign/{campaign_id} Get Web Engagement Campaign #
GET /reporting/web_engagement/totals/campaign/{campaign_id} Get Web Engagement Totals Campaign #
GET /reporting/web_engagement/adgroup/{adgroup_id} Get Web Engagement Adgroup #
GET /reporting/web_engagement/totals/adgroup/{adgroup_id} Get Web Engagement Totals Adgroup #

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/groundtruth-reporting-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

groundtruth-reporting-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ads Manager Reporting API
  description: Ads Manager API
  version: 1.0.0
servers:
- url: https://api-public.groundtruth.com
  description: Production
tags:
- name: Reporting
paths:
  /reporting/distribution/supply/campaign/{campaign_id}:
    get:
      tags:
      - Reporting
      summary: Get Supply System Distribution Campaign
      description: Gets supply/system distribution for a campaign. key=1 device type, key=2 operating system, key=3 publisher type. Optional all_adgroups breaks out by ad group.
      operationId: get_supply_system_distribution_campaign
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: integer
          title: Campaign Id
      - name: key
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/SupplySystemDistributionKey'
          description: 1=device type, 2=operating system, 3=publisher type
        description: 1=device type, 2=operating system, 3=publisher type
      - name: all_adgroups
        in: query
        required: false
        schema:
          type: boolean
          description: When true, returns distribution grouped by ad group where applicable.
          default: false
          title: All Adgroups
        description: When true, returns distribution grouped by ad group where applicable.
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SupplySystemDistributionCampaignModel'
                title: Response Get Supply System Distribution Campaign Reporting Distribution Supply Campaign  Campaign Id  Get
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Internal Server Error
  /reporting/distribution/performance/campaign/{campaign_id}:
    get:
      tags:
      - Reporting
      summary: Get Performance Distribution Campaign
      description: Gets performance distribution for a campaign. key=1 product. key=2 goal KPI is not available in this version. Optional all_adgroups breaks out by ad group.
      operationId: get_performance_distribution_campaign
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: integer
          title: Campaign Id
      - name: key
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/PerformanceDistributionKey'
          description: 1=product, 2=goal KPI (not available)
        description: 1=product, 2=goal KPI (not available)
      - name: all_adgroups
        in: query
        required: false
        schema:
          type: boolean
          description: When true, returns distribution grouped by ad group.
          default: false
          title: All Adgroups
        description: When true, returns distribution grouped by ad group.
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PerformanceDistributionCampaignModel'
                title: Response Get Performance Distribution Campaign Reporting Distribution Performance Campaign  Campaign Id  Get
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Internal Server Error
  /reporting/distribution/supply/adgroup/{adgroup_id}:
    get:
      tags:
      - Reporting
      summary: Get Supply System Distribution Adgroup
      description: Gets supply/system distribution for an ad group. key=1 device type, key=2 operating system, key=3 publisher type.
      operationId: get_supply_system_distribution_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: key
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/SupplySystemDistributionKey'
          description: 1=device type, 2=operating system, 3=publisher type
        description: 1=device type, 2=operating system, 3=publisher type
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SupplySystemDistributionCampaignModel'
                title: Response Get Supply System Distribution Adgroup Reporting Distribution Supply Adgroup  Adgroup Id  Get
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Internal Server Error
  /reporting/distribution/performance/adgroup/{adgroup_id}:
    get:
      tags:
      - Reporting
      summary: Get Performance Distribution Adgroup
      description: Gets performance distribution for an ad group. key=1 product, key=2 goal KPI.
      operationId: get_performance_distribution_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: key
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/PerformanceDistributionKey'
          description: 1=product, 2=goal KPI
        description: 1=product, 2=goal KPI
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PerformanceDistributionAdgroupModel'
                title: Response Get Performance Distribution Adgroup Reporting Distribution Performance Adgroup  Adgroup Id  Get
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Internal Server Error
  /reporting/ctv_ott/performance/campaign/{campaign_id}:
    get:
      tags:
      - Reporting
      summary: Get Ctv Ott Performance Campaign
      description: Gets CTV/OTT Performance Report for a campaign
      operationId: get_ctv_ott_performance_campaign
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: integer
          title: Campaign Id
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: sort_by
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CtvOttCampaignSortByFieldName'
          default: impressions
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          default: 10
          title: Limit
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CtvOttCampaignPerformanceModel'
                title: Response Get Ctv Ott Performance Campaign Reporting Ctv Ott Performance Campaign  Campaign Id  Get
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Internal Server Error
  /reporting/ctv_ott/performance/campaign/{campaign_id}/adgroups:
    get:
      tags:
      - Reporting
      summary: Get Ctv Ott Performance Adgroup
      description: Gets CTV/OTT Performance Report for adgroups in a campaign
      operationId: get_ctv_ott_performance_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: integer
          title: Campaign Id
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: sort_by
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CtvOttCampaignSortByFieldName'
          default: impressions
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          default: 10
          title: Limit
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CtvOttAdgroupPerformanceModel'
                title: Response Get Ctv Ott Performance Adgroup Reporting Ctv Ott Performance Campaign  Campaign Id  Adgroups Get
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Internal Server Error
  /reporting/dow/campaign/{campaign_id}:
    get:
      tags:
      - Reporting
      summary: Get Dow Metrics Campaign
      description: Gets day-of-week metrics for a campaign; optionally by ad group when all_adgroups=true
      operationId: get_dow_metrics_campaign
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: integer
          title: Campaign Id
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: all_adgroups
        in: query
        required: false
        schema:
          type: boolean
          description: When true, return metrics grouped by day and ad group
          default: false
          title: All Adgroups
        description: When true, return metrics grouped by day and ad group
      - name: limit
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 1
          - type: 'null'
          description: Limit number of records
          title: Limit
        description: Limit number of records
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DowMetricsCampaignModel'
                title: Response Get Dow Metrics Campaign Reporting Dow Campaign  Campaign Id  Get
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Internal Server Error
  /reporting/dow/creative/{creative_id}:
    get:
      tags:
      - Reporting
      summary: Get Dow Metrics Creative
      description: Gets day-of-week metrics for a creative.
      operationId: get_dow_metrics_creative
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: creative_id
        in: path
        required: true
        schema:
          type: integer
          title: Creative Id
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DowMetricsCreativeModel'
                title: Response Get Dow Metrics Creative Reporting Dow Creative  Creative Id  Get
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Internal Server Error
  /reporting/timeseries/dow/adgroup/{adgroup_id}:
    get:
      tags:
      - Reporting
      summary: Get Timeseries Dow Adgroup
      description: Gets timeseries day of week chart for an ad group
      operationId: get_timeseries_dow_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: data_type
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/TimeseriesDowDataType'
          description: 'Data type: chart (averaged metrics) or full (summed totals with video funnel breakdown)'
          default: chart
        description: 'Data type: chart (averaged metrics) or full (summed totals with video funnel breakdown)'
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      - name: fields
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Comma-separated list of fields to return. If none are provided, all will be returned.<br/><br/>Available values:<br/>- day<br/>- adgroup_id<br/>- adgroup_name<br/>- imp<br/>- clks<br/>- spt<br/>- sa<br/>- vst<br/>- oh_vst<br/>- prj_vst<br/>- sar<br/>- ctr<br/>- web<br/>- dir<br/>- ctc<br/>- info<br/>- cpn<br/>- vcr<br/>- video_start<br/>- video_first_quartile<br/>- video_midpoint<br/>- video_third_quartile<br/>- video_end<br/><br/>Note: day, adgroup_id, and adgroup_name are mandatory response fields and will always be returned, regardless of what is passed in fields.'
          title: Fields
        description: 'Comma-separated list of fields to return. If none are provided, all will be returned.<br/><br/>Available values:<br/>- day<br/>- adgroup_id<br/>- adgroup_name<br/>- imp<br/>- clks<br/>- spt<br/>- sa<br/>- vst<br/>- oh_vst<br/>- prj_vst<br/>- sar<br/>- ctr<br/>- web<br/>- dir<br/>- ctc<br/>- info<br/>- cpn<br/>- vcr<br/>- video_start<br/>- video_first_quartile<br/>- video_midpoint<br/>- video_third_quartile<br/>- video_end<br/><br/>Note: day, adgroup_id, and adgroup_name are mandatory response fields and will always be returned, regardless of what is passed in fields.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TimeseriesDowAdgroupModel'
                title: Response Get Timeseries Dow Adgroup Reporting Timeseries Dow Adgroup  Adgroup Id  Get
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Internal Server Error
  /reporting/dow/adgroup/{adgroup_id}:
    get:
      tags:
      - Reporting
      summary: Get Dow Metrics Adgroup
      description: Gets day-of-week metrics for an ad group; optionally by creative when all_creatives=true
      operationId: get_dow_metrics_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: all_creatives
        in: query
        required: false
        schema:
          type: boolean
          description: When true, return metrics grouped by day of week and creative
          default: false
          title: All Creatives
        description: When true, return metrics grouped by day of week and creative
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DowMetricsAdgroupModel'
                title: Response Get Dow Metrics Adgroup Reporting Dow Adgroup  Adgroup Id  Get
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
          description: Internal Server Error
  /reporting/tod/adgroup/{adgroup_id}:
    get:
      tags:
      - Reporting
      summary: Get Tod Metrics Adgroup
      description: Gets time-of-day hourly metrics for an ad group; optionally by creative when all_creatives=true
      operationId: get_tod_metrics_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: Start Date
        description: Date should be in YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Date should be in YYYY-MM-DD
          title: End Date
        description: Date should be in YYYY-MM-DD
      - name: all_creatives
        in: query
        required: false
        schema:
          type: boolean
          description: When true, return metrics grouped by hour and creative
          default: false
          title: All Creatives
        description: When true, return metrics grouped by hour and creative
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      respo

# --- truncated at 32 KB (827 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/groundtruth/refs/heads/main/openapi/groundtruth-reporting-api-openapi.yml