POST /v1/bloggers/track
Asynchronously start tracking a creator (channel) across supported platforms. The endpoint enqueues a job that resolves the channel, creates the blogger record, and enqueues the initial video backfill. Poll GET /v1/bloggers/jobs/{job_id} to track progress.
📋 Overview
🔐 Headers
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
📝 Request
Request Body
Example Request
curl -X POST https://api.influtics.com/v1/bloggers/track \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "instagram",
"username": "bar.films",
"initial_videos_count": 10
}'
✅ Response
Success Response (202 Accepted)
Headers:
Location: /v1/bloggers/jobs/{job_id}Retry-After: 1
Body:
{
"success": true,
"data": {
"job_id": "8f3a7e21-6c4f-4d3b-9c2a-1e0b8d7c6f5a",
"status": "queued",
"status_url": "/v1/bloggers/jobs/8f3a7e21-6c4f-4d3b-9c2a-1e0b8d7c6f5a",
"platform": "instagram",
"username": "bar.films",
"estimated_duration_seconds": 30,
"polling": {
"retry_after_seconds": 1
}
},
"meta": {
"request_id": "6e10c2ba-dda6-4a3d-92f1-8a224c5a088c"
}
}
Response Fields
⚠️ Error Responses
All errors share the standard envelope { success: false, error: { code, message, request_id, ... } }. The table below lists every documented code and the conditions that trigger it.
🔧 Features
Asynchronous by Design
- Returns
202 Acceptedimmediately and persists a job row intrack_account_jobs.
Built-in Dedup
- Active creator (
is_active=true) →409 CREATOR_ALREADY_TRACKED. - Deactivated creator with a reactivation in flight →
409 CREATOR_REACTIVATE_IN_FLIGHT. - Concurrent track-job for the same
(org, platform, username)→409 CREATOR_TRACK_IN_FLIGHTwith the existingjob_idreturned.
Tier Enforcement
enforcePaidPlanrejects free-tier API keys with402 PAID_PLAN_REQUIRED.tracked_videosandtracked_creatorscaps are checked up-front so a partial state is never written.
🎯 Use Cases
- CRM Imports: Bulk-discover and onboard creators from a CSV import (track per-creator from your importer).
- Competitor Watchlists: Programmatic onboarding of competitor channel lists.
- Backend-to-Backend Workflows: Chain into influencer discovery pipelines without human-in-the-loop dashboard clicks.
- CI/CD Integration: Trigger tracking from a build/test run before downstream jobs that depend on stats.
📈 What Happens Next?
- Initial poll — Wait the
Retry-Afterseconds (default1) before the first poll ofGET /v1/bloggers/jobs/{job_id}. - Backoff — Use exponential backoff with jitter:
1s → 2s → 4s → 8s → max 30s. - Stop conditions — Stop polling when
statusissucceededorerror, or when the response is410. - Stuck jobs — Jobs stuck in
processingfor overJOB_TIMEOUT(default1h) are auto-reset toerror / JOB_TIMEOUTby the hourly stuck-jobs sweeper cron. - Post-success — On
succeeded, theresultblock contains thetracked_account_idandblogger_id. Continue to useGET /v1/videos/stats?blogger_username=...to fetch stats once backfill completes.
📊 Rate Limits
- Requests: 60 requests per minute per API key (same envelope as other paid endpoints).
- Subscription limits (per tier):
tracked_videos_limit— videos quota enforced up-front; tracking fails with422 SUBSCRIPTION_LIMIT.tracked_creators_limit— creator cap enforced up-front; tracking fails with422 TRACKED_CREATORS_LIMIT.- Default creator caps: free = 10, pro = 200, business = 300.
Related: Get Job Status → | Blogger Info →