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

# Compare Competitors Using Video Content Data

> Analyze multiple creators in parallel — posting frequency, engagement rates, top content, and hook formats — starting from usernames alone.

Veedcrawl's profile endpoints let you run competitive analysis across multiple creators at the same time without needing a single video URL up front. Fetch profiles for each competitor, compare their posting behavior and engagement data, isolate their top-performing videos, then extract what makes those videos work. The entire workflow starts from usernames.

<Steps>
  <Step title="Fetch profiles for each competitor">
    Send a profile request for each creator you want to compare. You can run these in parallel — each returns bio info, stats, and up to 24 recent videos with per-post engagement data.

    <CodeGroup>
      ```bash TikTok theme={null}
      # Competitor 1
      curl "https://api.veedcrawl.com/v1/tiktok/profile?username=competitor1&limit=24" \
        -H "x-api-key: YOUR_KEY"

      # Competitor 2
      curl "https://api.veedcrawl.com/v1/tiktok/profile?username=competitor2&limit=24" \
        -H "x-api-key: YOUR_KEY"

      # Competitor 3
      curl "https://api.veedcrawl.com/v1/tiktok/profile?username=competitor3&limit=24" \
        -H "x-api-key: YOUR_KEY"
      ```

      ```bash Instagram theme={null}
      # Competitor 1
      curl "https://api.veedcrawl.com/v1/instagram/profile?username=competitor1&limit=24" \
        -H "x-api-key: YOUR_KEY"

      # Competitor 2
      curl "https://api.veedcrawl.com/v1/instagram/profile?username=competitor2&limit=24" \
        -H "x-api-key: YOUR_KEY"

      # Competitor 3
      curl "https://api.veedcrawl.com/v1/instagram/profile?username=competitor3&limit=24" \
        -H "x-api-key: YOUR_KEY"
      ```
    </CodeGroup>

    Each response contains a `videos` array with the creator's most recent posts. Here is the shape of a single TikTok profile response:

    ```json theme={null}
    {
      "platform": "tiktok",
      "type": "profile",
      "username": "charlidamelio",
      "author": {
        "username": "charlidamelio",
        "displayName": "charli d'amelio",
        "verified": false
      },
      "stats": {
        "followers": null,
        "following": null,
        "likes": null,
        "videos": 847
      },
      "videos": [
        {
          "platform": "tiktok",
          "type": "video",
          "id": "7380000000000000000",
          "url": "https://www.tiktok.com/@charlidamelio/video/738...",
          "title": "this one goes out to everyone who said i couldn't dance",
          "description": "#fyp #dance",
          "stats": { "views": 14200000, "likes": 2100000, "comments": 18400, "shares": 312000 },
          "media": { "type": "video", "duration": 28.4, "thumbnailUrl": "https://..." },
          "tags": ["fyp", "dance"],
          "createdAt": "2026-04-21T14:33:00.000Z"
        }
      ]
    }
    ```

    <Tip>
      Use the `limit` parameter (1–24) to control how many recent videos you retrieve per creator. Set `limit=24` for the most complete picture, or `limit=6` for a faster snapshot of just their most recent content.
    </Tip>
  </Step>

  <Step title="Compare posting frequency, views, hashtags, and engagement">
    With profile data for all three creators, compute summary statistics across the `videos` arrays:

    * **Posting frequency** — count videos per creator over the `createdAt` date range
    * **Average views** — mean of `video.stats.views` across all posts
    * **Top hashtags** — aggregate and rank `video.tags` arrays by frequency
    * **Engagement ratio** — `likes / views` per video, then averaged per creator

    A quick comparison table from three profile responses might look like:

    | Creator     | Videos (30d) | Avg views | Top tag   | Avg engagement |
    | ----------- | ------------ | --------- | --------- | -------------- |
    | competitor1 | 18           | 2.4M      | #fyp      | 14.8%          |
    | competitor2 | 9            | 890K      | #tutorial | 9.2%           |
    | competitor3 | 24           | 410K      | #comedy   | 22.1%          |

    Posting more does not always mean higher engagement. Use these numbers to identify which creator's format is most efficient, not just most active.
  </Step>

  <Step title="Identify each creator's top-performing videos">
    Sort each creator's `videos` array by `stats.views` or `stats.likes` descending. Select the top 2–3 posts per creator to analyze further.

    These are the videos worth extracting content patterns from — they represent what the algorithm is actually rewarding for that creator in that time window.
  </Step>

  <Step title="Extract content structure from top videos">
    Send each top-performing video URL to `/v1/extract` with a prompt designed to surface the patterns you want to compare across creators.

    ```bash theme={null}
    curl -X POST "https://api.veedcrawl.com/v1/extract" \
      -H "x-api-key: YOUR_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "url": "https://www.tiktok.com/@competitor1/video/738...",
        "prompt": "Identify the hook format, key claims, and call to action"
      }'
    ```

    Poll the returned `jobId`:

    ```bash theme={null}
    curl "https://api.veedcrawl.com/v1/extract/job_xyz456" \
      -H "x-api-key: YOUR_KEY"
    ```

    ```json theme={null}
    {
      "jobId": "job_xyz456",
      "status": "completed",
      "resultJson": {
        "hook_format": "Opens with a bold question addressed directly to camera",
        "key_claims": ["Most people are doing this wrong", "You only need three things"],
        "call_to_action": "Follow for part 2"
      }
    }
    ```

    Run this for your top 2–3 videos from each creator. The goal is to surface patterns — which hook formats appear in multiple top performers, which CTA types correlate with higher shares.
  </Step>

  <Step title="Synthesize findings into a competitive audit">
    Combine the quantitative profile data with the qualitative extraction results:

    * **Volume and cadence** — who posts how often, and does cadence correlate with reach?
    * **Format patterns** — which hook types and content structures show up in top performers?
    * **Engagement efficiency** — which creator gets the most engagement per post relative to their audience?
    * **Content gaps** — which topics or formats appear in one creator's top content but not others?
    * **CTA strategies** — follow, link in bio, comment, share — which drives more interaction?

    The full workflow — from three usernames to a structured competitive audit — runs on profile data alone. You only spend credits on extract jobs for the specific videos worth deeper analysis.
  </Step>
</Steps>

<Note>
  Profile endpoints run on the light rate limit tier: 120 requests per minute. At 24 posts per call, that gives you up to **2,880 posts of performance data per minute** — enough to cover dozens of creators in a single run.
</Note>
