Docs › Creators · by-handle

GET/v1/creators/by-handle/{platform}/{handle}

creators/by-handle

Look up a single creator by their handle on a specific platform. The fastest path when you already have the @-handle and want the full enriched record. One request, one creator.

Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://api.swaypi.com/v1/creators/by-handle/tiktok/examplecreator
import requests

def get_creator(platform: str, handle: str, api_key: str) -> dict:
    r = requests.get(
        f"https://api.swaypi.com/v1/creators/by-handle/{platform}/{handle}",
        headers={"Authorization": f"Bearer {api_key}"},
        timeout=10,
    )
    if r.status_code == 404:
        return None
    r.raise_for_status()
    return r.json()

creator = get_creator("tiktok", "examplecreator", "YOUR_API_KEY")
if creator:
    print(creator["display_name"], creator["followers"])
async function getCreator(platform, handle, apiKey) {
  const r = await fetch(
    `https://api.swaypi.com/v1/creators/by-handle/${platform}/${encodeURIComponent(handle)}`,
    { headers: { Authorization: `Bearer ${apiKey}` } }
  );
  if (r.status === 404) return null;
  if (!r.ok) throw new Error(`Swaypi ${r.status}`);
  return r.json();
}

const creator = await getCreator("tiktok", "examplecreator", "YOUR_API_KEY");
if (creator) console.log(creator.display_name, creator.followers);

Path parameters

NameTypeDescription
platformenumOne of tiktok, instagram, youtube, reddit, twitch, kick, x, pinterest.
handlestringThe creator's handle on that platform. Omit any @ prefix. Case-insensitive. URL-encode any special characters.

Response

Returns the full enriched creator record. Identical schema to a single item in /v1/creators/search results.

{
  "swaypi_id": "swp_a1b2c3",
  "platform": "tiktok",
  "handle": "examplecreator",
  "display_name": "Example Creator",
  "bio": "Daily makeup tutorials. Drugstore + Sephora reviews.",
  "followers": 124500,
  "following": 312,
  "posts_count": 489,
  "engagement_rate": 0.063,
  "country": "US",
  "region": "CA",
  "niche_tags": ["beauty", "skincare", "wellness"],
  "quality_score": 87,
  "brand_safe": true,
  "is_verified": false,
  "audience_geo": {
    "US_pct": 0.78,
    "CA_pct": 0.09,
    "top_metros": ["Los Angeles", "New York", "Chicago"]
  },
  "audience_age": { "13_17": 0.04, "18_24": 0.42, "25_34": 0.31, "35_plus": 0.23 },
  "contact_email": "[email protected]",
  "last_post_at": "2026-06-14T18:23:00Z",
  "last_indexed_at": "2026-06-14T22:00:00Z"
}

Errors

404 Not Found. The creator either doesn't exist on that platform, has been banned, or hasn't been indexed by Swaypi yet. Submit them via POST /v1/creators/discover (coming soon) to add them to the index.

403 Forbidden. Your tier doesn't include all the fields returned (e.g. contact_email). The fields are omitted, not returned with placeholders.

Performance notes

Handle lookups are the fastest endpoint Swaypi serves — p50 latency is under 80ms. If you're enriching a large list of handles, prefer this endpoint over creators/search for each one. Batch enrichment via POST /v1/creators/enrich (coming soon) is more efficient for runs over 100 handles.

Related

GET /v1/creators/search — when you need to discover creators by filter rather than name.

Authentication — Bearer token setup and per-tier permissions.