> ## 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.

# Track competitor trends with graph reports

> Visualize competitor performance trends over time using time-series graph data.

Pull time-series competitor data to track performance trends over time. Use the data to visualize day-by-day metrics and identify patterns in competitor activity.

***

## Use cases

Tracking competitor trends manually across weeks or months wastes hours. Graph reports give you time-series data ready to visualize instantly.

<CardGroup cols={3}>
  <Card title="Benchmark posting frequency">
    Track when competitors ramp up posting frequency to anticipate market moves or product launches
  </Card>

  <Card title="Prioritize platform investments">
    Compare competitor performance trends on YouTube vs TikTok to guide your channel strategy
  </Card>

  <Card title="Track engagement trends">
    Monitor seasonal patterns in competitor reach to inform your content calendar
  </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 graph reports 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 track over time. See [Metrics](#metrics) section below for all options.

        Request multiple metrics by separating with commas (e.g., `NUMBER_OF_POSTS,TOTAL_ENGAGEMENTS,REACH`)
      </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. The graph report returns daily data points for each date in this range.
      </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_GRAPH` for time-series data
      </td>
    </tr>

    <tr>
      <td>
        `time_scale`
      </td>

      <td>
        Time granularity for data aggregation:

        * `DAILY` - Daily data points (default)
        * `MONTHLY` - Monthly data points

        Optional. Defaults to `DAILY` if not specified.
      </td>
    </tr>
  </tbody>
</Table>

***

### Step 3: Request the graph report

Send a GET request using the parameters from Step 2.

This example gets daily engagement metrics for competitors on Instagram during October 2025:

```http theme={null}
GET https://dashboard.dashsocial.com/reports/data?brand_ids=144&
		channels=INSTAGRAM_COMPETITIVE&
		metrics=TOTAL_ENGAGEMENTS&
		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_GRAPH&
		competitor_source_account_ids=2306810931,230344968,232342925
```

<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": {
        "144": {
            "INSTAGRAM_COMPETITIVE": {
                "TOTAL_ENGAGEMENTS": {
                    "2025-10-01": 0.0,
                    "2025-10-02": 4.0,
                    "2025-10-07": 27.0,
                    "2025-10-08": 8.0
                }
            },
            "avatar": "https://cdn.dashsocial.com/avatars/2306810931.jpeg",
            "data_type": "BRAND",
            "name": "Your Brand",
            "user_has_access": true
        },
        "2306810931": {
            "INSTAGRAM_COMPETITIVE": {
                "TOTAL_ENGAGEMENTS": {
                    "2025-10-01": 120.0,
                    "2025-10-02": 98.0,
                    "2025-10-03": 145.0,
                    "2025-10-05": 203.0
                }
            },
            "avatar": "https://cdn.dashsocial.com/avatars/2306810931.jpeg",
            "data_type": "COMPETITOR",
            "name": "sunny.today",
            "user_has_access": true
        },
        "competitor_average": {
            "data_type": "COMPETITOR_AVERAGE",
            "name": "Competitor Average",
            "user_has_access": true
        }
    },
    "product_category": "COMPETITIVE"
}
```

***

### Step 4: Interpret the response

The response includes time-series 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
* **Date-keyed metrics**: Each metric is organized by date (e.g., `"2025-10-01": 120.0`). This makes it easy to plot on line charts or trend graphs.

<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.
  * **Sparse data** - Not all dates have values. Competitors only appear on dates when they posted content.
</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 graph data, you can:

* **Build trend visualizations** - Plot each competitor as a separate line on a chart
* **Identify posting patterns** - Spot seasonal or weekly patterns in competitor activity
* **Track peak performance days** - See when competitors get the most engagement
* **Compare against your brand** - Benchmark your performance against competitor trends

Related guides:

* [Compare Competitor Metrics Across Platforms](https://developer.dashsocial.com/guides/compare-competitor-metrics-across-platforms)
* [Get Top Competitor Posts Ranked by Performance](https://developer.dashsocial.com/guides/get-top-competitor-posts-ranked-by-performance)
* [View Full API Reference](https://developers.dashsocial.com/reference/get_reports-data)
