StreetMetrics Ad Groups API

The Ad Groups API from StreetMetrics — 7 operation(s) for ad groups.

Operations 20

GET /public/ad-groups/{id} Retrieve a specific Ad Group by ID #
DELETE /public/ad-groups/{id} Delete an Ad Group #
GET /public/ad-groups Retrieve a list of Ad Groups #
POST /public/ad-groups/transit Create a new Transit Ad Group #
POST /public/ad-groups/stationary Create a new Stationary Ad Group #
POST /public/ad-groups/{id}/assets Attach assets to a Transit Ad Group #
PUT /public/ad-groups/{id}/assets Replace assets attached to a Transit Ad Group #
POST /public/ad-groups/{id}/frames Attach frames to a Stationary Ad Group #
PUT /public/ad-groups/{id}/frames Update frames attached to a Stationary Ad Group #
POST /public/ad-groups/{id}/creatives Attach creatives to a Stationary or Transit Ad group #
GET /ad-groups/{id} Retrieve a specific Ad Group by ID #
DELETE /ad-groups/{id} Delete an Ad Group #
GET /ad-groups Retrieve a list of Ad Groups #
POST /ad-groups/transit Create a new Transit Ad Group #
POST /ad-groups/stationary Create a new Stationary Ad Group #
POST /ad-groups/{id}/assets Attach assets to a Transit Ad Group #
PUT /ad-groups/{id}/assets Replace assets attached to a Transit Ad Group #
POST /ad-groups/{id}/frames Attach frames to a Stationary Ad Group #
PUT /ad-groups/{id}/frames Update frames attached to a Stationary Ad Group #
POST /ad-groups/{id}/creatives Attach creatives to a Stationary or Transit Ad group #

Documentation

Specifications

Other Resources

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/streetmetrics-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

streetmetrics-ad-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Streetmetrics Ad Groups API
  version: '3.0'
  contact: {}
  description: 'Operations tagged Ad Groups across 2 of this provider''s published API definitions: streetmetrics-public-api-docs-json.json, streetmetrics-public-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://dashboard.streetmetrics.io/v3/public/
tags:
- name: Ad Groups
paths:
  /public/ad-groups/{id}:
    get:
      operationId: AdGroupController_getAdGroup
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the Ad Group to retrieve
        schema:
          type: number
      - name: include
        required: false
        in: query
        description: 'Specific entities to include in the AdGroup response. Only valid for AdGroup entities. Possible values: media, assets, frames'
        schema:
          example:
          - media
          type: array
          items:
            type: string
            enum:
            - media
            - assets
            - frames
      responses:
        '200':
          description: Ad Group retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAdGroupResponseDto'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Ad Group not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Retrieve a specific Ad Group by ID
      tags:
      - Ad Groups
    delete:
      operationId: AdGroupController_deleteAdGroup
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      responses:
        '200':
          description: Ad Group deleted successfully
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Delete an Ad Group
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /public/ad-groups:
    get:
      operationId: AdGroupController_getAdGroups
      parameters:
      - name: limit
        required: false
        in: query
        description: Limit the number of results (max 10000)
        schema:
          type: number
      - name: sort
        required: false
        in: query
        description: Field to sort by
        schema:
          type: string
      - name: order
        required: false
        in: query
        description: Order direction
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: cursor
        required: false
        in: query
        description: "Cursor for pagination. \n      The cursor is used to fetch the next set of results in a paginated response.\n      Typically, it is provided in the 'nextCursor' field of the previous response.\n      Usage:\n      - Start by making an initial request without a cursor.\n      - In the response, you'll receive a 'nextCursor' if there are more results to fetch.\n      - Use this 'nextCursor' value as the cursor in your subsequent request to fetch the next page of results.\n      - Continue this process until the 'nextCursor' is null or not provided, indicating there are no more results.\n      Example: \n      \n    ?cursor=12345\n    "
        schema:
          type: string
      - name: include
        required: false
        in: query
        description: 'Specific entities to include in the AdGroup response. Only valid for AdGroup entities. Possible values: media, assets, frames'
        schema:
          example:
          - media
          type: array
          items:
            type: string
            enum:
            - media
            - assets
            - frames
      - name: search
        required: false
        in: query
        description: "Search query string. The syntax is 'fieldName.operation(a|o):value'.\n      The a|o (AND|OR) is optional and if not provided, it is considered as AND.\n    Additional searches can be chained with a comma.\n      Supported operations are:\n          - gt: Greater than\n          - lt: Less than\n          - gte: Greater than or equal to\n          - lte: Less than or equal to\n          - eq: Equal to\n          - ne: Not equal to\n          - ilike: Case-insensitive like\n          - like: Case-sensitive like\n          - startilike: Case-insensitive like at the start\n          - endilike: Case-insensitive like at the end\n          - startlike: Case-sensitive like at the start\n          - endlike: Case-sensitive like at the end\n        Logical operators:\n          - a: AND\n          - o: OR\n        Examples:\n          - assetRef.ilike:E62\n            Returns all assets with assetRef like E62\n          - createdAt.gte:2021-01-01\n            Returns all assets created after 2021-01-01\n          - status.eqo:PENDING,status.eqo:APPROVED\n            Returns all assets with status either PENDING OR APPROVED\n          - name.startilike:John\n            Returns all assets with name starting with John\n          - age.gtea:30,age.lt:40\n            Returns all assets with age greater than or equal to 30 and less than 40"
        schema:
          example: assetRef.ilike:E62,createdAt.gte:2021-01-01
          type: string
      - name: campaignId
        required: false
        in: query
        description: The ID of the campaign to filter ad groups by
        schema:
          type: number
      responses:
        '200':
          description: List of Ad Groups retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAdGroupsResponseDto'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Ad Groups not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Retrieve a list of Ad Groups
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /public/ad-groups/transit:
    post:
      operationId: AdGroupController_createTransitAdGroup
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransitAdGroupDto'
      responses:
        '201':
          description: Ad Group created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Create a new Transit Ad Group
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /public/ad-groups/stationary:
    post:
      operationId: AdGroupController_createStationaryAdGroup
      parameters: []
      requestBody:
        required: true
        description: Details of the Ad Group to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateStationaryAdGroupDto'
      responses:
        '201':
          description: Ad Group created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Create a new Stationary Ad Group
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /public/ad-groups/{id}/assets:
    post:
      operationId: AdGroupController_attachAssets
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      requestBody:
        required: true
        description: The assets to attach to the ad group
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachAssetsToAdGroupDto'
      responses:
        '201':
          description: Assets attached successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachAssetsToAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Attach assets to a Transit Ad Group
      tags:
      - Ad Groups
    put:
      operationId: AdGroupController_putUpdateAssets
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      requestBody:
        required: true
        description: The assets to update (this is a full replacement, any assets not included in this request will be detached)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutUpdateAttachedAssetsDto'
      responses:
        '200':
          description: Assets updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachAssetsToAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Replace assets attached to a Transit Ad Group
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /public/ad-groups/{id}/frames:
    post:
      operationId: AdGroupController_attachFrames
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      requestBody:
        required: true
        description: The frames to attach to the ad group
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachFramesToAdGroupDto'
      responses:
        '201':
          description: Frames attached successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachFramesToAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Attach frames to a Stationary Ad Group
      tags:
      - Ad Groups
    put:
      operationId: AdGroupController_putUpdateFrames
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      requestBody:
        required: true
        description: The frames to update (this is a full replacement, any frames not included in this request will be detached)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachFramesToAdGroupDto'
      responses:
        '200':
          description: Frames updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachFramesToAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Update frames attached to a Stationary Ad Group
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /public/ad-groups/{id}/creatives:
    post:
      operationId: AdGroupController_attachCreatives
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      requestBody:
        required: true
        description: The creatives to attach to the ad group. You can only upload creatives that match the ad group inventory type (Stationary or Transit)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachCreativesToAdGroupDto'
      responses:
        '201':
          description: Creatives attached successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachCreativesToAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Attach creatives to a Stationary or Transit Ad group
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /ad-groups/{id}:
    get:
      operationId: AdGroupController_getAdGroup
      summary: Retrieve a specific Ad Group by ID
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the Ad Group to retrieve
        schema:
          type: number
      - name: include
        required: false
        in: query
        description: 'Specific entities to include in the AdGroup response. Only valid for AdGroup entities. Possible values: media, assets, frames'
        example:
        - media
        schema:
          type: string
      responses:
        '200':
          description: Ad Group retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAdGroupResponseDto'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Ad Group not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      tags:
      - Ad Groups
    delete:
      operationId: AdGroupController_deleteAdGroup
      summary: Delete an Ad Group
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      responses:
        '200':
          description: Ad Group deleted successfully
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /ad-groups:
    get:
      operationId: AdGroupController_getAdGroups
      summary: Retrieve a list of Ad Groups
      parameters:
      - name: limit
        required: false
        in: query
        description: Limit the number of results (max 10000)
        schema:
          type: number
      - name: sort
        required: false
        in: query
        description: Field to sort by
        schema:
          type: string
      - name: order
        required: false
        in: query
        description: Order direction
        schema:
          enum:
          - ASC
          - DESC
          type: string
      - name: cursor
        required: false
        in: query
        description: "Cursor for pagination. \n      The cursor is used to fetch the next set of results in a paginated response.\n      Typically, it is provided in the 'nextCursor' field of the previous response.\n      Usage:\n      - Start by making an initial request without a cursor.\n      - In the response, you'll receive a 'nextCursor' if there are more results to fetch.\n      - Use this 'nextCursor' value as the cursor in your subsequent request to fetch the next page of results.\n      - Continue this process until the 'nextCursor' is null or not provided, indicating there are no more results.\n      Example: \n      \n    ?cursor=12345\n    "
        schema:
          type: string
      - name: include
        required: false
        in: query
        description: 'Specific entities to include in the AdGroup response. Only valid for AdGroup entities. Possible values: media, assets, frames'
        example:
        - media
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: "Search query string. The syntax is 'fieldName.operation(a|o):value'.\n      The a|o (AND|OR) is optional and if not provided, it is considered as AND.\n    Additional searches can be chained with a comma.\n      Supported operations are:\n          - gt: Greater than\n          - lt: Less than\n          - gte: Greater than or equal to\n          - lte: Less than or equal to\n          - eq: Equal to\n          - ne: Not equal to\n          - ilike: Case-insensitive like\n          - like: Case-sensitive like\n          - startilike: Case-insensitive like at the start\n          - endilike: Case-insensitive like at the end\n          - startlike: Case-sensitive like at the start\n          - endlike: Case-sensitive like at the end\n        Logical operators:\n          - a: AND\n          - o: OR\n        Examples:\n          - assetRef.ilike:E62\n            Returns all assets with assetRef like E62\n          - createdAt.gte:2021-01-01\n            Returns all assets created after 2021-01-01\n          - status.eqo:PENDING,status.eqo:APPROVED\n            Returns all assets with status either PENDING OR APPROVED\n          - name.startilike:John\n            Returns all assets with name starting with John\n          - age.gtea:30,age.lt:40\n            Returns all assets with age greater than or equal to 30 and less than 40"
        example: assetRef.ilike:E62,createdAt.gte:2021-01-01
        schema:
          type: string
      - name: campaignId
        required: false
        in: query
        description: The ID of the campaign to filter ad groups by
        schema:
          type: number
      responses:
        '200':
          description: List of Ad Groups retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAdGroupsResponseDto'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Ad Groups not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /ad-groups/transit:
    post:
      operationId: AdGroupController_createTransitAdGroup
      summary: Create a new Transit Ad Group
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransitAdGroupDto_2'
      responses:
        '201':
          description: Ad Group created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /ad-groups/stationary:
    post:
      operationId: AdGroupController_createStationaryAdGroup
      summary: Create a new Stationary Ad Group
      parameters: []
      requestBody:
        required: true
        description: Details of the Ad Group to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateStationaryAdGroupDto_2'
      responses:
        '201':
          description: Ad Group created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /ad-groups/{id}/assets:
    post:
      operationId: AdGroupController_attachAssets
      summary: Attach assets to a Transit Ad Group
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      requestBody:
        required: true
        description: The assets to attach to the ad group
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachAssetsToAdGroupDto_2'
      responses:
        '201':
          description: Assets attached successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachAssetsToAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      tags:
      - Ad Groups
    put:
      operationId: AdGroupController_putUpdateAssets
      summary: Replace assets attached to a Transit Ad Group
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      requestBody:
        required: true
        description: The assets to update (this is a full replacement, any assets not included in this request will be detached)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutUpdateAttachedAssetsDto_2'
      responses:
        '200':
          description: Assets updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachAssetsToAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.streetmetrics.io/v3/public/
  /ad-groups/{id}/frames:
    post:
      operationId: AdGroupController_attachFrames
      summary: Attach frames to a Stationary Ad Group
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      requestBody:
        required: true
        description: The frames to attach to the ad group
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachFramesToAdGroupDto_2'
      responses:
        '201':
          description: Frames attached successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachFramesToAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      tags:
      - Ad Groups
    put:
      operationId: AdGroupController_putUpdateFrames
      summary: Update frames attached to a Stationary Ad Group
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ad group
        schema:
          type: number
      requestBody:
        required: true
        description: The frames to update (this is a full replacement, any frames not included in this request will be detached)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachFramesToAdGroupDto_2'
      responses:
        '200':
          description: Frames updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachFramesToAdGroupResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      tags:
      - Ad Groups
    servers:
    - url: https://dashboard.

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