Hootsuite Analytics REST API

Organic and paid social analytics — published posts with lifetime metrics, daily profile metrics, and campaign / ad-set / ad entities and daily metrics for Facebook and Twitter ad accounts. Gated by the analytics:read OAuth scope, which must first be enabled on the app in the developer portal. Batches are capped at 10 profiles or 10 ad accounts per request.

OpenAPI Specification

hootsuite-analytics-api-openapi.yml Raw ↑
x-provenance:
  generated: '2026-08-13'
  method: searched
  source: https://apidocs.hootsuite.com/docs/api/analytics/openapi/openapi.yaml
  note: >-
    Verbatim first-party OpenAPI 3.0 for the Hootsuite Analytics REST API (organic post/profile
    metrics plus paid campaign/ad-set/ad metrics). Reached from the analytics reference linked in
    https://developer.hootsuite.com/docs/using-the-api.
  ownership: >-
    servers[] https://platform.hootsuite.com, info.title "Hootsuite Analytics REST API",
    contact dev.support@hootsuite.com.
openapi: 3.0.0
security:
  - OAuth2:
      - analytics:read
servers:
  - url: https://platform.hootsuite.com
    description: Hootsuite Platform
info:
  description: |
    The Hootsuite Analytics REST API
  version: '1.0'
  title: Hootsuite Analytics REST API
  x-spec-id: analytics-public-api
  x-sdk-id: analytics-public-api
  x-sdk-name: analytics_public_api
  contact:
    email: dev.support@hootsuite.com
  license:
    name: Hootsuite Developer Terms and API License Agreement
    url: https://hootsuite.com/legal/dev-api-terms
tags:
  - name: analytics-api
    description: Hootsuite Analytics API
paths:
  /v1/analytics/posts:
    post:
      operationId: listPosts
      summary: List Posts and Metrics
      description: |
        Fetch posts that have been published on this Social Network, including lifetime metrics for each post.
        `profileId` is a required filter, the others are optional. `lastModified` may start at most 30 days in the past.  `reportingPeriod` may start at most 2 years in the past.
        When filtering by `reportingPeriod`, the creation date of the post is used.
      tags:
        - analytics-api
      parameters:
        - $ref: '#/components/parameters/DatatypeParameter'
        - $ref: '#/components/parameters/NetworkIdParameter'
        - $ref: '#/components/parameters/CursorParameter'
        - $ref: '#/components/parameters/LimitParameter'
      requestBody:
        description: Filters for listing posts
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListPostsRequest'
      responses:
        '200':
          description: Posts returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPostsResponse'
        default:
          description: An error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/analytics/profiles:
    post:
      operationId: listProfilesMetrics
      summary: List Profiles and Metrics
      description: |
        Fetch daily analytics metrics for profiles on this social network.
        `profileId` is a required filter, the others are optional. `lastModified` may start at most 30 days in the past.  `reportingPeriod` may start at most 2 years in the past.
      tags:
        - analytics-api
      parameters:
        - $ref: '#/components/parameters/DatatypeParameter'
        - $ref: '#/components/parameters/NetworkIdParameter'
        - $ref: '#/components/parameters/CursorParameter'
        - $ref: '#/components/parameters/LimitParameter'
      requestBody:
        description: Filters for listing profiles metrics
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListProfilesMetricsRequest'
      responses:
        '200':
          description: Profiles metrics returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProfilesMetricsResponse'
        default:
          description: An error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/analytics/paid/{adEntityCollection}:
    post:
      operationId: listPaid
      summary: List Paid campaigns, ad sets, or ads
      description: |
        Returns paid entities for the collection given in the path (`campaigns`, `adsets`, or `ads`). Use query parameters for ad account type, pagination, and datatype; use the request body for filters (ad accounts, time range, etc.)
        note: In this API, 'adsets' and related response fields map to Facebook ad sets and Twitter ad groups ('adgroups').
      tags:
        - analytics-api
      parameters:
        - $ref: '#/components/parameters/AdEntityCollectionParameter'
        - $ref: '#/components/parameters/DatatypeParameter'
        - $ref: '#/components/parameters/AdAccountTypeParameter'
        - $ref: '#/components/parameters/CursorParameter'
        - $ref: '#/components/parameters/LimitParameter'
      requestBody:
        description: Filters for the selected paid entity collection.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListPaidRequest'
      responses:
        '200':
          description: data successfully returned for the selected paid entity collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPaidResponse'
        default:
          description: An error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/analytics/paid/{adEntityCollection}/metrics:
    post:
      operationId: listPaidMetrics
      summary: List Metrics for paid campaigns, ad sets, or ads
      description: |
        Fetch daily metrics for the collection given in the path (`campaigns`,`adsets`, or `ads`) on the ad account  in the request body.
        Use query parameters for ad account type, limit and pagination, and use the request body for filters (ad accounts, time range, etc.) note: In this API, 'adsets' and related response fields map to Facebook ad sets and Twitter ad groups ('adgroups').
      tags:
        - analytics-api
      parameters:
        - $ref: '#/components/parameters/AdEntityCollectionParameter'
        - $ref: '#/components/parameters/DatatypeParameter'
        - $ref: '#/components/parameters/AdAccountTypeParameter'
        - $ref: '#/components/parameters/CursorParameter'
        - $ref: '#/components/parameters/LimitParameter'
      requestBody:
        description: Filters for listing paid metrics
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListPaidMetricsRequest'
      responses:
        '200':
          description: Paid metrics returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPaidMetricsResponse'
        default:
          description: An error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://platform.hootsuite.com/oauth2/auth
          tokenUrl: https://platform.hootsuite.com/oauth2/token
          scopes:
            offline: Request refresh tokens
            analytics:read: Request analytics API access
  schemas:
    DatatypeEnum:
      type: string
      description: API code for this datatype
      enum:
        - ORGANIC
        - PAID
    NetworkTypeEnum:
      type: string
      description: API code for this Social Network
      enum:
        - FACEBOOKPAGE
        - TWITTER
        - INSTAGRAMBUSINESS
        - TIKTOKBUSINESS
        - YOUTUBECHANNEL
        - PINTEREST
        - THREADS
    EqFilter:
      type: string
      description: Filter by exact match.
      example: abc123
    InFilter:
      type: array
      description: Options to filter against, at least 1 must match.
      items:
        type: string
        example: abc123
      minItems: 1
      maxItems: 10
    DataFieldFilters:
      type: object
      description: Filter by a data field, at least one filter must be specified.
      properties:
        eq:
          $ref: '#/components/schemas/EqFilter'
        in:
          $ref: '#/components/schemas/InFilter'
    TimespanFilter:
      type: object
      description: Timespan to filter against, inclusive. At least one of `since` or `until` must be provided.
      properties:
        since:
          type: string
          format: date
          example: '2025-01-01'
          description: Start of query, if omitted defaults to 1 year ago
        until:
          type: string
          format: date
          example: '2025-02-28'
          description: End of query, if omitted defaults to now
    TimeFieldFilters:
      type: object
      description: Filter by a time field, at least one filter must be specified.
      properties:
        timespan:
          $ref: '#/components/schemas/TimespanFilter'
    RequestFilters:
      type: object
      required:
        - profileId
      properties:
        profileId:
          $ref: '#/components/schemas/DataFieldFilters'
        lastModified:
          $ref: '#/components/schemas/TimeFieldFilters'
        reportingPeriod:
          $ref: '#/components/schemas/TimeFieldFilters'
    ListPostsRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          $ref: '#/components/schemas/RequestFilters'
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          format: uri
          description: URI reference identifying the problem type.
        title:
          type: string
          description: Short, human-readable summary of the problem.
          example: invalid-argument
        status:
          type: integer
          format: int32
          description: HTTP status code for this occurrence of the problem.
          example: 422
        detail:
          type: string
          description: Detailed explanation of the error.
          example: An invalid argument was provided.
        instance:
          type: string
          format: uri
          description: URI reference to the specific occurrence of the problem.
      required:
        - title
        - status
      additionalProperties: true
    Author:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        photo:
          type: string
        url:
          type: string
        displayName:
          type: string
        location:
          type: string
    LabeledType:
      type: object
      required:
        - id
        - label
      properties:
        label:
          type: string
        id:
          type: string
    LinkPublic:
      type: object
      description: Link from the post. UTM is excluded (not populated since beginning of 2024).
      properties:
        extendedUrl:
          type: string
        thumbnailUrl:
          type: string
    MediaPublic:
      type: object
      description: Media item. Do not include thumbnail_url when high_resolution_thumbnail_url is present.
      properties:
        mimeType:
          type: string
          enum:
            - MEDIA_UNKNOWN
            - MEDIA_PHOTO
            - MEDIA_VIDEO
            - MEDIA_ANIMATED_GIF
            - MEDIA_TEXT
            - MEDIA_LINK
            - MEDIA_SWF
            - MEDIA_MUSIC
            - MEDIA_OFFER
            - MEDIA_ALBUM
            - MEDIA_EVENT
            - MEDIA_NOTE
            - MEDIA_AUDIO
        thumbnailUrl:
          type: string
          description: Omit when high_resolution_thumbnail_url is present.
        url:
          type: string
        liveVideo:
          type: boolean
        length:
          type: integer
          format: int64
        title:
          type: string
        content:
          type: string
        highResolutionThumbnailUrl:
          type: string
    AttachmentType:
      type: string
      enum:
        - ATTACHMENT_UNKNOWN
        - ATTACHMENT_PHOTO
        - ATTACHMENT_VIDEO
        - ATTACHMENT_LINK
        - ATTACHMENT_EVENT
        - ATTACHMENT_ALBUM
        - ATTACHMENT_ANIMATED_GIF
    MetricsPublic:
      type: object
      description: |
        All social network and Owly metrics in a single map.
        Keys are metric names (e.g. "likes", "comments", "post_views", "clicks").
        Values are numeric (float64). For metric definitions, see the Help Center documentation.
      additionalProperties:
        type: number
        format: double
    PostMetadata:
      type: object
      description: |
        Platform-specific metadata in a single object. Keys and values depend on social_profile_type.
        Examples: is_popular, object_type, is_boosted_post, is_eligible_for_promotion (Facebook);
        in_reply_to_status_id, in_reply_to_user_id (Twitter); embed_url, video_duration (TikTok).
        Excluded from source data: in_reply_to_link, quote_to_post_id, user_mentions (Twitter); board_id (Pinterest).
      additionalProperties: true
    Post:
      type: object
      required:
        - createdAt
        - profileId
        - externalProfileId
        - sourceLink
        - externalId
      properties:
        createdAt:
          type: string
          format: datetime
          description: timestamp when the post was published.
        lastRefreshed:
          type: string
          format: datetime
          description: timestamp when post data was last refreshed.
        profileId:
          type: string
          description: Hootsuite identifier of the social profile for this post.
          example: '12345678'
        externalProfileId:
          type: string
          description: Identifier of the social profile on the social network this post is associated with.
        sourceLink:
          type: string
          description: URL of the post on the social network.
        externalId:
          type: string
          description: Post ID from the social network.
        createdMember:
          $ref: '#/components/schemas/Author'
        campaign:
          $ref: '#/components/schemas/LabeledType'
        detectedViralAt:
          type: string
          format: datetime
          description: timestamp when the post was detected as viral.
        isViral:
          type: boolean
        tags:
          type: array
          items:
            $ref: '#/components/schemas/LabeledType'
        links:
          type: array
          items:
            $ref: '#/components/schemas/LinkPublic'
        media:
          type: array
          items:
            $ref: '#/components/schemas/MediaPublic'
        attachmentTypes:
          type: array
          items:
            $ref: '#/components/schemas/AttachmentType'
        title:
          type: string
          description: Post title.
        content:
          type: string
          description: Post content.
        metrics:
          $ref: '#/components/schemas/MetricsPublic'
        postType:
          type: string
          description: Post type from the social network (e.g. FACEBOOK_VIDEO, TWITTER_RETWEET, INSTAGRAM_REEL).
        metadata:
          $ref: '#/components/schemas/PostMetadata'
        source:
          $ref: '#/components/schemas/Author'
        autoTags:
          type: array
          items:
            $ref: '#/components/schemas/LabeledType'
    Cursor:
      type: object
      required:
        - cursor
      properties:
        cursor:
          type: string
          description: Cursor for the next/prev page of data, if available
          example: aWQ9NTAK
    CollectionInfo:
      type: object
      properties:
        next:
          $ref: '#/components/schemas/Cursor'
        prev:
          $ref: '#/components/schemas/Cursor'
    Metadata:
      type: object
      required:
        - collectionInfo
      properties:
        collectionInfo:
          $ref: '#/components/schemas/CollectionInfo'
    ListPostsResponse:
      type: object
      required:
        - data
        - metadata
      properties:
        data:
          type: array
          maxItems: 100
          items:
            $ref: '#/components/schemas/Post'
        metadata:
          $ref: '#/components/schemas/Metadata'
    ListProfilesMetricsRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          $ref: '#/components/schemas/RequestFilters'
    BreakdownDimension:
      type: object
      required:
        - breakdownId
        - values
      properties:
        breakdownId:
          type: string
        values:
          type: object
          description: |
            Per-breakdown dimensions (e.g. by type, by country). Each item has a breakdown id and a map of dimension value -> metric value.
          additionalProperties:
            type: number
            format: double
    PageMetric:
      type: object
      required:
        - total
      properties:
        total:
          type: number
          description: total value for the metric
          format: double
        breakdownDimensions:
          type: array
          items:
            $ref: '#/components/schemas/BreakdownDimension'
    PageMetricsOverview:
      type: object
      description: |
        All page level metrics in a single object. Keys are metric names (e.g. "page_reactions", "total_followers").
        Values are numeric (float64). For metric definitions, see the Help Center documentation.
      additionalProperties:
        $ref: '#/components/schemas/PageMetric'
    ProfileMetricsEntry:
      type: object
      required:
        - profileId
        - externalProfileId
        - date
        - metrics
      properties:
        profileId:
          type: string
          description: Hootsuite identifier of this social profile.
          example: '12345678'
        externalProfileId:
          type: string
          description: Identifier of the social profile on the social network.
        date:
          type: string
          format: date
          description: date of the metrics
        metrics:
          $ref: '#/components/schemas/PageMetricsOverview'
    ListProfilesMetricsResponse:
      type: object
      required:
        - data
        - metadata
      properties:
        data:
          type: array
          maxItems: 100
          items:
            $ref: '#/components/schemas/ProfileMetricsEntry'
        metadata:
          $ref: '#/components/schemas/Metadata'
    AdEntityCollectionEnum:
      type: string
      description: Plural collection name used in the URL path. Determines whether the response contains campaigns, ad sets, or ads
      enum:
        - campaigns
        - adsets
        - ads
    AdAccountTypeEnum:
      type: string
      description: Ad account network type
      enum:
        - FACEBOOK
        - TWITTER
    AdAccountFilter:
      type: object
      required:
        - adAccountId
        - organizationId
      description: filter by adAccountId and organizationId
      properties:
        adAccountId:
          type: string
        organizationId:
          type: string
    AdRequestFilters:
      type: object
      required:
        - adAccounts
      properties:
        adAccounts:
          type: array
          items:
            $ref: '#/components/schemas/AdAccountFilter'
        lastModified:
          $ref: '#/components/schemas/TimeFieldFilters'
        reportingPeriod:
          $ref: '#/components/schemas/TimeFieldFilters'
    ListPaidRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          $ref: '#/components/schemas/AdRequestFilters'
    Budget:
      type: object
      description: Budget configuration, when available.
      required:
        - daily
        - lifetime
      properties:
        daily:
          type: number
          format: double
        lifetime:
          type: number
          format: double
    Lifecycle:
      type: object
      description: Schedule window (start and end time), when available.
      properties:
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
    AdMetadata:
      type: object
      description: |
        Platform-specific metadata in a single object. Keys and values depend on ad_account_type.
      additionalProperties: true
    Campaign:
      type: object
      description: Paid campaign entity returned from ad platform integrations.
      required:
        - adAccountId
        - organizationId
        - externalCampaignId
        - campaignStatus
        - name
        - objective
        - adAccountType
        - currency
        - externalAdAccountId
        - marketingMetadata
      properties:
        adAccountId:
          type: string
          description: Internal identifier of the ad account.
        organizationId:
          type: string
          description: Hootsuite orgnization Id.
        externalCampaignId:
          type: string
          description: Campaign identifier from the external ad platform.
        campaignStatus:
          type: string
          description: Current campaign status reported by the external ad platform.
        name:
          type: string
          description: Campaign name.
        objective:
          type: string
          description: Marketing objective configured for the campaign.
        adAccountType:
          $ref: '#/components/schemas/AdAccountTypeEnum'
        currency:
          type: string
          description: Currency code used for campaign spending and budgets (for example, USD).
        externalAdAccountId:
          type: string
          description: Account identifier from the external ad platform.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the campaign was created in the external platform.
        lastModifiedAt:
          type: string
          format: date-time
          description: Timestamp when the campaign was last updated in the external platform.
        hsCollectedAt:
          type: string
          format: date-time
          description: Timestamp when Hootsuite last collected this campaign record.
        budget:
          $ref: '#/components/schemas/Budget'
        lifecycle:
          $ref: '#/components/schemas/Lifecycle'
        marketingMetadata:
          $ref: '#/components/schemas/AdMetadata'
    AdSet:
      type: object
      description: Paid ad set entity returned from ad platform integrations.
      required:
        - adAccountId
        - organizationId
        - externalAdsetId
        - adSetStatus
        - name
        - objective
        - adAccountType
        - currency
        - externalAdAccountId
        - externalCampaignId
        - campaignName
        - marketingMetadata
      properties:
        adAccountId:
          type: string
          description: Internal identifier of the ad account.
        organizationId:
          type: string
          description: Hootsuite orgnization Id.
        externalAdsetId:
          type: string
          description: Ad set identifier from the external ad platform.
        adSetStatus:
          type: string
          description: Current ad set status reported by the external ad platform.
        name:
          type: string
          description: Ad group name.
        objective:
          type: string
          description: Marketing objective associated with this ad set.
        adAccountType:
          $ref: '#/components/schemas/AdAccountTypeEnum'
        currency:
          type: string
          description: Currency code used for spending and budget values (for example, USD).
        externalAdAccountId:
          type: string
          description: Account identifier from the external ad platform.
        externalCampaignId:
          type: string
          description: Parent campaign identifier from the external ad platform.
        campaignName:
          type: string
          description: Name of the parent campaign.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the ad set was created in the external platform.
        lastModifiedAt:
          type: string
          format: date-time
          description: Timestamp when the ad set was last updated in the external platform.
        hsCollectedAt:
          type: string
          format: date-time
          description: Timestamp when Hootsuite last collected this ad set record.
        budget:
          $ref: '#/components/schemas/Budget'
        lifecycle:
          $ref: '#/components/schemas/Lifecycle'
        marketingMetadata:
          $ref: '#/components/schemas/AdMetadata'
    AdMedia:
      type: object
      description: Thumbnail and media URLs for the ad, when available.
      required:
        - thumbnailUrl
        - url
      properties:
        thumbnailUrl:
          type: string
        url:
          type: string
    UTM:
      type: object
      description: UTM objects associated with the ad.
      required:
        - campaign
        - content
        - medium
        - source
        - term
      properties:
        campaign:
          type: string
        content:
          type: string
        medium:
          type: string
        source:
          type: string
        term:
          type: string
    AdLink:
      type: object
      description: Link objects associated with the ad.
      required:
        - extendedUrl
      properties:
        extendedUrl:
          type: string
        utm:
          $ref: '#/components/schemas/UTM'
    Ad:
      type: object
      required:
        - adAccountId
        - organizationId
        - name
        - objective
        - adAccountType
        - currency
        - externalAdAccountId
        - body
        - externalAdId
        - adType
        - adStatus
        - adManagerUrl
        - campaignName
        - adsetName
        - targetUrl
        - externalAdsetId
        - externalCampaignId
        - externalCreativeId
        - tags
        - autoTags
        - attachedUrls
      properties:
        adAccountId:
          type: string
          description: Internal identifier of the ad account.
        organizationId:
          type: string
          description: Hootsuite orgnization Id.
        name:
          type: string
          description: Ad name.
        objective:
          type: string
          description: Marketing objective associated with this ad.
        adAccountType:
          $ref: '#/components/schemas/AdAccountTypeEnum'
        currency:
          type: string
          description: Currency code used for spending and budget values (for example, USD).
        externalAdAccountId:
          type: string
          description: Account identifier from the external ad platform.
        body:
          type: string
          description: Primary ad text or message body.
        externalAdId:
          type: string
          description: Ad identifier from the external ad platform.
        adType:
          type: string
          description: Ad format/type reported by the external ad platform.
        adStatus:
          type: string
          description: Current ad status reported by the external ad platform.
        adManagerUrl:
          type: string
          description: URL to open/manage this ad in the external ad manager.
        campaignName:
          type: string
          description: Name of the parent campaign.
        adsetName:
          type: string
          description: Name of the parent ad set.
        targetUrl:
          type: string
          description: Destination URL the ad points to.
        externalAdsetId:
          type: string
          description: Ad set identifier from the external ad platform.
        externalCampaignId:
          type: string
          description: Campaign identifier from the external ad platform.
        externalCreativeId:
          type: string
          description: Creative identifier associated with this ad in the external platform.
        tags:
          type: array
          description: User-assigned marketing tags attached to the ad.
          items:
            type: string
        autoTags:
          type: array
          description: Automatically generated tags attached to the ad.
          items:
            type: string
        thumbnail:
          $ref: '#/components/schemas/AdMedia'
        links:
          type: array
          items:
            $ref: '#/components/schemas/AdLink'
        attachedUrls:
          type: array
          description: Raw attached URLs associated with the ad content.
          items:
            type: string
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the ad was created in the external platform.
        lastModifiedAt:
          type: string
          format: date-time
          description: Timestamp when the ad was last updated in the external platform.
        hsCollectedAt:
          type: string
          format: date-time
          description: Timestamp when Hootsuite last collected this ad record.
        marketingMetadata:
          $ref: '#/components/schemas/AdMetadata'
    ListPaidResponse:
      type: object
      description: Response payload for listing paid entities (campaigns, ad sets, or ads).
      required:
        - data
        - metadata
      properties:
        data:
          type: array
          maxItems: 100
          items:
            oneOf:
              - $ref: '#/components/schemas/Campaign'
              - $ref: '#/components/schemas/AdSet'
              - $ref: '#/components/schemas/Ad'
        metadata:
          $ref: '#/components/schemas/Metadata'
    ListPaidMetricsRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          $ref: '#/components/schemas/AdRequestFilters'
    CampaignContentDailyMetrics:
      type: object
      description: Daily metrics snapshot for a paid campaign.
      required:
        - adAccountId
        - organizationId
        - externalCampaignId
        - adAccountType
        - externalAdAccountId
        - date
        - metrics
      properties:
        adAccountId:
          type: string
          description: Internal identifier of the ad account.
        adAccountType:
          $ref: '#/components/schemas/AdAccountTypeEnum'
        organizationId:
          type: string
          description: Hootsuite organization Id
        externalCampaignId:
          type: string
          description: Campaign identifier from the external ad platform.
        externalAdAccountId:
          type: string
          description: Account identifier from the external ad platform.
        date:
          type: string
          format: date
          description: Reporting date for this metrics record.
        metrics:
          $ref: '#/components/schemas/MetricsPublic'
    AdsetContentDailyMetrics:
      type: object
      description: Daily metrics snapshot for a paid ad set.
      required:
        - adAccountId
        - organizationId
        - externalAdsetId
        - externalCampaignId
        - adAccountType
        - externalAdAccountId
        - date
        - metrics
      properties:
        adAccountId:
          type: string
          description: Internal identifier of the ad account.
        adAccountType:
          $ref: '#/components/schemas/AdAccountTypeEnum'
        organizationId:
          type: string
          description: Internal identifier of the owning organization.
        externalAdsetId:
          type: string
          description: Ad set identifier from the external ad platform.
        externalCampaignId:
          type: string
          description: Parent campaign identifier from the external ad platform.
        externalAdAccountId:
          type: string
          description: Account identifier from the external ad platform.
        date:
          type: string
          format: date
          description: Reporting date for this metrics record.
        metrics:
          $ref: '#/components/schemas/MetricsPublic'
    AdContentDailyMetrics:
      type: object
      description: Daily metrics snapshot for a paid ad.
      required:
        - adAccountId
        - organizationId
        - externalAdId
        - externalAdsetId
        - externalCampaignId
        - adAccountType
        - externalAdAccountId
        - date
        - metrics
      properties:
        adAccountId:
          type: string
          description: Int

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