# Social Blade Scraper (`maximedupre/socialblade`) Actor

Read public Social Blade profile analytics or one ranking query across YouTube, TikTok, Twitch, Instagram, and Facebook. Get structured rows with creator context, audience and content metrics, ranks, history, growth, earnings ranges, or ranking positions when Social Blade exposes them.

- **URL**: https://apify.com/maximedupre/socialblade.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Social media, Marketing, Developer tools
- **Stats:** 2 total users, 1 monthly users, 83.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 creator analytics

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 📊 Social Blade analytics for creator research

Marketers, agencies, researchers, and developers can submit public Social Blade profile URLs or handles, or run one ranking query. The Actor returns structured rows with creator context, audience and content metrics, grades, ranks, history, growth, earnings ranges, and ranking positions when Social Blade exposes them. Use the rows to compare creators, check a channel, or build a repeatable research dataset.

- Review subscriber, view, upload, and rank fields for a known channel with **[YouTube Channel Statistics](https://apify.com/maximedupre/socialblade/examples/youtube-channel-statistics)**.
- Compare public profile metrics for channels you do not own with **[YouTube Analytics for Other Channels](https://apify.com/maximedupre/socialblade/examples/youtube-analytics-for-other-channels)**.
- Inspect available earnings ranges and growth data with **[YouTube Channel Earnings](https://apify.com/maximedupre/socialblade/examples/youtube-channel-earnings)**.
- Check a public profile snapshot with **[MrBeast Social Blade](https://apify.com/maximedupre/socialblade/examples/mrbeast-social-blade)**.
- Check public audience and profile fields with **[TikTok Stats](https://apify.com/maximedupre/socialblade/examples/tiktok-stats)**.

#### 📦 Creator profiles and ranking rows

Profile analytics returns one row for each resolved public profile. Ranking results return one row for each creator in the selected ranking. Optional fields can be missing when Social Blade does not expose them. Availability and status fields keep the source classification, such as `available`, `partial`, `unavailable`, or `notApplicable`, where the schema defines one.

#### ▶️ Check profiles or one ranking

Choose Profile analytics to submit one or more full Social Blade profile URLs or raw handles. A full URL keeps its platform, while a raw handle uses the selected handle platform. Choose Ranking results to run one Social Blade ranking query with its platform, metric, direction, and optional filters. The two modes use separate forms.

#### ⚙️ Input

The form has two modes. Only fields in the selected form are used.

**Input fields**

| Field | Type | What it does |
| --- | --- | --- |
| `resultType` | string | Selects `profiles` for profile analytics or `ranking` for one ranking query. |
| `profileTargets` | array of strings | Lists full Social Blade profile URLs or raw handles for Profile analytics. Full URLs can use different platforms in one run. |
| `handlePlatform` | string | Selects the platform used for raw handles. Full URLs keep their own platform. This applies only to Profile analytics. |
| `rankingPlatform` | string | Selects the platform for the one Ranking results query. |
| `rankingMetric` | string | Names the Social Blade metric used to rank creators, such as `subscribers`, `followers`, `views`, or `uploads`. |
| `rankingDirection` | string | Chooses whether the highest or lowest metric values appear first. |
| `rankingCountry` | string | Optionally filters the selected ranking by a supported country. Leave it empty for all countries. |
| `rankingCategory` | string | Optionally filters the selected ranking by a supported category. Leave it empty for all categories. |
| `rankingContentType` | string | Optionally filters the selected ranking by a supported content type. Leave it empty for all content. |

**Example input**

This is the public input from the successful current-beta default run:

```json
{
  "resultType": "profiles",
  "profileTargets": [
    "https://socialblade.com/youtube/handle/veritasium"
  ],
  "handlePlatform": "youtube",
  "rankingDirection": "desc"
}
```

#### 🧾 Output

The default dataset contains one record for each successful creator result. The two material output shapes are listed below. The examples come from successful runs of the current beta build. The source may omit optional fields.

**Profile analytics row**

| Field | Type | What it does |
| --- | --- | --- |
| `resultType` | string | Identifies a profile analytics row as `profile`. |
| `platform` | string | Names the platform Social Blade reports for the creator. |
| `profile` | object | Holds the creator identity and public profile context. |
| `profile.name` | string | Creator name shown by Social Blade. |
| `profile.handle` | string | Creator handle shown by Social Blade. |
| `profile.profileUrl` | string URL | Canonical public Social Blade profile URL. |
| `profile.grade` | string | Social Blade grade shown for the creator. |
| `profile.description` | string | Creator description shown by Social Blade. |
| `profile.country` | string | Country shown for the creator. |
| `profile.category` | string | Category shown for the creator. |
| `profile.createdAt` | date string | Creator date shown by Social Blade. |
| `profile.verified` | boolean | Whether Social Blade marks the creator as verified. |
| `profile.linkedAccounts` | array of objects | Public accounts linked from the creator profile. |
| `profile.linkedAccounts[]` | object | One linked public account. |
| `profile.linkedAccounts[].platform` | string | Platform named for the linked account. |
| `profile.linkedAccounts[].url` | string URL | Public URL for the linked account. |
| `profile.linkedAccounts[].handle` | string | Handle shown for the linked account. |
| `audience` | object | Comparable audience measure and its source metric. |
| `audience.value` | integer | Audience count reported for the source metric. |
| `audience.metric` | string | Source metric used for the audience value, such as subscribers or followers. |
| `metrics` | object | Platform-specific content and engagement metrics. |
| `metrics.views` | integer | Total view count reported by Social Blade. |
| `metrics.uploads` | integer | Upload count reported by Social Blade. |
| `metrics.media` | integer | Media count when the platform uses media totals. |
| `metrics.likes` | integer | Likes count reported by Social Blade. |
| `metrics.following` | integer | Following count reported by Social Blade. |
| `metrics.talkingAbout` | integer | Talking-about count reported by Social Blade. |
| `metrics.engagementRate` | number | Engagement rate reported by Social Blade. |
| `metrics.availability` | object | Source classification for each metric. |
| `metrics.availability.views` | string | Whether total views are available, unavailable, or not applicable. |
| `metrics.availability.uploads` | string | Whether uploads are available, unavailable, or not applicable. |
| `metrics.availability.media` | string | Whether media totals are available, unavailable, or not applicable. |
| `metrics.availability.likes` | string | Whether likes are available, unavailable, or not applicable. |
| `metrics.availability.following` | string | Whether following is available, unavailable, or not applicable. |
| `metrics.availability.talkingAbout` | string | Whether talking-about counts are available, unavailable, or not applicable. |
| `metrics.availability.engagementRate` | string | Whether the engagement rate is available, unavailable, or not applicable. |
| `ranks` | object | Applicable Social Blade ranks for the profile. |
| `ranks.global` | integer | Global rank reported by Social Blade. |
| `ranks.country` | integer | Country rank reported by Social Blade. |
| `ranks.category` | integer | Category rank reported by Social Blade. |
| `ranks.audience` | integer | Audience-metric rank reported by Social Blade. |
| `ranks.views` | integer | View rank reported by Social Blade. |
| `ranks.availability` | object | Source classification for each rank. |
| `ranks.availability.global` | string | Whether a global rank is available, unavailable, or not applicable. |
| `ranks.availability.country` | string | Whether a country rank is available, unavailable, or not applicable. |
| `ranks.availability.category` | string | Whether a category rank is available, unavailable, or not applicable. |
| `ranks.availability.audience` | string | Whether an audience rank is available, unavailable, or not applicable. |
| `ranks.availability.views` | string | Whether a view rank is available, unavailable, or not applicable. |
| `history` | object | Source history for profile metrics. |
| `history.status` | string | History status: available, partial, unavailable, or not applicable. |
| `history.daily` | array of objects | Dated daily metric values. |
| `history.daily[]` | object | One dated daily set of metrics. |
| `history.daily[].date` | date string | Date for the daily metrics. |
| `history.daily[].audience` | integer | Audience value for the date. |
| `history.daily[].views` | integer | Total view value for the date. |
| `history.daily[].uploads` | integer | Upload value for the date. |
| `history.daily[].media` | integer | Media value for the date. |
| `history.daily[].likes` | integer | Likes value for the date. |
| `history.daily[].following` | integer | Following value for the date. |
| `history.daily[].talkingAbout` | integer | Talking-about value for the date. |
| `history.daily[].engagementRate` | number | Engagement rate for the date. |
| `history.weekly` | array of objects | Dated weekly metric values. |
| `history.weekly[]` | object | One dated weekly set of metrics. |
| `history.weekly[].date` | date string | Date for the weekly metrics. |
| `history.weekly[].audience` | integer | Audience value for the period. |
| `history.weekly[].views` | integer | Total view value for the period. |
| `history.weekly[].uploads` | integer | Upload value for the period. |
| `history.weekly[].media` | integer | Media value for the period. |
| `history.weekly[].likes` | integer | Likes value for the period. |
| `history.weekly[].following` | integer | Following value for the period. |
| `history.weekly[].talkingAbout` | integer | Talking-about value for the period. |
| `history.weekly[].engagementRate` | number | Engagement rate for the period. |
| `history.monthly` | array of objects | Dated monthly metric values. |
| `history.monthly[]` | object | One dated monthly set of metrics. |
| `history.monthly[].date` | date string | Date for the monthly metrics. |
| `history.monthly[].audience` | integer | Audience value for the period. |
| `history.monthly[].views` | integer | Total view value for the period. |
| `history.monthly[].uploads` | integer | Upload value for the period. |
| `history.monthly[].media` | integer | Media value for the period. |
| `history.monthly[].likes` | integer | Likes value for the period. |
| `history.monthly[].following` | integer | Following value for the period. |
| `history.monthly[].talkingAbout` | integer | Talking-about value for the period. |
| `history.monthly[].engagementRate` | number | Engagement rate for the period. |
| `growth` | object | Source growth changes and longer time series. |
| `growth.status` | string | Growth status: available, partial, unavailable, or not applicable. |
| `growth.deltas` | array of objects | Absolute and percentage growth changes for supported periods. |
| `growth.deltas[]` | object | One growth comparison for a named period. |
| `growth.deltas[].period` | string | Named period for the growth comparison. |
| `growth.deltas[].audienceDelta` | number | Absolute audience change for the period. |
| `growth.deltas[].audienceDeltaPercent` | number | Percentage audience change for the period. |
| `growth.deltas[].viewsDelta` | number | Absolute view change for the period. |
| `growth.deltas[].viewsDeltaPercent` | number | Percentage view change for the period. |
| `growth.series` | array of objects | Weekly or monthly growth values. |
| `growth.series[]` | object | One dated weekly or monthly growth value. |
| `growth.series[].interval` | string | Source interval, `week` or `month`. |
| `growth.series[].date` | date string | Date for the growth value. |
| `growth.series[].audienceDelta` | number | Audience change for the interval. |
| `growth.series[].viewsDelta` | number | View change for the interval. |
| `earnings` | object | Source estimated earnings ranges. |
| `earnings.status` | string | Earnings status: available, partial, unavailable, or not applicable. |
| `earnings.ranges` | array of objects | Low and high estimates for named periods. |
| `earnings.ranges[]` | object | One estimated earnings range. |
| `earnings.ranges[].period` | string | Period for the estimate. |
| `earnings.ranges[].currency` | string | Currency named by Social Blade. |
| `earnings.ranges[].low` | number | Low estimate for the period. |
| `earnings.ranges[].high` | number | High estimate for the period. |
| `projections` | object | Source-based future audience or view projections. |
| `projections.status` | string | Projection status: available, partial, unavailable, or not applicable. |
| `projections.items` | array of objects | Future values for a named metric and period. |
| `projections.items[]` | object | One future audience or view value. |
| `projections.items[].metric` | string | Projected source metric, such as audience or views. |
| `projections.items[].period` | string | Future period named for the projection. |
| `projections.items[].value` | number | Future value reported by Social Blade. |

**Example profile row**

This genuine row is shortened for readability. The long history, growth, earnings, and projection arrays are shown as the JSON string `"..."`; the other shown values are from a successful current-beta profile run.

```json
{
  "resultType": "profile",
  "platform": "youtube",
  "profile": {
    "name": "MrBeast",
    "handle": "mrbeast",
    "profileUrl": "https://socialblade.com/youtube/handle/mrbeast",
    "grade": "A++",
    "description": "SUBSCRIBE FOR A COOKIE!\nNew MrBeast or MrBeast Gaming video every single Saturday at noon eastern time!\nAccomplishments:\n- Raised $20,000,000 To Plant 20,000,000 Trees\n- Removed 30,000,000 pounds of trash from the ocean\n- Helped 2,000 people walk again\n- Helped 1,000 blind people see\n- Helped 1,000 deaf people hear\n- Built wells in Africa\n- Built and gave away 100 houses\n- Adopted every dog in a shelter (twice)\n- Given millions to charity\n- Started my own snack company Feastables\n- Started my own software company Viewstats\n- Gave away a private island (twice)\n- Gave away 1 million meals\n- I counted to 100k\n- Ran a marathon in the world's largest shoes\n- Survived 50 hours in Antarctica\n- Recreated Squid Game in real life\n- Created the largest competition show with 1000 people (Beast Games)\n- Gave $5,000,000 to one person\n- Raised $40,000,000 To Bring Clean Water To Millions Of People\n- Granted 100+ Dream Wishes for Kids Fighting Cancer\n- Gave Away Another $5,000,000 On Beast Games S2",
    "country": "US",
    "category": "entertainment",
    "createdAt": "2012-02-20",
    "linkedAccounts": [
      {
        "platform": "instagram",
        "url": "https://instagram.com/mrbeast",
        "handle": "mrbeast"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/MrBeast",
        "handle": "MrBeast"
      }
    ]
  },
  "audience": {
    "value": 517000000,
    "metric": "subscribers"
  },
  "metrics": {
    "views": 140422111922,
    "uploads": 1002,
    "availability": {
      "views": "available",
      "uploads": "available",
      "media": "notApplicable",
      "likes": "notApplicable",
      "following": "notApplicable",
      "talkingAbout": "notApplicable",
      "engagementRate": "notApplicable"
    }
  },
  "ranks": {
    "global": 11,
    "country": 1,
    "category": 1,
    "audience": 1,
    "views": 6,
    "availability": {
      "global": "available",
      "country": "available",
      "category": "available",
      "audience": "available",
      "views": "available"
    }
  },
  "history": {
    "status": "available",
    "daily": "...",
    "weekly": "...",
    "monthly": "..."
  },
  "growth": {
    "status": "available",
    "deltas": "...",
    "series": "..."
  },
  "earnings": {
    "status": "available",
    "ranges": "..."
  },
  "projections": {
    "status": "available",
    "items": "..."
  }
}
```

**Ranking result row**

| Field | Type | What it does |
| --- | --- | --- |
| `resultType` | string | Identifies a ranking row as `ranking`. |
| `platform` | string | Names the platform Social Blade reports for the creator. |
| `profile` | object | Holds the ranked creator identity and public profile context. |
| `profile.name` | string | Creator name shown by Social Blade. |
| `profile.handle` | string | Creator handle shown by Social Blade. |
| `profile.profileUrl` | string URL | Canonical public Social Blade profile URL. |
| `profile.grade` | string | Social Blade grade when shown. |
| `profile.description` | string | Creator description when shown. |
| `profile.country` | string | Country shown for the creator. |
| `profile.category` | string | Category shown for the creator. |
| `profile.createdAt` | date string | Creator date shown by Social Blade. |
| `profile.verified` | boolean | Whether Social Blade marks the creator as verified. |
| `profile.linkedAccounts` | array of objects | Public accounts linked from the creator profile. |
| `profile.linkedAccounts[]` | object | One linked public account. |
| `profile.linkedAccounts[].platform` | string | Platform named for the linked account. |
| `profile.linkedAccounts[].url` | string URL | Public URL for the linked account. |
| `profile.linkedAccounts[].handle` | string | Handle shown for the linked account. |
| `audience` | object | Comparable audience measure and its source metric. |
| `audience.value` | integer | Audience count reported for the source metric. |
| `audience.metric` | string | Source metric used for the audience value. |
| `metrics` | object | Platform-specific content and engagement metrics. |
| `metrics.views` | integer | Total view count reported by Social Blade. |
| `metrics.uploads` | integer | Upload count reported by Social Blade. |
| `metrics.media` | integer | Media count when the platform uses media totals. |
| `metrics.likes` | integer | Likes count reported by Social Blade. |
| `metrics.following` | integer | Following count reported by Social Blade. |
| `metrics.talkingAbout` | integer | Talking-about count reported by Social Blade. |
| `metrics.engagementRate` | number | Engagement rate reported by Social Blade. |
| `metrics.availability` | object | Source classification for each metric. |
| `metrics.availability.views` | string | Whether total views are available, unavailable, or not applicable. |
| `metrics.availability.uploads` | string | Whether uploads are available, unavailable, or not applicable. |
| `metrics.availability.media` | string | Whether media totals are available, unavailable, or not applicable. |
| `metrics.availability.likes` | string | Whether likes are available, unavailable, or not applicable. |
| `metrics.availability.following` | string | Whether following is available, unavailable, or not applicable. |
| `metrics.availability.talkingAbout` | string | Whether talking-about counts are available, unavailable, or not applicable. |
| `metrics.availability.engagementRate` | string | Whether the engagement rate is available, unavailable, or not applicable. |
| `ranking` | object | Holds the selected ranking position and metric. |
| `ranking.position` | integer | Creator position in the selected Social Blade ranking. |
| `ranking.metric` | string | Source metric used for the selected ranking. |
| `ranking.value` | number | Metric value used for this creator's ranking position. |

**Example ranking row**

This complete row comes from a successful current-beta ranking run:

```json
{
  "resultType": "ranking",
  "platform": "youtube",
  "profile": {
    "profileUrl": "https://socialblade.com/youtube/handle/mrbeast",
    "name": "MrBeast",
    "handle": "mrbeast",
    "description": "SUBSCRIBE FOR A COOKIE!\nNew MrBeast or MrBeast Gaming video every single Saturday at noon eastern time!\nAccomplishments:\n- Raised $20,000,000 To Plant 20,000,000 Trees\n- Removed 30,000,000 pounds of trash from the ocean\n- Helped 2,000 people walk again\n- Helped 1,000 blind people see\n- Helped 1,000 deaf people hear\n- Built wells in Africa\n- Built and gave away 100 houses\n- Adopted every dog in a shelter (twice)\n- Given millions to charity\n- Started my own snack company Feastables\n- Started my own software company Viewstats\n- Gave away a private island (twice)\n- Gave away 1 million meals\n- I counted to 100k\n- Ran a marathon in the world's largest shoes\n- Survived 50 hours in Antarctica\n- Recreated Squid Game in real life\n- Created the largest competition show with 1000 people (Beast Games)\n- Gave $5,000,000 to one person\n- Raised $40,000,000 To Bring Clean Water To Millions Of People\n- Granted 100+ Dream Wishes for Kids Fighting Cancer\n- Gave Away Another $5,000,000 On Beast Games S2",
    "country": "US",
    "category": "entertainment",
    "createdAt": "2012-02-20"
  },
  "audience": {
    "value": 517000000,
    "metric": "subscribers"
  },
  "metrics": {
    "availability": {
      "views": "available",
      "uploads": "available",
      "media": "notApplicable",
      "likes": "notApplicable",
      "following": "notApplicable",
      "talkingAbout": "notApplicable",
      "engagementRate": "notApplicable"
    },
    "views": 140422111922,
    "uploads": 1002
  },
  "ranking": {
    "position": 1,
    "metric": "subscribers",
    "value": 517000000
  }
}
```

#### 💳 Pricing

This Actor uses pay-per-event pricing. The primary event, **Creator analytics**, is charged for each successfully saved creator profile or ranking entry. A run can create more than one primary event when it saves multiple rows. The current tier price is shown by Apify.

#### 🔌 Integrations

Open Social Blade results in the default dataset, export the rows, or read them through the Apify API. The output also provides a link to the default dataset.

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### What is the difference between profile analytics and ranking results?

Profile analytics resolves the URLs or handles you submit. Ranking results runs one ranking query and returns its ranked creator entries. Use one mode per run.

##### Can I mix profile URLs from different platforms?

Yes. Full Social Blade URLs can use different platforms in one profile run. Raw handles use the platform selected in `handlePlatform`.

##### Can I run several ranking queries in one run?

No. Choose one ranking platform, metric, direction, and set of optional filters for each run.

##### What happens when Social Blade does not show a field?

Optional fields can be omitted. History, growth, earnings, and projection objects keep source status values when the schema defines them, and the Actor does not invent missing metrics.

##### Are grades, ranks, and earnings independently verified?

No. They remain source-reported or source-derived values from Social Blade. This Actor does not independently validate or guarantee them.

##### What happens if I submit the same profile more than once?

The first eligible occurrence is saved. A later match for the same source profile is ignored, so the saved row describes the first match.

##### Does this collect private analytics or full posts and videos?

No. It uses public Social Blade profile and ranking pages. Private, login-only analytics and full content feeds are outside its scope.

##### Does it monitor creators between runs?

No. Each run returns a current source snapshot. The Actor does not provide alerts or store a longitudinal history across runs.

### 📝 Changelog

**v0.0** (21-09-2026)

- Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~socialblade/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [Social Media Stats Checker](https://apify.com/maximedupre/social-media-stats-checker) - Compare normalized public profile stats across several social platforms.
- [Influencer Scraper](https://apify.com/maximedupre/influencer-scraper) - Build creator shortlists from TikTok, Instagram, and YouTube searches.
- [YouTube Channel Statistics Scraper](https://apify.com/maximedupre/youtube-channel-statistics-scraper) - Check public YouTube channel size and identity from handles or URLs.
- [TikTok Creator Analytics Scraper](https://apify.com/maximedupre/tiktok-creator-analytics) - Review public TikTok audience and recent-post metrics for known creators.
- [Instagram Profile Stats Scraper](https://apify.com/maximedupre/instagram-profile-stats-scraper) - Check public Instagram audience, profile, and recent-content fields.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `resultType` (type: `string`):

Choose the kind of result to return. Profile analytics reads submitted profiles. Ranking results runs one Social Blade ranking query.

## `profileTargets` (type: `array`):

Enter one or more full Social Blade profile URLs or raw handles. URLs can use different platforms in one run. A raw handle uses the platform below.

## `handlePlatform` (type: `string`):

Choose the platform for raw handles in the list. Full URLs keep their own platform. This field is used only for Profile analytics.

## `rankingPlatform` (type: `string`):

Choose the platform for the ranking query. The result contains ranked creators from this platform.

## `rankingMetric` (type: `string`):

Enter the Social Blade metric used to rank creators, such as subscribers, followers, views, or uploads.

## `rankingDirection` (type: `string`):

Choose whether the highest or lowest metric values appear first.

## `rankingCountry` (type: `string`):

Optionally enter a country supported by the selected Social Blade ranking. Leave this empty for all countries.

## `rankingCategory` (type: `string`):

Optionally enter a category supported by the selected Social Blade ranking. Leave this empty for all categories.

## `rankingContentType` (type: `string`):

Optionally enter a content filter supported by the selected platform and ranking. Leave this empty for all content.

## Actor input object example

```json
{
  "resultType": "profiles",
  "profileTargets": [
    "https://socialblade.com/youtube/handle/example-creator",
    "samplehandle"
  ],
  "handlePlatform": "youtube",
  "rankingMetric": "subscribers",
  "rankingDirection": "desc"
}
```

# Actor output Schema

## `dataset` (type: `string`):

Open profile analytics and ranking results in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "resultType": "profiles",
    "profileTargets": [
        "https://socialblade.com/youtube/handle/veritasium"
    ],
    "handlePlatform": "youtube"
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/socialblade").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "resultType": "profiles",
    "profileTargets": ["https://socialblade.com/youtube/handle/veritasium"],
    "handlePlatform": "youtube",
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/socialblade").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "resultType": "profiles",
  "profileTargets": [
    "https://socialblade.com/youtube/handle/veritasium"
  ],
  "handlePlatform": "youtube"
}' |
apify call maximedupre/socialblade --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maximedupre/socialblade"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/H1H4FNuy8R2xbdKBl/builds/feu9tUa7r9KioLVv2/openapi.json
