Social intelligence API. Submit an Instagram or TikTok handle — get back profile classification, personality signals, network graph, confirmed locations, and risk signals. Start with /lookup at $0.10. Scale to full traces when you need depth.
Base URL: https://api.myhorizonview.com Auth: X-API-Key header (get your key from the developer portal) Format: JSON Async: Traces are queued — submit, poll /status, fetch /report
Every request requires an X-API-Key header. Generate keys from the developer portal. Keys begin with htk_ and are shown once on creation.
curl https://api.myhorizonview.com/api/v1/credits \ -H "X-API-Key: htk_your_key_here"
Returns 401 if the key is missing, invalid, or revoked. Returns 402 if your credit balance is insufficient for the requested operation.
/api/v1/lookup★ Start hereFetch profile data, instant account classification, and bare personality signals derived from bio. No trace required. $0.10 per profile found — profiles not found are not charged.
ig_usernamestring?tt_usernamestring?curl -X POST https://api.myhorizonview.com/api/v1/lookup \
-H "X-API-Key: htk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"ig_username": "target_handle"}'{
"status": "success",
"found": ["ig"],
"cost_usd": 0.10,
"profiles": {
"ig": {
"username": "target_handle",
"display_name": "Mario Egie",
"followers": 4200,
"following": 834,
"posts": 312,
"is_private": false,
"is_verified": false,
"bio": "Founder @HorizonView · Spatial AI",
"profile_pic": "https://...",
"classification": {
"tier": "T3",
"warmth": "HOT",
"disposition": "NORMAL"
},
"bare_personality": {
"signals": [
{ "label": "Entrepreneurship & Business", "confidence": "HIGH" },
{ "label": "Technology & Development", "confidence": "MEDIUM" }
],
"has_website_link": true,
"confidence_note": "Derived from bio and display name only."
}
}
}
}tierstringwarmthstringdispositionstringSignals are extracted from the bio text and display name using keyword pattern matching — the same categories used in full trace personality analysis. HIGH confidence means explicit keywords were matched (job titles, business links). MEDIUM means strong category keywords. LOW means weaker signals. For personality weighted across hundreds of accounts the subject follows, run a full trace.
/api/v1/traceSubmit a full trace. Credits are deducted immediately and the trace is queued. Returns a trace_id to poll. Run /lookup first to get the IG following count and compute your exact cost before submitting.
ig_usernamestring?tt_usernamestring?ig_limitintIf the subject follows more than 1,000 accounts on Instagram, an overage charge applies: $1.20 per 1,000 following above 1,000.
subject.ig.following = 4500 overage = 4500 - 1000 = 3500 overage_cost = (3500 / 1000) × $1.20 = $4.20 total = $3.00 base + $4.20 = $7.20
curl -X POST https://api.myhorizonview.com/api/v1/trace \
-H "X-API-Key: htk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"tt_username": "target_handle"}'{
"status": "queued",
"trace_id": 1042,
"platforms": ["tt"],
"cost": {
"base_cost_usd": 2.00,
"extra_following": 0,
"extra_cost_usd": 0.00,
"total_cost_usd": 2.00,
"ig_following": 0,
"ig_limit": 1000
},
"message": "Poll GET /api/v1/trace/1042/status for progress."
}/api/v1/trace/{id}/statusfreePoll for trace progress. Recommended interval: every 10 seconds. Traces typically complete in 5–15 minutes.
{
"trace_id": 1042,
"status": "collecting",
"progress": "Building intelligence report...",
"complete": false,
"failed": false
}statusstringprogressstringcompleteboolfailedbool/api/v1/trace/{id}/reportfreeFetch the completed intelligence report. Returns 425 if not yet complete — keep polling /status.
{
"status": "success",
"trace_id": 1042,
"platforms": ["tt"],
"report": {
"classification": { ... },
"personality": { ... },
"network": { ... },
"twitter_personality": {},
"analysed_at": "2026-08-07T21:04:44.668110+00:00"
}
}"classification": {
"primary_platform": "tt",
"primary": {
"platform": "tt",
"tier": "T4",
"warmth": "HOT",
"disposition": "CREATOR",
"followers": 94958,
"following": 69,
"posts": 107,
"is_private": false,
"is_verified": false,
"bio": "Instagram:username\nPlease follow on ig",
"name": "Display Name",
"username": "username"
},
"per_platform": {
"tt": { /* same shape as primary */ }
},
"consistency": {
"status": "single_platform",
"signals": []
},
"private_signals": {}
}consistency.statusstringconsistency.signalsstring[]private_signalsobject"personality": {
"interests": [
{ "signal": "entrepreneur_mindset", "label": "Entrepreneurship & Business", "score": 6.0 },
{ "signal": "fashion_interest", "label": "Fashion & Style", "score": 4.0 },
{ "signal": "tech_interest", "label": "Technology & Development", "score": 4.0 }
],
"location_interests": {
"global": {
"London": { "count": 8, "signal": "uk_ambition", "lat": 51.5074, "lng": -0.1277 },
"Dubai": { "count": 5, "signal": "global_expansion", "lat": 25.2048, "lng": 55.2708 },
"Lagos": { "count": 22, "signal": "nigerian_state" },
"Berlin": { "count": 3, "signal": "europe_ambition", "lat": 52.5200, "lng": 13.4050 }
}
},
"confirmed_locations": {
"confirmed_base": [
{ "city": "Lagos", "count": 14, "lat": 6.5244, "lng": 3.3792 }
],
"visited": [],
"travel_signals": [
{ "city": "London", "count": 2, "lat": 51.5074, "lng": -0.1277 }
]
},
"gender": {
"gender": "MALE",
"confidence": "MEDIUM",
"method": "name_match"
},
"risk_signals": [],
"fake_accounts_followed": 0,
"fake_accounts_list": []
}interests[].signalstringinterests[].labelstringinterests[].scorefloatlocation_interests.globalobjectconfirmed_locations.confirmed_basearrayconfirmed_locations.visitedarrayconfirmed_locations.travel_signalsarraygender.genderstringgender.confidencestringgender.methodstringrisk_signalsarrayfake_accounts_followedint"network": {
"nodes": [
{
"username": "atletiboy",
"display_name": "Atletiboy",
"bio": "Atlético isn't just a team to me – it's family.",
"profile_pic": "https://...",
"platforms": ["tt"],
"tss": 63,
"bss": 90,
"network_tier": "INNER_CIRCLE",
"interaction_types": ["commented on post(s)"],
"is_shadow": false,
"is_predicted": false,
"platform_match_confidence": 1.0
}
],
"inner_circle": [ /* top ~30% of high-TSS nodes */ ],
"close_network": [ /* remaining high-TSS nodes */ ],
"active_network": [ /* TSS >= 40% of top score */ ],
"peripheral": [ /* below active threshold */ ],
"shadow_ties": [ /* zero TSS, high BSS — connected by pattern only */ ],
"pool_activations":[ /* brand/page accounts that activated from pool */ ],
"is_predicted_network": false
}nodes[].tssintnodes[].bssintnodes[].network_tierstringnodes[].interaction_typesstring[]nodes[].is_shadowboolnodes[].is_predictedboolnodes[].platformsstring[]is_predicted_networkbool/api/v1/trace/{id}/rerunfreeRe-run a failed trace at no charge. Cannot rerun a completed trace — submit a new trace instead.
{
"status": "queued",
"trace_id": 1042,
"cost_usd": 0.00,
"message": "Re-queued free. Poll GET /api/v1/trace/1042/status."
}/api/v1/creditsfree{
"balance_usd": 4.90,
"total_topped": 10.00,
"total_spent": 5.10,
"last_topped_up": "2026-09-01T21:37:00+00:00",
"pricing": {
"lookup": "$0.10 per profile found",
"trace_tt": "$2.00 flat",
"trace_ig": "$3.00 base + $1.20 per 1,000 IG following above 1,000",
"trace_both": "$5.00 base + $1.20 per 1,000 IG following above 1,000",
"rerun": "free"
},
"recent_requests": [
{
"endpoint": "trace_tt",
"platforms": ["tt"],
"trace_id": 1042,
"status": "complete",
"cost_usd": 2.00,
"date": "2026-09-01T22:00:00+00:00"
}
]
}/api/v1/usagefreePaginated request log. Use ?limit=50&offset=0 query params.
{
"total": 42,
"offset": 0,
"limit": 50,
"requests": [
{
"request_id": 88,
"endpoint": "trace_tt",
"platforms": ["tt"],
"trace_id": 1042,
"status": "complete",
"cost_usd": 2.00,
"error": null,
"date": "2026-09-01T22:00:00+00:00"
}
]
}Credits are topped up via USDT (Cryptomus). Minimum top-up $5.00. Credits appear within ~2 minutes of on-chain confirmation. Also available on RapidAPI with monthly subscription plans and credit card billing.
All error responses return { "detail": "message" }.