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

# Get top competitor posts ranked by performance

> Retrieve and rank top-performing competitor posts by engagement metrics across platforms.

Pull top-performing posts from tracked competitors. Use the data to identify winning content formats and inform your creative strategy.

***

## Use cases

Manually reviewing competitor content across platforms wastes hours each week. Competitive content reports surface top posts instantly.

<CardGroup cols={3}>
  <Card title="Creative inspiration">
    Surface top-performing competitor posts to inspire your creative team with proven formats and themes
  </Card>

  <Card title="Competitive benchmarking">
    Benchmark your brand's best posts against what's resonating with competitor audiences
  </Card>

  <Card title="Format analysis">
    Identify which post formats or topics drive results for competitors to inform your strategy
  </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 content 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": "FACEBOOK"
}
```

#### 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": "FACEBOOK",
        "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": "scaniagroup",
        "source": "FACEBOOK",
        "source_account_id": "230344968"
    }
]
```

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

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

  To analyze competitor content across Instagram and Facebook, 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., `LIKES,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-DDTHH:MM:SSZ` format (ISO 8601 with timezone)
      </td>
    </tr>

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

      <td>
        Comparison period for trend analysis in `YYYY-MM-DDTHH:MM:SSZ` format.
      </td>
    </tr>

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

      <td>
        Set to `COMPETITIVE_CONTENT` for this report
      </td>
    </tr>

    <tr>
      <td>
        `limit`
      </td>

      <td>
        Number of posts to return per competitor. Defaults to 6 if not specified.
      </td>
    </tr>
  </tbody>
</Table>

***

### Step 3: Request the content report

Send a GET request using the parameters from Step 2.

This example gets top Facebook posts from tracked competitors during October 2025, ranked by likes:

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

<Callout icon="💡" theme="default">
  ### Rank by multiple metrics

  Request multiple metrics by separating with commas (e.g., `LIKES,TOTAL_ENGAGEMENTS,REACH`). Posts will be ranked by each metric separately.
</Callout>

Sample response:

```json theme={null}
{
    "data": {
        "2306810931": {
            "avatar": "https://cdn.dashsocial.com/avatars/2306810931.jpeg",
            "content": [
                {
                    "id": "18123456789012345",
                    "caption": "New fall collection drops tomorrow!",
                    "created_at": "2025-10-15T14:22:00+00:00",
                    "media_type": "IMAGE",
                    "media_url": "https://cdn.dashsocial.com/media/12345.jpg",
                    "permalink": "https://www.facebook.com/sunny.today/posts/123456",
                    "metrics": {
                        "LIKES": 1247,
                        "COMMENTS": 89,
                        "SHARES": 34,
                        "TOTAL_ENGAGEMENTS": 1370
                    }
                }
            ],
            "data_type": "COMPETITOR",
            "name": "sunny.today",
            "user_has_access": false
        },
        "230344968": {
            "avatar": "https://cdn.dashsocial.com/avatars/230344968.jpeg",
            "content": [
                {
                    "id": "18345678901234567",
                    "caption": "Monday motivation: Your journey starts with a single step",
                    "created_at": "2025-10-21T09:30:00+00:00",
                    "media_type": "IMAGE",
                    "media_url": "https://cdn.dashsocial.com/media/34567.jpg",
                    "permalink": "https://www.facebook.com/scaniagroup/posts/345678",
                    "metrics": {
                        "LIKES": 2103,
                        "COMMENTS": 156,
                        "SHARES": 78,
                        "TOTAL_ENGAGEMENTS": 2337
                    }
                }
            ],
            "data_type": "COMPETITOR",
            "name": "scaniagroup",
            "user_has_access": false
        }
    },
    "product_category": "COMPETITIVE"
}
```

***

### Step 4: Interpret the response

The response includes top-performing posts for each competitor, sorted by your chosen metric.

#### Response structure

Each competitor includes:

* **`content`**: Array of posts, ranked highest to lowest by the selected metric
* **`id`**: Unique post identifier from the social platform
* **`caption`**: The post text/caption
* **`created_at`**: When the post was published
* **`media_type`**: Type of content (IMAGE, VIDEO, CAROUSEL, etc.)
* **`media_url`**: URL to the media file
* **`permalink`**: Direct link to the post on the social platform
* **`metrics`**: Performance data for each post
* **`name`**: The competitor's social media handle
* **`avatar`**: URL to their profile picture
* **`data_type`**: Always `COMPETITOR` for tracked competitor accounts

<Warning>
  **Common errors:**

  * **Invalid channel name** - Use `FACEBOOK_COMPETITIVE`, not `FACEBOOK`. 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.
</Warning>

***

## Metrics

<Tabs>
  <Tab title="Instagram">
    | Metric Name     | Description                                                                                      | Metric API Name    |
    | --------------- | ------------------------------------------------------------------------------------------------ | ------------------ |
    | Engagement Rate | The percentage of people who engaged with your competitors' posts, based on their follower count | `ENGAGEMENT_RATE`  |
    | Comments        | The number of comments your competitors' posts received                                          | `ORGANIC_COMMENTS` |
    | Likes           | The number of likes your competitors' posts received                                             | `ORGANIC_LIKES`    |
    | Estimated Reach | The estimated number of unique accounts that saw your competitors' posts                         | `REACH`            |
  </Tab>

  <Tab title="Facebook">
    | Metric Name     | Description                                                                                                             | Metric API Name            |
    | --------------- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------- |
    | Comments        | The number of comments your competitors' posts received                                                                 | `COMMENTS`                 |
    | Engagement Rate | The percentage of people who engaged with your competitors' posts, based on their Page Fans                             | `ENGAGEMENT_RATE_PUBLIC`   |
    | Likes           | The number of likes your competitors' posts received                                                                    | `LIKES`                    |
    | Reactions       | The number of reactions your competitors' posts received. Reactions include Like, Love, Care, Haha, Wow, Sad and Angry. | `REACTIONS`                |
    | Shares          | The number of times your competitors' posts were shared                                                                 | `SHARES`                   |
    | Engagements     | The total number of engagements your competitors' posts received                                                        | `TOTAL_ENGAGEMENTS_PUBLIC` |
  </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`         |
    | Video Views | The number of times the videos on your competitors' channels were viewed | `VIDEO_VIEWS`   |
  </Tab>

  <Tab title="X">
    | Metric Name   | Description                                                                  | Metric API Name |
    | ------------- | ---------------------------------------------------------------------------- | --------------- |
    | Engagements   | The total number of engagements your competitors' posts received             | `ENGAGEMENTS`   |
    | Likes         | The number of likes your competitors' posts received                         | `LIKES`         |
    | 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`       |
    | Total Reposts | The total number of times your competitors' posts were reposted              | `TOTAL_REPOSTS` |
    | Video Views   | The number of times your competitors' videos were viewed                     | `VIDEO_VIEWS`   |
  </Tab>
</Tabs>

## Next steps

With your competitive content data, you can:

* **Inspire creative strategy** - Share top posts with your content team to identify successful themes and formats
* **Benchmark performance** - Compare your best posts against competitor performance to set realistic engagement goals
* **Track content trends** - Query weekly or monthly to spot emerging content trends in your industry
* **Inform content calendar** - Analyze which post types and topics resonate to guide your publishing strategy

Related guides:

* [Compare Competitor Metrics Across Platforms](https://developer.dashsocial.com/guides/compare-competitor-metrics-across-platforms)
* [Track Competitor Trends with Graph Reports](https://developer.dashsocial.com/guides/track-competitor-trends-with-graph-reports)
* [View Full API Reference](https://developers.dashsocial.com/reference/get_reports-data)
