GroundTruth Ad Groups API

The Ad Groups API from GroundTruth — 6 operation(s) for ad groups.

Operations 10

POST /adgroups Create Adgroup #
GET /adgroups Get Adgroups #
POST /adgroups/dooh Create Dooh Adgroups #
PUT /adgroups/{adgroup_id} Update Adgroup #
PATCH /adgroups/{adgroup_id} Patch Adgroup #
DELETE /adgroups/{adgroup_id} Delete Adgroup #
GET /adgroups/{adgroup_id} Get Adgroup #
GET /adgroups/{adgroup_id}/avails Get Adgroup Avails #
GET /adgroups/{adgroup_id}/location_filters/download Download Location Filters #
POST /adgroups/{adgroup_id}/clone Clone 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-ad-groups-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-ad-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ads Manager Ad Groups API
  description: Ads Manager API
  version: 1.0.0
servers:
- url: https://api-public.groundtruth.com
  description: Production
tags:
- name: Ad Groups
paths:
  /adgroups:
    post:
      tags:
      - Ad Groups
      summary: Create Adgroup
      description: Creates an ad group
      operationId: create_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      - name: campaign_id
        in: query
        required: true
        schema:
          type: integer
          title: Campaign Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAdgroupModel'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdgroupModel'
        '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
    get:
      tags:
      - Ad Groups
      summary: Get Adgroups
      description: Gets all ad groups in a campaign
      operationId: get_adgroups
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          exclusiveMinimum: 1
          description: Number of ad groups to limit response to
          default: 10
          title: Limit
        description: Number of ad groups to limit response to
      - name: page_num
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: Page number to retrieve. Starts at 1.
          default: 1
          title: Page Num
        description: Page number to retrieve. Starts at 1.
      - name: sort_order
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/SortOrder'
          description: Sorts ad groups by name
          default: asc
        description: Sorts ad groups by name
      - name: updated_since
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: Limits results to ad adgroups updated since a unix timestamp
          title: Updated Since
        description: Limits results to ad adgroups updated since a unix timestamp
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      - name: campaign_id
        in: query
        required: true
        schema:
          type: integer
          title: Campaign Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdgroupsModel'
        '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
  /adgroups/dooh:
    post:
      tags:
      - Ad Groups
      summary: Create Dooh Adgroups
      description: Creates dooh ad groups with plan data
      operationId: create_dooh_adgroups
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      - name: campaign_id
        in: query
        required: true
        schema:
          type: integer
          title: Campaign Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDoohAdgroupsModel'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DOOHAdgroupIDsModel'
        '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
  /adgroups/{adgroup_id}:
    put:
      tags:
      - Ad Groups
      summary: Update Adgroup
      description: Updates an ad group
      operationId: update_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAdgroupModel'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdgroupModel'
        '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
    patch:
      tags:
      - Ad Groups
      summary: Patch Adgroup
      description: Patches an ad group
      operationId: patch_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchAdgroupModel'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdgroupModel'
        '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
    delete:
      tags:
      - Ad Groups
      summary: Delete Adgroup
      description: Deletes an ad group
      operationId: delete_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponseModel'
        '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
    get:
      tags:
      - Ad Groups
      summary: Get Adgroup
      description: Gets an ad group
      operationId: get_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdgroupModel'
        '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
  /adgroups/{adgroup_id}/avails:
    get:
      tags:
      - Ad Groups
      summary: Get Adgroup Avails
      description: Gets avails for an ad group
      operationId: get_adgroup_avails
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdgroupAvailsResponse'
        '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
  /adgroups/{adgroup_id}/location_filters/download:
    get:
      tags:
      - Ad Groups
      summary: Download Location Filters
      description: Downloads location filters for an ad group
      operationId: download_location_filters
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '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
  /adgroups/{adgroup_id}/clone:
    post:
      tags:
      - Ad Groups
      summary: Clone Adgroup
      description: Clones an ad group once per requested media type with the given objective
      operationId: clone_adgroup
      security:
      - api-key: []
      - user-id: []
      - session: []
      parameters:
      - name: adgroup_id
        in: path
        required: true
        schema:
          type: integer
          title: Adgroup Id
      - name: tenant_id
        in: query
        required: true
        schema:
          type: integer
          title: Tenant Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneAdgroupRequestModel'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClonedAdgroupsResponse'
        '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
components:
  schemas:
    BudgetModel-Input:
      properties:
        start_date:
          type: string
          format: date
          title: Start Date
        end_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: End Date
        budget:
          anyOf:
          - type: number
            minimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Budget
          description: If budget is at the campaign level, this will be 0
      type: object
      required:
      - start_date
      - end_date
      - budget
      title: BudgetModel
    CreateUpdateCTVPremiumCategoryModel:
      properties:
        id:
          type: integer
          title: Id
      type: object
      required:
      - id
      title: CreateUpdateCTVPremiumCategoryModel
    CreateUpdateAudioStreamingGenreModel:
      properties:
        id:
          type: integer
          title: Id
      type: object
      required:
      - id
      title: CreateUpdateAudioStreamingGenreModel
    LookalikeAudienceScale:
      oneOf:
      - const: 1
        title: SCALE_2X
      - const: 3
        title: SCALE_4X
      - const: 5
        title: SCALE_6X
      - const: 9
        title: SCALE_10X
      type: integer
      enum:
      - 1
      - 3
      - 5
      - 9
      title: LookalikeAudienceScale
      x-enum-varnames:
      - SCALE_2X
      - SCALE_4X
      - SCALE_6X
      - SCALE_10X
    NeighborhoodModel:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        type:
          $ref: '#/components/schemas/NeighborhoodTargetType'
        sensitivity:
          anyOf:
          - $ref: '#/components/schemas/Sensitivity'
          - type: 'null'
        location_group_metadata:
          anyOf:
          - $ref: '#/components/schemas/app__api__models__LocationGroupMetadata'
          - type: 'null'
      type: object
      required:
      - id
      - name
      - type
      title: NeighborhoodModel
    DOOHPlanDataModel:
      properties:
        creative_formats:
          items:
            $ref: '#/components/schemas/DOOHCreativeFormat'
          type: array
          title: Creative Formats
        creative_sizes:
          items:
            type: string
          type: array
          title: Creative Sizes
          examples:
          - - 1920x1080
            - 1080x1920
        location_groups:
          items:
            $ref: '#/components/schemas/DOOHGeoLocationGroupModel'
          type: array
          title: Location Groups
        locations:
          items:
            oneOf:
            - $ref: '#/components/schemas/DOOHGeoCityModel'
            - $ref: '#/components/schemas/DOOHGeoStateModel'
            - $ref: '#/components/schemas/DOOHGeoZipcodeModel'
            - $ref: '#/components/schemas/DOOHGeoDmaModel'
            - $ref: '#/components/schemas/DOOHGeoCountyModel'
            discriminator:
              propertyName: type
              mapping:
                city: '#/components/schemas/DOOHGeoCityModel'
                county: '#/components/schemas/DOOHGeoCountyModel'
                dma: '#/components/schemas/DOOHGeoDmaModel'
                state: '#/components/schemas/DOOHGeoStateModel'
                zip_code: '#/components/schemas/DOOHGeoZipcodeModel'
          type: array
          title: Locations
        publishers:
          items:
            $ref: '#/components/schemas/DOOHPublisherModel'
          type: array
          title: Publishers
        venue_types:
          items:
            $ref: '#/components/schemas/DOOHVenueTypeModel'
          type: array
          title: Venue Types
        start_date:
          type: string
          format: date
          title: Start Date
        end_date:
          type: string
          format: date
          title: End Date
        iab_code:
          type: string
          title: Iab Code
        account_domain:
          type: string
          title: Account Domain
      type: object
      required:
      - creative_formats
      - location_groups
      - locations
      - publishers
      - venue_types
      - start_date
      - end_date
      - iab_code
      - account_domain
      title: DOOHPlanDataModel
    PatchAdgroupModel:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 256
            minLength: 1
          - type: 'null'
          title: Name
        objective:
          anyOf:
          - $ref: '#/components/schemas/Objective'
          - type: 'null'
          description: Changing objective may clear targeting that does not apply to the new selection; the saved adgroup may not match your request payload.
        media_types:
          anyOf:
          - items:
              $ref: '#/components/schemas/MediaType'
            type: array
            maxItems: 2
            minItems: 1
            uniqueItems: true
          - type: 'null'
          title: Media Types
          description: 'Currently supported: desktop, ott, audio-streaming, audio-podcast, ctv, web, app. Changing media types may clear targeting that does not apply to the new selection; the saved adgroup may not match your request payload.'
        bid_price:
          anyOf:
          - anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            gt: 0
          - type: 'null'
          title: Bid Price
        gross_bid_price:
          anyOf:
          - anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            gt: 0
          - type: 'null'
          title: Gross Bid Price
        budgets:
          anyOf:
          - items:
              $ref: '#/components/schemas/BudgetModel-Input'
            type: array
            minItems: 1
          - type: 'null'
          title: Budgets
        drive_to_locations:
          anyOf:
          - items:
              $ref: '#/components/schemas/CreateUpdateDriveToLocationModel'
            type: array
          - type: 'null'
          title: Drive To Locations
        tracking_pixels:
          anyOf:
          - items:
              $ref: '#/components/schemas/CreateUpdateTrackingPixelModel'
            type: array
          - type: 'null'
          title: Tracking Pixels
        status:
          anyOf:
          - type: integer
            enum:
            - 2
            - 1
          - type: 'null'
          title: Status
        bid_type:
          anyOf:
          - $ref: '#/components/schemas/app__api__routes__constants__BidType'
          - type: 'null'
        dayparting:
          anyOf:
          - items:
              type: integer
              exclusiveMaximum: 336.0
              minimum: 0.0
            type: array
            uniqueItems: true
          - type: 'null'
          title: Dayparting
          description: Each number in the list represents a half hour in a week. 0 is the first half hour (12am - 12:30am) on Sunday. 335 is the last half hour (11:30pm - 12am) on Saturday.
        pacing_mode:
          anyOf:
          - $ref: '#/components/schemas/PacingMode'
          - type: 'null'
          description: Spend pacing for the ad group. Omitted defaults to standard (DEFAULT) pacing.
        rotate_creatives_evenly:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Rotate Creatives Evenly
      type: object
      title: PatchAdgroupModel
    DriveToLocationType:
      oneOf:
      - const: brand
        title: BRAND
      - const: location_group
        title: LOCATION_GROUP
      type: string
      enum:
      - brand
      - location_group
      title: DriveToLocationType
      x-enum-varnames:
      - BRAND
      - LOCATION_GROUP
    AdgroupAvailsResponse:
      properties:
        audience_reach:
          type: integer
          title: Audience Reach
        audience_reach_low:
          type: integer
          title: Audience Reach Low
        audience_reach_high:
          type: integer
          title: Audience Reach High
        daily_available_impressions:
          type: integer
          title: Daily Available Impressions
        daily_available_impressions_low:
          type: integer
          title: Daily Available Impressions Low
        daily_available_impressions_high:
          type: integer
          title: Daily Available Impressions High
        daily_budgeted_impressions:
          anyOf:
          - type: integer
          - type: 'null'
          title: Daily Budgeted Impressions
        deliverability:
          anyOf:
          - type: string
            enum:
            - Fair
            - Good
            - Poor
          - type: 'null'
          title: Deliverability
        deliverability_ratio:
          type: number
          title: Deliverability Ratio
      type: object
      required:
      - audience_reach
      - audience_reach_low
      - audience_reach_high
      - daily_available_impressions
      - daily_available_impressions_low
      - daily_available_impressions_high
      - deliverability
      - deliverability_ratio
      title: AdgroupAvailsResponse
    ClonedAdgroupsResponse:
      properties:
        adgroups:
          items:
            $ref: '#/components/schemas/AdgroupModel'
          type: array
          title: Adgroups
      type: object
      required:
      - adgroups
      title: ClonedAdgroupsResponse
    AgeRange:
      oneOf:
      - const: 18-24
        title: _18_24
      - const: 25-34
        title: _25_34
      - const: 35-44
        title: _35_44
      - const: 45-54
        title: _45_54
      - const: 55-64
        title: _55_64
      - const: 65-999
        title: _65_UP
      - const: unknown
        title: UNKNOWN
      type: string
      enum:
      - 18-24
      - 25-34
      - 35-44
      - 45-54
      - 55-64
      - 65-999
      - unknown
      title: AgeRange
      x-enum-varnames:
      - _18_24
      - _25_34
      - _35_44
      - _45_54
      - _55_64
      - _65_UP
      - UNKNOWN
    DOOHVenueTypeModel:
      properties:
        exclude:
          type: boolean
          title: Exclude
        id:
          type: integer
          title: Id
      type: object
      required:
      - exclude
      - id
      title: DOOHVenueTypeModel
    CreateUpdateDriveToLocationModel:
      properties:
        id:
          type: string
          title: Id
        type:
          $ref: '#/components/schemas/DriveToLocationType'
      type: object
      required:
      - id
      - type
      title: CreateUpdateDriveToLocationModel
    app__api__routes__adgroups__models__CTVPremiumCategoryModel:
      properties:
        id:
          type: integer
          title: Id
        name:
          type: string
          title: Name
      type: object
      required:
      - id
      - name
      title: CTVPremiumCategoryModel
    ProximityMode:
      oneOf:
      - const: in_store
        title: IN_STORE
      - const: on_lot
        title: ON_LOT
      - const: retail_block
        title: RETAIL_BLOCK
      - const: radial
        title: RADIAL
      type: string
      enum:
      - in_store
      - on_lot
      - retail_block
      - radial
      title: ProximityMode
      x-enum-varnames:
      - IN_STORE
      - ON_LOT
      - RETAIL_BLOCK
      - RADIAL
    NeighborhoodType:
      oneOf:
      - const: business
        title: BUSINESS
      - const: residential
        title: RESIDENTIAL
      type: string
      enum:
      - business
      - residential
      title: NeighborhoodType
      x-enum-varnames:
      - BUSINESS
      - RESIDENTIAL
    LocationGroupType:
      oneOf:
      - const: 0
        title: BUSINESS
      - const: 1
        title: RESIDENTIAL
      type: integer
      enum:
      - 0
      - 1
      title: LocationGroupType
      x-enum-varnames:
      - BUSINESS
      - RESIDENTIAL
    CreateUpdateAudioPodcastTopicModel:
      properties:
        id:
          type: integer
          title: Id
      type: object
      required:
      - id
      title: CreateUpdateAudioPodcastTopicModel
    app__api__routes__adgroups__models__PublisherCategoryModel:
      properties:
        id:
          type: integer
          title: Id
        name:
          type: string
          title: Name
      type: object
      required:
      - id
      - name
      title: PublisherCategoryModel
    DOOHGeoCountyModel:
      properties:
        exclude:
          type: boolean
          title: Exclude
        name:
          type: string
          title: Name
        type:
          type: string
          const: county
          title: Type
        county_fips:
          type: string
          title: County Fips
      type: object
      required:
      - exclude
      - name
      - type
      - county_fips
      title: DOOHGeoCountyModel
    CreateUpdateTrackingPixelModel:
      properties:
        id:
          type: integer
          title: Id
      type: object
      required:
      - id
      title: CreateUpdateTrackingPixelModel
    CloneAdgroupRequestModel:
      properties:
        objective:
          $ref: '#/components/schemas/Objective'
        media_types:
          items:
            $ref: '#/components/schemas/MediaType'
          type: array
          minItems: 1
          uniqueItems: true
          title: Media Types
          description: Each unique media type produces one cloned ad group with the given objective. DOOH is not supported (use DOOH-specific creation instead).
      type: object
      required:
      - objective
      - media_types
      title: CloneAdgroupRequestModel
    PacingMode:
      oneOf:
      - const: 0
        tit

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