GET /v1/bloggers/info

Retrieve comprehensive blogger information with video statistics. Returns cached data when available (7-day cache for blogger info, 1-day cache for video stats) or fetches fresh data when cache expires.

📋 Overview

Property Value
Method GET
Endpoint https://api.influtics.com/v1/bloggers/info
Auth Required Yes
Credits Cost 💳 1 credit (only if not cached)

🔐 Headers

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

📝 Request

Query Parameters

Parameter Type Required Description
username string Required Blogger username (without @ symbol)
platform string Optional Platform name: TikTok, Instagram, or YouTube (default: TikTok)
refresh boolean Optional Force refresh of video discovery if average stats age >= 5 days (default: false)

Example Request

curl -X GET "https://api.influtics.com/v1/bloggers/info?username=bar.films&platform=TikTok&refresh=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response

Success Response (200 OK)

{
  "success": true,
  "data": {
    "blogger": {
      "id": "46547c86-b171-480a-85d7-70a856164c95",
      "channel_name": "Bar films",
      "channel_username": "bar.films",
      "channel_thumbnail": "https://p16-common-sign.tiktokcdn-eu.com/...",
      "url": "https://www.tiktok.com/@bar.films",
      "platform": "TikTok",
      "number_of_subscribers": 38800,
      "created_at": "2026-01-18T15:46:20.963265+00:00",
      "updated_at": "2026-01-18T15:46:20.963265+00:00",
      "is_tracked": false,
      "tracking_id": null,
      "last_scraped_at": null,
      "video_count": 4,
      "avg_views": 2086,
      "median_views": 2234,
      "total_views": 8342,
      "avg_likes": 187,
      "avg_comments": 8,
      "avg_reposts": 8,
      "initial_videos_enqueued": false,
      "estimated_completion": null,
      "stats_update_enqueued": true,
      "videos_refresh_enqueued": false,
      "cached": true,
      "cache_expires_at": "2026-01-25T15:46:20.963Z"
    }
  },
  "meta": {
    "processing_time_ms": 17131,
    "request_id": "be6132b9-ab8b-4fe6-895c-1277f59a0616"
  }
}

Response Fields

Basic Blogger Information

Field Type Description
id string Internal blogger UUID
channel_name string Display name of the blogger/channel
channel_username string Username/handle (without @)
channel_thumbnail string \| null Profile picture/thumbnail URL
url string Platform-specific profile URL
platform string Platform name (TikTok, Instagram, YouTube)
number_of_subscribers number Current subscriber/follower count
created_at string ISO 8601 timestamp when blogger was first added
updated_at string ISO 8601 timestamp of last update

Tracking Information

Field Type Description
is_tracked boolean Whether blogger is actively tracked
tracking_id string \| null Tracking record ID if tracked
last_scraped_at string \| null Last time videos were fetched

Video Statistics

Field Type Description
video_count number Total number of videos for this organization
avg_views number Average views across all videos
median_views number Median views across all videos
total_views number Sum of all video views
avg_likes number Average likes per video
avg_comments number Average comments per video
avg_reposts number Average reposts/shares per video

Cache & Enqueue Status

Field Type Description
cached boolean Whether response was served from cache
cache_expires_at string \| null ISO 8601 timestamp when cache expires
initial_videos_enqueued boolean Whether initial video fetch was enqueued
stats_update_enqueued boolean Whether videos were enqueued for stats refresh
videos_refresh_enqueued boolean Whether a refresh video fetch was enqueued (only when refresh=true and avg stats age >= 5 days)
estimated_completion string \| null Estimated completion time (e.g., "2-5 minutes")

🔄 Caching Behavior

Blogger Information Cache

  • Duration: 7 days from updated_at timestamp
  • Refresh: Automatically refreshed from external API when cache expires
  • Credits: No credits charged for cached responses

Video Statistics Cache

  • Duration: 1 day from stats_last_updated timestamp
  • Refresh: Videos automatically enqueued for stats refresh when cache expires
  • Indicator: stats_update_enqueued flag shows if refresh was enqueued

Cache Expiration

  • cache_expires_at shows when the current data will expire
  • Set even for fresh (non-cached) responses to indicate future expiration
  • Calculated as: updated_at + 7 days for blogger info

💳 Credits

Credits are only charged when data is fetched fresh (not from cache):

Action Credits When Charged
Blogger info fetch 1 credit Only if cached: false
Initial videos enqueued 1 credit Only if cached: false and initial_videos_enqueued: true
Refresh video fetch 1 credit Only if refresh=true and videos_refresh_enqueued: true
Cached response 0 credits When cached: true

Example: If you request blogger info and it's served from cache (cached: true), you pay 0 credits.

⚠️ Error Responses

Validation Error (400 Bad Request)

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Missing required parameter: username",
    "request_id": "be6132b9-ab8b-4fe6-895c-1277f59a0616"
  }
}

Blogger Not Found (400 Bad Request)

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Blogger bar.films not found or data unavailable",
    "request_id": "be6132b9-ab8b-4fe6-895c-1277f59a0616"
  }
}

Internal Error (500 Internal Server Error)

{
  "success": false,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Error message here",
    "request_id": "be6132b9-ab8b-4fe6-895c-1277f59a0616"
  }
}

🔧 Features

Automatic Video Fetching

  • If blogger has no videos, initial video fetch is automatically enqueued
  • Returns initial_videos_enqueued: true when enqueued
  • Videos are fetched in the background (2-5 minutes)

Automatic Stats Refresh

  • If blogger cache expires and videos exist, video stats refresh is automatically enqueued
  • Returns stats_update_enqueued: true when refresh is enqueued
  • Stats are updated in the background

Forced Refresh

  • Pass refresh=true to force a new video discovery fetch
  • Only enqueues if average video stats age is >= 5 days
  • Average is calculated across all videos for this blogger
  • Returns videos_refresh_enqueued: true when a refresh is triggered
  • Uses the same queue as initial video fetch (2-5 minutes processing)
  • Credits: 1 credit charged when refresh is enqueued

Organization-Specific Results

  • Returns blogger information specific to your organization
  • Video statistics only include videos tracked by your organization
  • Multiple organizations can track the same blogger independently

Platform Support

  • TikTok: Uses external_id (secUid) for video fetching
  • Instagram: Uses external_id (numeric ID) for video fetching
  • YouTube: Uses external_id (channel username) for video fetching

🎯 Use Cases

  • Influencer Research: Get comprehensive stats before starting a campaign
  • Performance Monitoring: Check current video performance metrics
  • Campaign Planning: Understand influencer reach and engagement
  • Competitive Analysis: Compare blogger performance across platforms

📊 Rate Limits

  • Requests: 20 requests per minute per API key
  • Cached Responses: Count towards rate limit but don't consume credits

📈 What Happens Next?

  1. If videos exist: Statistics are returned immediately (cached or fresh)
  2. If no videos: Initial video fetch is enqueued automatically
  3. If cache expired: Fresh data is fetched and videos are enqueued for stats refresh
  4. Background Processing: Videos are fetched/updated asynchronously

Related: Track Videos → | View Usage →