> ## Documentation Index
> Fetch the complete documentation index at: https://developer.dashsocial.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Compare competitor metrics across platforms

> Benchmark competitor performance metrics across Instagram, Facebook, YouTube, and X.

Pull aggregated competitor metrics across platforms. Use the data to benchmark your performance and inform your content strategy.

***

## Use cases

Tracking competitor performance manually across platforms wastes hours each week. Competitive metric reports give you cross-platform benchmarks instantly.

<CardGroup cols={3}>
  <Card title="Benchmark posting frequency">
    Compare your posting cadence against competitor averages to optimize your content calendar
  </Card>

  <Card title="Prioritize platform investments">
    Identify which platforms competitors post on most to guide your channel strategy
  </Card>

  <Card title="Track engagement trends">
    Monitor competitor engagement over time to spot momentum shifts and emerging opportunities
  </Card>
</CardGroup>

***

## Before you start

Prerequisites:

* **API Key** - Your authentication token - Get your API key from the [API Quickstart](https://developer.dashsocial.com/guides/get-started/quickstart).
* **Brand ID** - Your brand's unique ID
* **Tracked Competitors** - Competitors added in Dash Social

Supported platforms:

* Instagram
* Facebook
* YouTube
* X

<Warning>
  **Add competitors first:** Report on competitors tracked in Dash Social only. Add competitors in **Dash Social → Settings → Competitor Management** before using this API.
</Warning>

<Callout icon="💡" theme="default">
  ### Test in the dashboard first

  Preview competitive metrics in the Dash Social Dashboard to understand the data structure before pulling via API.
</Callout>

***

## Implementation

### Step 1: Get competitor account IDs

Get source account IDs for your tracked competitors. Each competitor has a unique ID per platform.

Send a POST request:

```http theme={null}
POST https://library-backend.dashsocial.com/competitors/search
body = {
  "source": "INSTAGRAM"
}
```

#### Key query parameters

* `source`: Platform to search:
  * Instagram: `INSTAGRAM`
  * Facebook: `FACEBOOK`
  * YouTube: `YOUTUBE`
  * Twitter (X): `TWITTER`

Sample response:

```json theme={null}
[
    {
        "avatar_url": "https://cdn.dashsocial.com/avatars/2306810931.jpeg",
        "brand_details": [
            {
                "brand_id": 144,
                "created_at": "2019-10-22T21:02:14+00:00"
            }
        ],
        "handle": "sunny.today",
        "source": "INSTAGRAM",
        "source_account_id": "2306810931"
    },
    {
        "avatar_url": "https://cdn.dashsocial.com/avatars/230344968.jpeg",
        "brand_details": [
            {
                "brand_id": 144,
                "created_at": "2020-03-15T10:22:33+00:00"
            }
        ],
        "handle": "fashionista_brand",
        "source": "INSTAGRAM",
        "source_account_id": "230344968"
    }
]
```

Collect each `source_account_id` value. Format as comma-separated: `2306810931,230344968`.

<Callout icon="💡" theme="default">
  ### Compare across platforms

  To compare multiple platforms, call `/competitors/search` separately for each platform.
</Callout>

***

### Step 2: Map your report parameters

Map the available parameters before making the API call:

<Table>
  <thead>
    <tr>
      <th>
        Parameter
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `brand_ids`
      </td>

      <td>
        Your brand ID.
      </td>
    </tr>

    <tr>
      <td>
        `channels`
      </td>

      <td>
        Competitive channel to report on:

        * Instagram: `INSTAGRAM_COMPETITIVE`
        * Facebook: `FACEBOOK_COMPETITIVE`
        * YouTube: `YOUTUBE_COMPETITIVE`
        * Twitter (X): `TWITTER_COMPETITIVE`

        Use the `_COMPETITIVE` suffix for competitor reports.
      </td>
    </tr>

    <tr>
      <td>
        `metrics`
      </td>

      <td>
        Metric to rank posts by. See [Metrics](#metrics) section below for all options.

        Request multiple metrics by separating with commas (e.g., `TOTAL_ENGAGEMENTS,REACH,VIEWS`)
      </td>
    </tr>

    <tr>
      <td>
        `competitor_source_account_ids`
      </td>

      <td>
        Comma-separated IDs from Step 1: `2306810931,230344968,232342925`
      </td>
    </tr>

    <tr>
      <td>
        `start_date` / `end_date`
      </td>

      <td>
        Reporting period in `YYYY-MM-DD` format
      </td>
    </tr>

    <tr>
      <td>
        `context_start_date` / `context_end_date`
      </td>

      <td>
        Comparison date range for period-over-period analysis. Use same dates as `start_date` / `end_date` if no comparison needed
      </td>
    </tr>

    <tr>
      <td>
        `report_type`
      </td>

      <td>
        Set to `COMPETITIVE_MULTI_BRAND_METRIC` for this report
      </td>
    </tr>
  </tbody>
</Table>

***

### Step 3: Request the metric report

Send a GET request using the parameters from Step 2.

This example gets total posts published by competitors on Instagram during October 2025:

```http theme={null}
GET https://dashboard.dashsocial.com/reports/data?brand_ids=144&
		channels=INSTAGRAM_COMPETITIVE&
		metrics=NUMBER_OF_POSTS&
		start_date=2025-10-01&
		end_date=2025-10-30&
		context_start_date=2025-09-01&
		context_end_date=2025-09-30&
		report_type=COMPETITIVE_MULTI_BRAND_METRIC&
		competitor_source_account_ids=2306810931,230344968,232342925
```

This request uses:

* Channel: `INSTAGRAM_COMPETITIVE` from Step 2
* Metric: `NUMBER_OF_POSTS` from Step 2
* Reporting period: October 2025 (`start_date` / `end_date`)
* Comparison period: September 2025 (`context_start_date` / `context_end_date`)
* Competitor IDs from Step 1

<Callout icon="💡" theme="default">
  ### Compare multiple platforms

  Make separate requests for each channel: `INSTAGRAM_COMPETITIVE`, `FACEBOOK_COMPETITIVE`, etc. Combine results in your dashboard or analytics tool.
</Callout>

Sample response:

```json theme={null}
{
    "data": {
        "1005579026": {
            "avatar": "https://cdn.dashsocial.com/avatars/1005579026.jpeg",
            "data_type": "COMPETITOR",
            "metrics": {
                "NUMBER_OF_POSTS": {
                    "INSTAGRAM_COMPETITIVE": {
                        "context": 97,
                        "context_change": -0.09278350515463918,
                        "value": 88
                    }
                }
            },
            "name": "competitor_alpha",
            "user_has_access": true
        },
        "144": {
            "avatar": "https://cdn.dashsocial.com/avatars/2306810931.jpeg",
            "data_type": "BRAND",
            "metrics": {
                "NUMBER_OF_POSTS": {
                    "INSTAGRAM_COMPETITIVE": {
                        "context": 48,
                        "context_change": -0.2708333333333333,
                        "value": 35
                    }
                }
            },
            "name": "your_brand",
            "user_has_access": true
        },
        "230344968": {
            "avatar": "https://cdn.dashsocial.com/avatars/230344968.jpeg",
            "data_type": "COMPETITOR",
            "metrics": {
                "NUMBER_OF_POSTS": {
                    "INSTAGRAM_COMPETITIVE": {
                        "context": 25,
                        "context_change": 0.04,
                        "value": 26
                    }
                }
            },
            "name": "competitor_beta",
            "user_has_access": true
        },
        "2306810931": {
            "avatar": "https://cdn.dashsocial.com/avatars/2306810931.jpeg",
            "data_type": "COMPETITOR",
            "metrics": {
                "NUMBER_OF_POSTS": {
                    "INSTAGRAM_COMPETITIVE": {
                        "context": null,
                        "context_change": null,
                        "value": null
                    }
                }
            },
            "name": "competitor_gamma",
            "user_has_access": true
        },
        "competitor_average": {
            "data_type": "COMPETITOR_AVERAGE",
            "metrics": {
                "NUMBER_OF_POSTS": {
                    "INSTAGRAM_COMPETITIVE": {
                        "context": 61.0,
                        "context_change": -0.06557377049180328,
                        "value": 57.0
                    }
                }
            },
            "name": "Competitor Average",
            "user_has_access": true
        }
    },
    "product_category": "COMPETITIVE"
}
```

***

### Step 4: Interpret the response

The response includes data for each competitor plus a `competitor_average` summary.

#### Response structure

Each account includes:

* `data_type`: `BRAND` (your brand), `COMPETITOR`, or `COMPETITOR_AVERAGE`
* `name`: Account handle
* `metrics`: Object containing requested metrics
  * `value`: Metric total for the reporting period
  * `context`: Metric total for the comparison period
  * `context_change`: Decimal representing percent change (e.g., `-0.09` = -9%, `0.04` = +4%)

<Warning>
  **Common errors:**

  * **Invalid channel name** - Use `INSTAGRAM_COMPETITIVE`, not `INSTAGRAM`. Competitive channels require the `_COMPETITIVE` suffix.
  * **Invalid source account ID** - Verify IDs match the `/competitors/search` response from Step 1.
  * **Missing context dates** - Include `context_start_date` and `context_end_date` for trend analysis.
  * **Null values in response** - Competitors may return `null` if no data exists for the period.
</Warning>

***

## Metrics

<Tabs>
  <Tab title="Instagram">
    | Metric Name                   | Description                                                                                                                                                                                                                                  | Metric API Name              |
    | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
    | Avg. Engagement Rate - Public | The average percentage of people who engaged with your competitors' posts, based on their follower count                                                                                                                                     | `AVG_ENGAGEMENT_RATE_PUBLIC` |
    | Avg. Estimated Reach          | The average number of unique accounts that saw your posts published during the Reporting Period. The average estimated number of unique accounts that saw competitor's posts based on their number of followers during the Reporting Period. | `AVG_REACH`                  |
    | Followers - Growth Rate       | The percentage of your competitors' followers increased by over the comparison period                                                                                                                                                        | `FOLLOWER_GROWTH_RATE`       |
    | Followers - Net New           | The net new number of people who followed your competitors' accounts                                                                                                                                                                         | `NET_NEW_FOLLOWERS`          |
    | Number of Posts               | The number of posts you've published during the reporting period                                                                                                                                                                             | `NUMBER_OF_POSTS`            |
    | Comments                      | The number of comments your competitors' posts received                                                                                                                                                                                      | `ORGANIC_COMMENTS`           |
    | Likes                         | The number of likes your competitors' posts received                                                                                                                                                                                         | `ORGANIC_LIKES`              |
    | Followers                     | The total number of followers your competitors have on this channel                                                                                                                                                                          | `TOTAL_FOLLOWERS`            |
  </Tab>

  <Tab title="Facebook">
    | Metric Name             | Description                                                                                                                                                 | Metric API Name              |
    | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
    | Avg. Engagement Rate    | The average engagement rate of your competitors' posts published during the Reporting Period. Engagement Rate = (Comments + Reactions + Shares) / Followers | `AVG_ENGAGEMENT_RATE_PUBLIC` |
    | Followers - Growth Rate | The percentage of your competitors' followers increased by over the comparison period                                                                       | `FOLLOWER_GROWTH_RATE`       |
    | Followers - Net New     | The net new number of people who followed your competitors' accounts                                                                                        | `NET_NEW_FOLLOWERS`          |
    | Number of Posts         | The number of posts you've published during the reporting period                                                                                            | `NUMBER_OF_POSTS`            |
    | Followers               | The total number of followers your competitors have on this channel                                                                                         | `TOTAL_FOLLOWERS`            |
  </Tab>

  <Tab title="Youtube">
    | Metric Name           | Description                                                                    | Metric API Name       |
    | --------------------- | ------------------------------------------------------------------------------ | --------------------- |
    | Comments              | The number of comments your competitors' posts received                        | `COMMENTS`            |
    | Likes                 | The number of likes your competitors' posts received                           | `LIKES`               |
    | Number of Posts       | The number of posts your competitors published during the reporting period     | `NUMBER_OF_POSTS`     |
    | Subscribers - Net New | The net new number of people who have subscribed to your competitors' channels | `SUBSCRIBERS_NET_NEW` |
    | Subscribers           | The total number of subscribers your competitors have on their channels        | `SUBSCRIBERS_TOTAL`   |
    | Video Views           | The number of times the videos on your competitors' channels were viewed       | `TOTAL_VIDEO_VIEWS`   |
  </Tab>

  <Tab title="X">
    | Metric Name             | Description                                                                        | Metric API Name        |
    | ----------------------- | ---------------------------------------------------------------------------------- | ---------------------- |
    | Followers - Growth Rate | The percentage your competitors' followers increased by over the comparison period | `FOLLOWER_GROWTH_RATE` |
    | Likes                   | The number of likes your competitors' posts received                               | `LIKES`                |
    | Followers - Net New     | The net new number of people who followed your competitors' accounts               | `NET_NEW_FOLLOWERS`    |
    | Number of Posts         | The number of posts your competitors published during the reporting period         | `NUMBER_OF_POSTS`      |
    | Quote Posts             | The total number of times your competitors' posts were reposted with a quote       | `QUOTE_POSTS`          |
    | Replies                 | The total number of times your competitors' posts were replied to                  | `REPLIES`              |
    | Reposts                 | The total number of times your competitors' posts were reposted                    | `REPOSTS`              |
    | Engagements             | The total number of engagements your competitors' posts received                   | `TOTAL_ENGAGEMENTS`    |
    | Followers               | The total number of followers your competitors have on this channel                | `TOTAL_FOLLOWERS`      |
    | Total Reposts           | The total number of times your competitors' posts were reposted or quote posted    | `TOTAL_RETWEETS`       |
    | Video Views             | The number of times your competitors' videos were viewed                           | `VIDEO_VIEWS`          |
  </Tab>
</Tabs>

## Next steps

With your competitive metrics, you can:

* **Build benchmarking dashboards** - Compare your brand against competitor averages
* **Track posting cadence trends** - Query monthly to spot competitor posting frequency changes
* **Identify platform priorities** - Compare metrics across channels to see where competitors invest most
* **Inform content strategy** - Use engagement metrics to understand what volume and frequency work for competitors
