The social-profile skill fetches structured data about a social media profile through the SocialRouter API, which routes the request to the best provider for that platform and normalizes the response. It triggers automatically when you ask for details about a social media account or profile — name, bio, follower count, company, location, etc. — on LinkedIn, Instagram, X (Twitter), TikTok, Reddit, YouTube, Facebook, Pinterest, Bluesky, or Snapchat.

Prerequisites

SOCIALROUTER_API_KEY must be set in the environment. Get a key at socialrouter.io.
export SOCIALROUTER_API_KEY=sr_live_...
The skill calls the public REST API at https://api.socialrouter.io directly with curl — no SDK install needed.

How the agent runs it

1. Identify the platform

From the URL or your wording, the agent picks one of: linkedin, instagram, x, tiktok, reddit, youtube, facebook, pinterest, bluesky, snapchat. If only a username is given (no URL), it asks which platform — it never guesses.

2. Find a compatible provider slug from the live catalogue

The catalogue is dynamic, so the skill always fetches it before extracting:
curl -s -H "Authorization: Bearer $SOCIALROUTER_API_KEY" \
  https://api.socialrouter.io/v1/providers
It looks for a provider whose supported_platforms contains the target platform AND whose pricing has an entry with type: "profile.info" for that platform, then picks the cheapest active one. Slugs follow the form <provider_id>/<platform>/profile.info (e.g. apify/linkedin/profile.info).

3. Run the extraction

curl -s -X POST https://api.socialrouter.io/v1/extract \
  -H "Authorization: Bearer $SOCIALROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "<full profile URL>",
    "provider": "<slug from step 2>"
  }'
If the response status is pending, the agent polls GET /v1/extractions/{id} every 3 seconds (timeout 2 min) until status is completed or failed.

4. Present the result

The agent shows the normalized data[0] fields you asked for — name, headline/bio, location, follower/connection count, company (if applicable), profile URL — without dumping the whole JSON unless you ask.

Error handling

HTTPMeaningWhat the agent does
401Bad/missing API keyAsks you to check SOCIALROUTER_API_KEY
402Insufficient creditsPoints to socialrouter.io/dashboard to top up
429Rate limitedReads retry_after and waits
4xx / 5xxOtherSurfaces error.message verbatim

Examples

You: “Get the LinkedIn profile for https://linkedin.com/in/satyanadella → Platform: linkedin. Picks apify/linkedin/profile.info, extracts, returns name + title + company + location. You: “Look up @nasa on Instagram” → Platform: instagram. URL = https://instagram.com/nasa. Picks a provider supporting instagram/profile.info, returns follower count + bio. You: “Who is johndoe on TikTok and X?” → Two extractions, one per platform, run in parallel when possible.

Skills overview

Install the bundle in any host (Claude Code, Cursor, Windsurf, …).

Providers

How provider slugs and the live catalogue work.