Universal Search Everywhere API
API 한 번의 호출로 Universal Search Everywhere 데이터를 받아 가세요. Fans out a single query across Reddit, X (ai-search), YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, Threads, Pinterest, LinkedIn, Rumble, Perplexity, and Tavily in parallel (up to 17 sources, since TikTok, Instagram and YouTube each add a hashtag lane). Returns ranked + clustered results, enriched with **real-people comments** on the six lanes that have a comments surface: Reddit upvoted comments, Hacker News thread replies, YouTube, TikTok and Instagram top-liked comments, and GitHub issue discussion. The other lanes (X, Threads, Pinterest, LinkedIn, Rumble, Polymarket, Perplexity, Tavily) have no comments concept and their rows carry none, so read `top_comments` as absent rather than empty there. The comments per result live at `data.items[i].source_items[0].metadata.top_comments[]`, sorted by score descending, each `{ score, excerpt, truncated, author, url, date }`. Bodies are clipped to 300 characters on a word boundary; a clipped one ends with an ellipsis and sets `truncated: true`, so a short comment is never mistaken for a cut one. GitHub bot accounts are excluded from this block, so a CI deploy-preview or build-status comment never spends the budget. Attribution varies by lane, honestly: the Reddit, Hacker News, YouTube, TikTok, Instagram and GitHub lanes are post-shaped and carry an author and a date, while the Perplexity and Tavily lanes index the open web and have no author to give, so their rows are labelled with the source host. Expect 28 to 30 seconds for a full fan-out; allow a 60s client timeout. Supports streaming via `Accept: text/event-stream` (emits `comments_enriched` chunks per candidate as enrichment lands, before the terminal `done`) and sync via `Accept: application/json`. Flat 20 credits per call regardless of enrichment.
2026년 9월 업데이트SocialCrawl 팀이 직접 관리해요
질의 하나를 Reddit, X, YouTube, TikTok, Instagram 등에서 동시에 돌려 순위와 군집을 매긴 결과 하나로 반환합니다. 상위 댓글과 게시물별 입장, 관련도도 함께 붙습니다.
플랫폼마다 검색 엔드포인트를 직접 부르는 대신 한 주제의 반응을 한 번에 볼 때 사용하세요.
67개 플랫폼을 병렬로 검색합니다
Everywhere API로 무엇을 할 수 있을까요
Everywhere 엔드포인트가 통합 스키마와 계산 필드를 담은 Universal Search 데이터를 한 번의 요청으로 보내드려요. 스크래핑 인프라를 직접 만들거나 유지할 필요가 없어요.
요청 예시
curl -H "x-api-key: YOUR_API_KEY" \
"https://www.socialcrawl.dev/v1/search/everywhere?query=kanye+west&lookback_days=30&sources=reddit%2Cyoutube%2Cgithub&include_transcripts=false"import requests
response = requests.get(
"https://www.socialcrawl.dev/v1/search/everywhere",
params={
'query': 'kanye west',
'lookback_days': '30',
'sources': 'reddit,youtube,github',
'include_transcripts': 'false',
},
headers={"x-api-key": "YOUR_API_KEY"},
)
data = response.json()const response = await fetch(
"https://www.socialcrawl.dev/v1/search/everywhere?query=kanye+west&lookback_days=30&sources=reddit%2Cyoutube%2Cgithub&include_transcripts=false",
{
headers: { "x-api-key": "YOUR_API_KEY" },
},
);
const data = await response.json();파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
| query | 예 | Search query (1-512 chars) |
| lookback_days | 아니오 | Recency window in days (minimum 1, default 30); mutually exclusive with from_date/to_date. This is a ranking signal, not a hard filter: it sets the freshness curve and is forwarded to the sources whose upstream supports date bounds, so a much older item can still rank when nothing recent matches. Windows over 90 days degrade coverage on the sources with no upstream date filtering and emit a warning rather than an error. |
| from_date | 아니오 | ISO YYYY-MM-DD lower bound; mutually exclusive with lookback_days. |
| to_date | 아니오 | ISO YYYY-MM-DD upper bound; defaults to today when from_date is set alone. |
| sources | 아니오 | Optional CSV allowlist of sources (mutually exclusive with exclude). Valid names: reddit, twitter-ai-search, youtube, tiktok, instagram, hackernews, polymarket, github, threads, pinterest, perplexity, tavily, linkedin, rumble, tiktok-hashtag, instagram-hashtag, youtube-hashtag. Platform shorthands expand to their full group: twitter/x → twitter-ai-search; youtube, instagram, tiktok also include their -hashtag lane. Unknown names return a 400. |
| exclude | 아니오 | Optional CSV blocklist of sources (mutually exclusive with sources). Same valid names and platform shorthands as sources: excluding youtube/instagram/tiktok also excludes the platform's -hashtag lane. Unknown names return a 400. |
| include_transcripts | 아니오 | Fetch spoken-word transcripts for the top 3 video results (default false), so a video whose title never mentions your query but whose narration does can still be found and quoted. Applies to the YouTube, Rumble, TikTok and Instagram lanes; YouTube and Rumble transcripts carry timestamped segments, TikTok and Instagram are plain text. Transcripts land on `data.items[i].source_items[0].metadata.transcript` and stream as `transcript_enriched` chunks. Included in the flat 20 credits. |
| relevance | 아니오 | Optional. filter drops the ranked results our relevance judgment already scored as off-topic for your query (unrelated, or clearly about a different thing that shares its words) and lists their ids in data.relevance.dropped_ids, with counts. A result that could not be judged is never dropped; when none could be judged nothing is dropped and data._warnings says relevance_unavailable. items_by_source is not filtered. Omit it to keep every ranked result, ordered as before; each result still carries computed.relevance by default (see judgments). Included in the flat 20 credits. (filter) |
| include | 아니오 | Optional CSV of extra blocks. stance is now on by default and accepted for compatibility: data.items[i].computed.stance ({ label: positive, negative, neutral, no_opinion or null when unsure, probabilities, confidence }) says what each post, with any replies shown, says about your query, and data.stance_split counts it per platform and overall with the ids behind every count. Posts judged under the confidence floor count as uncertain, never as a stance. If the judgment is unavailable the search still returns, stance is null and data._warnings says stance_unavailable (or stance_skipped when judging was skipped). Included in the flat 20 credits. |
| judgments | 아니오 | Optional. on (default) or off. On, every result also carries data.items[i].computed.stance (see include) and data.items[i].computed.relevance ({ score 0 to 1, on_topic, entity }), with data.relevance counting the off-topic results and listing their ids. Nothing is dropped or reordered and the price does not change. off returns the response without these blocks. (on | off) |
| switch_from | 아니오 | Optional brand. data.switch_receipts lists results where the author says they personally left that brand, with the verbatim text, the reason, where they went, and the link. There is no percentage. Rows that are not a switch stay in items. Included in the flat 20 credits. |
Universal Search Everywhere API는 무엇을 돌려주나요
모든 응답은 하나의 통합 스키마를 따라요. 크레딧을 쓰기 전에 어떤 필드가 돌아오는지, 실제 응답 본문 그대로 확인해 보세요.
응답 예시 보기
{
"success": true,
"platform": "instagram",
"endpoint": "/v1/instagram/engagement",
"data": {
"engagement_rate_percentages": 38.33,
"recent_posts": 12,
"followers": 87608035,
"comments": 528912,
"likes": 33049046,
"recent_posts_explanation": "Statistics based on the last 12 posts",
"id_user": "2278169415",
"username": "mrbeast",
"is_private": false,
"posts_details": [
{
"likes": 5636982,
"comments": 69484,
"taken_at": 1781457954,
"datetime": "2026-06-14 20:25:54",
"hours_since_post": 461,
"time_ago": "19 days ago",
"likes_per_hour": 12228,
"comments_per_hour": 151
},
{
"likes": 20000768,
"comments": 223510,
"taken_at": 1732824650,
"datetime": "2024-11-28 23:10:50",
"hours_since_post": 13971,
"time_ago": "2 years ago",
"likes_per_hour": 1432,
"comments_per_hour": 16
},
{
"likes": 929226,
"comments": 30633,
"taken_at": 1782232475,
"datetime": "2026-06-23 19:34:35",
"hours_since_post": 246,
"time_ago": "10 days ago",
"likes_per_hour": 3777,
"comments_per_hour": 125
},
{
"likes": 487761,
"comments": 22482,
"taken_at": 1781799425,
"datetime": "2026-06-18 19:17:05",
"hours_since_post": 366,
"time_ago": "15 days ago",
"likes_per_hour": 1333,
"comments_per_hour": 61
},
{
"likes": 712265,
"comments": 15716,
"taken_at": 1781366405,
"datetime": "2026-06-13 19:00:05",
"hours_since_post": 487,
"time_ago": "20 days ago",
"likes_per_hour": 1463,
"comments_per_hour": 32
},
{
"likes": 1475116,
"comments": 35386,
"taken_at": 1781277094,
"datetime": "2026-06-12 18:11:34",
"hours_since_post": 512,
"time_ago": "21 days ago",
"likes_per_hour": 2881,
"comments_per_hour": 69
},
{
"likes": 1108220,
"comments": 26632,
"taken_at": 1780160249,
"datetime": "2026-05-30 19:57:29",
"hours_since_post": 822,
"time_ago": "1 months ago",
"likes_per_hour": 1348,
"comments_per_hour": 32
},
{
"likes": 542948,
"comments": 28476,
"taken_at": 1779375582,
"datetime": "2026-05-21 17:59:42",
"hours_since_post": 1040,
"time_ago": "1 months ago",
"likes_per_hour": 522,
"comments_per_hour": 27
},
{
"likes": 698514,
"comments": 24401,
"taken_at": 1779120014,
"datetime": "2026-05-18 19:00:14",
"hours_since_post": 1111,
"time_ago": "2 months ago",
"likes_per_hour": 629,
"comments_per_hour": 22
},
{
"likes": 468000,
"comments": 13548,
"taken_at": 1778947209,
"datetime": "2026-05-16 19:00:09",
"hours_since_post": 1159,
"time_ago": "2 months ago",
"likes_per_hour": 404,
"comments_per_hour": 12
},
{
"likes": 526594,
"comments": 24411,
"taken_at": 1777737719,
"datetime": "2026-05-02 19:01:59",
"hours_since_post": 1495,
"time_ago": "2 months ago",
"likes_per_hour": 352,
"comments_per_hour": 16
},
{
"likes": 462652,
"comments": 14233,
"taken_at": 1777580305,
"datetime": "2026-04-30 23:18:25",
"hours_since_post": 1538,
"time_ago": "2 months ago",
"likes_per_hour": 301,
"comments_per_hour": 9
}
]
},
"credits_used": 5,
"credits_remaining": 9999,
"request_id": "req-8Kq2ZmR4vT9xLb3P",
"cached": false
}Instagram API에서 가져온 예시예요. 모든 SocialCrawl 엔드포인트가 똑같은 통합 스키마를 돌려주기 때문에, Universal Search Everywhere 응답도 같은 필드로 구성돼요.
Universal Search Everywhere API는 어떻게 동작하나요
API 키와 함께 GET 요청을 보내면, 통합 스키마와 계산 필드를 담은 깔끔한 JSON이 돌아와요.
메서드
GET
응답 형식
JSON
소셜 미디어 데이터를 몇 초 만에 수집하는 방법
개발자를 위한 가장 빠른 소셜 미디어 스크래핑 API. 월간 활성 사용자 100억 명 이상을 포괄하는 67개 플랫폼에서 프로필, 게시물, 댓글, 분석 데이터를 수집하세요.
모든 플랫폼을 하나의 스키마로
동일한 응답 구조로 67개 플랫폼을 조회하세요. 연동은 한 번이면 충분합니다.
단순 수집을 넘어 계산된 필드 제공
엔드포인트가 해당 지표를 지원하고 계산에 필요한 원본 값이 있을 때, 정규화된 레코드에 engagement_rate, estimated_reach, content_category, language를 함께 담아 바로 활용할 수 있습니다.
코드 한 줄 쓰기 전에, 데이터부터
Visual Data Explorer에 URL만 붙여넣으면 결과 카드와 정형화된 테이블, CSV 내보내기를 바로 사용할 수 있습니다.
import requests
response = requests.get(
'https://www.socialcrawl.dev/v1/tiktok/profile',
params={'handle': 'charlidamelio'},
headers={'x-api-key': 'sc_YOUR_API_KEY'}
)
data = response.json(){
"success": true,
"platform": "tiktok",
"data": {
"author": {
"username": "charlidamelio",
"followers": 152400000
},
"engagement": {
"likes": 12400000000,
"engagement_rate": 0.087
},
"metadata": {
"language": "en",
"content_category": "lifestyle"
}
}
}자주 묻는 질문
API, 요금제, 기능에 대한 질문과 답변입니다.
문의하기API 호출 한 번으로 모든 소셜 미디어를 검색하려면 어떻게 하나요?
어떤 파라미터를 받나요?
검색 결과에는 뭐가 들어 있나요?
특정 플랫폼만 골라서 검색할 수 있나요?
호출 한 번에 크레딧이 얼마나 드나요?
스트리밍 응답도 지원하나요?
AI에게 SocialCrawl을 물어보세요
Universal Search Everywhere 데이터, 가져올 준비 되셨어요?
API 키 받고 60초 안에 Universal Search 데이터를 받아 가세요.
