Skip to main content
Each platform uses different ID formats for profiles, content, and games. Understanding these formats is essential for working with the Streamforge External API.

Profile IDs

Profile IDs are platform-specific creator identifiers:

Twitch

  • Format: Numeric string (e.g., "484563826")
  • How to find: Twitch channel URL or API
  • Example: https://twitch.tv/streamer123 → Channel ID 484563826

YouTube

  • Format: Channel ID string (e.g., "UCaY_-ksFSQtTGk0y1HA_3YQ")
  • How to find: YouTube channel URL or API
  • Example: https://youtube.com/@channel → Channel ID UCaY_-ksFSQtTGk0y1HA_3YQ

TikTok

  • Format: Numeric string (e.g., "1234567890")
  • How to find: TikTok profile URL or API
  • Note: TikTok IDs may change; use display names for stability

Content IDs

Content IDs identify individual streams, videos, or posts:

Twitch

  • Format: Numeric string (e.g., "324628972153")
  • Type: Video ID or stream ID
  • Example: https://twitch.tv/videos/324628972153

YouTube

  • Format: Alphanumeric string (e.g., "dQw4w9WgXcQ")
  • Type: Video ID
  • Example: https://youtube.com/watch?v=dQw4w9WgXcQ

TikTok

  • Format: Numeric string (e.g., "7123456789")
  • Type: Video ID
  • Example: https://tiktok.com/@user/video/7123456789

Game IDs

Game IDs vary by platform and can reference IGDB data:

Twitch Game ID

  • Format: Numeric string (e.g., "2011938005")
  • Source: Twitch’s game taxonomy
  • Example: Used in GET /platforms/twitch/games/{game_id}

YouTube Game Channel ID

  • Format: Channel ID string (e.g., "UCf_7CrLpgmot2vPKYwx5zQg")
  • Source: YouTube’s game channel taxonomy
  • Example: Used in GET /platforms/youtube/games/{game_id}

IGDB Game ID

  • Format: Numeric string (e.g., "189165")
  • Source: IGDB (Internet Game Database)
  • Example: Used in GET /platforms/igdb/games/{game_id}
  • Note: IGDB IDs are cross-platform identifiers

Finding Profile IDs

Twitch

# Using Twitch API
curl -H "Client-ID: YOUR_CLIENT_ID" \
  "https://api.twitch.tv/helix/users?login=streamer123"

YouTube

# Extract from channel URL
# https://youtube.com/@channel → Channel ID via API
curl "https://www.googleapis.com/youtube/v3/channels?part=id&forUsername=channel&key=YOUR_KEY"

TikTok

# Use TikTok API or extract from profile URL
# Profile URLs contain user IDs

Cross-Platform Matching

The Socials endpoint provides cross-platform matching:
{
  "payload": {
    "socials": [
      "profiles": [
        { "platform_id": "twitch", "id": "83232866", "followers": 17325979 },
        { "platform_id": "youtube", "id": "UCaY_-ksFSQtTGk0y1HA_3YQ", "followers": 15000000 }
      ]
    }
  }
}
Use the socials response to find the same creator across platforms.

ID Validation

The API validates IDs but doesn’t provide validation endpoints. To verify IDs:
  1. Make a request: Try fetching the resource
  2. Check response: 404 means invalid or non-existent ID
  3. Handle gracefully: Missing resources are normal

Best Practices

Store profile IDs alongside display names for better user experience and easier debugging.
  • Store IDs, not URLs: URLs can change; IDs are stable
  • Validate before bulk requests: Check IDs exist before bulk operations
  • Use socials data: Leverage cross-platform socials data for multi-platform workflows
  • Handle missing IDs: Some IDs may not exist; handle 404s gracefully
  • Document ID sources: Keep track of where IDs come from for debugging

Normalized Terminology

The API normalizes platform-specific terminology to provide consistency across all platforms.
API TermTwitchYouTubeTikTok
followersFollowersSubscribersFollowers
This normalization only applies to equivalent concepts. On YouTube, “subscribers” represents the free channel subscription count and maps to followers. On Twitch, followers remains followers - the separate paid “subscriber” concept is not exposed through this field.

Common ID Formats Summary

ResourceTwitchYouTubeTikTok
ProfileNumeric stringChannel ID (UC…)Numeric string
ContentNumeric stringVideo ID (alphanumeric)Numeric string
GameNumeric stringChannel ID (UC…)N/A

Example: Working with IDs

// Twitch profile
const twitchProfileId = "484563826";
const profile = await fetch(`/platforms/twitch/profiles/${twitchProfileId}`);

// YouTube content
const youtubeVideoId = "dQw4w9WgXcQ";
const content = await fetch(`/platforms/youtube/content/${youtubeVideoId}`);

// IGDB game
const igdbGameId = "189165";
const game = await fetch(`/platforms/igdb/games/${igdbGameId}`);

// Cross-platform matching
const socials = await fetch(`/platforms/twitch/profiles/${twitchProfileId}/socials`);
const socialProfiles = socials.payload;
// Now you have all platform IDs for this creator
Don’t assume ID formats are consistent across platforms. Always use the correct format for each platform.