Telegram Search API
API 한 번의 호출로 Telegram Search 데이터를 받아 가세요. Finds public Telegram channels by keyword, so you can pick the channels to read with `/v1/telegram/profile` and `/v1/telegram/profile/posts`. Channels are discovered through a public web search index limited to t.me pages, so this finds what that index has already seen: it is not real time, a channel or message from the last few days may not appear yet, and private channels and invite-only groups never appear. Returns one row per channel, in the order the search found them, on the same Author shape `/v1/telegram/profile` returns: `author.username` is the public handle (pass it as `handle`), `author.url` is `https://t.me/<handle>`, and `author.display_name` is the channel's title when the search result carried it (null when the result showed only the handle). `author.ext.search_hit` says how the channel was found: `match` is `channel_page` (the channel's own page) or `post_in_channel` (a message or the message preview), `title` and `snippet` are the hit as the index showed it, `evidence_url` is the first page that matched, and `matched_urls` lists every t.me page the search matched for that channel, so you can open the exact messages. The snippet is the index's text, not the channel's description, so `author.bio` stays null on a plain call, as do `author.followers`, `author.avatar_url` and `author.verified`. Send `include=details` and every channel is joined, in the same call, to the profile lookup: the exact subscriber count (`author.followers`), the description (`author.bio`), the avatar, the verified flag and, where it was null, the title land on each row. Words in `query` match loosely; put a phrase in double quotes to require it, and add `-word` to exclude a word. Cost: 2 credits for the page, plus 1 credit per channel filled from a fresh lookup with `include=details` (at most 10 a page, so 12 credits at most); channels already in cache are free, channels that could not be filled are refunded, and a search that finds no public channel is a 404 at 0 credits. Time: a plain page takes about 2 to 12 seconds; `include=details` adds a few seconds on a fresh page (the lookups run in parallel and the call waits for the slowest, never more than 10 seconds) and nothing when the channels are already cached. The response carries a `hydration` block itemising rows, lookups, cache hits, credits and milliseconds. A page holds up to 10 channels, fewer when several hits belong to one channel. Forward `pagination.next_cursor` as `cursor` for the next page; the same channel can appear again on a later page.
2026년 10월 업데이트SocialCrawl 팀이 직접 관리해요
키워드로 웹 검색 색인에 잡힌 공개 텔레그램 채널을 채널당 한 행씩 반환합니다. 일치한 페이지 주소가 함께 담기고, 요청하면 정확한 구독자 수도 채워집니다.
특정 상품이나 브랜드를 팔거나 언급하는 채널을 찾은 뒤 profile/posts로 읽어 볼 때 사용하세요. 검색 색인은 텔레그램보다 늦게 반영되므로 실시간 피드가 아니라 채널 발굴용으로 보시면 됩니다.
68개 플랫폼을 병렬로 검색합니다
Search API로 무엇을 할 수 있을까요
Search 엔드포인트가 통합 스키마와 계산 필드를 담은 Telegram 데이터를 한 번의 요청으로 보내드려요. 스크래핑 인프라를 직접 만들거나 유지할 필요가 없어요.
요청 예시
curl -H "x-api-key: YOUR_API_KEY" \
"https://www.socialcrawl.dev/v1/telegram/search?query=byd+spare+parts&date_posted=last-hour"import requests
response = requests.get(
"https://www.socialcrawl.dev/v1/telegram/search",
params={
'query': 'byd spare parts',
'date_posted': 'last-hour',
},
headers={"x-api-key": "YOUR_API_KEY"},
)
data = response.json()const response = await fetch(
"https://www.socialcrawl.dev/v1/telegram/search?query=byd+spare+parts&date_posted=last-hour",
{
headers: { "x-api-key": "YOUR_API_KEY" },
},
);
const data = await response.json();함께 보내면 좋은 파라미터
date_posted=last-hour이 기간에 올라온 게시물만 반환합니다.
파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
| query | 예 | Keywords describing the channels or messages to find, for example `byd spare parts`. Put a phrase in double quotes to require it. Keywords only: the search is already limited to public Telegram pages, so a `site:` operator is refused before billing. |
| page | 아니오 | Page number, starting at 1. Forwarding `pagination.next_cursor` as `cursor` does the same. |
| date_posted | 아니오 | Only pages the search index dates within this window: last-hour, last-day, last-week, last-month or last-year. Useful for monitoring new activity. (last-hour | last-day | last-week | last-month | last-year) |
| region | 아니오 | Two-letter country code (US, AE, IN, KR) whose results to prefer. |
| limit | 아니오 | Return at most this many channels from the page (1 to 10). With `include=details` it also lowers the credits held, one per channel. |
| include | 아니오 | Set to `details` (one token only) to fill, on every channel in this one call, `author.followers` (the exact subscriber count), `author.bio` (the description), `author.avatar_url`, `author.verified`, and the title where it was null. Holds 1 credit per channel (at most 10 a page) and keeps only the channels filled from a fresh lookup; channels already in cache and channels the lookup cannot fill are refunded, so a page is never more than 12 credits. Read `data.hydration` for the rows, the credits held and kept, and the time. Without it the call is unchanged. (details) |
Telegram Search API는 무엇을 돌려주나요
모든 응답은 하나의 통합 스키마를 따라요. 크레딧을 쓰기 전에 어떤 필드가 돌아오는지, 실제 응답 본문 그대로 확인해 보세요.
응답 예시 보기
{
"success": true,
"platform": "tiktok",
"endpoint": "/v1/tiktok/search/users",
"data": {
"items": [
{
"author": {
"id": "user_0e9522",
"username": "user_759369",
"display_name": "user_f0b019",
"avatar_url": "https://example.com/avatars/user_0ab01c.png",
"bio": null,
"verified": null,
"followers": 4214875,
"following": 1,
"posts_count": 2341,
"likes_count": 62731828,
"url": null,
"location": null
}
},
{
"author": {
"id": "user_d26411",
"username": "user_1f51ed",
"display_name": "user_1f51ed",
"avatar_url": "https://example.com/avatars/user_a81e65.png",
"bio": null,
"verified": null,
"followers": 1780390,
"following": 1,
"posts_count": 995,
"likes_count": 10060260,
"url": null,
"location": null
}
},
{
"author": {
"id": "user_679d13",
"username": "user_c5d687",
"display_name": "user_8803ea",
"avatar_url": "https://example.com/avatars/user_67de4c.png",
"bio": null,
"verified": null,
"followers": 338243,
"following": 374,
"posts_count": 464,
"likes_count": 2140124,
"url": null,
"location": null
}
}
],
"next_cursor": "30",
"total": 30,
"dropped": 0
},
"credits_used": 1,
"credits_remaining": 9999,
"request_id": "req-8Kq2ZmR4vT9xLb3P",
"cached": false,
"pagination": {
"next_cursor": "sc.eyJ2IjoyLCJjIjoiMzAiLCJwIjoiY3Vyc29yIn0",
"has_more": true,
"page_size": 30
},
"redacted": true
}TikTok API에서 가져온 예시예요. 모든 SocialCrawl 엔드포인트가 똑같은 통합 스키마를 돌려주기 때문에, Telegram Search 응답도 같은 필드로 구성돼요.
Telegram Search API는 어떻게 동작하나요
API 키와 함께 GET 요청을 보내면, 통합 스키마와 계산 필드를 담은 깔끔한 JSON이 돌아와요.
메서드
GET
응답 형식
JSON
소셜 미디어 데이터를 몇 초 만에 수집하는 방법
개발자를 위한 가장 빠른 소셜 미디어 스크래핑 API. 월간 활성 사용자 100억 명 이상을 포괄하는 68개 플랫폼에서 프로필, 게시물, 댓글, 분석 데이터를 수집하세요.
모든 플랫폼을 하나의 스키마로
동일한 응답 구조로 68개 플랫폼을 조회하세요. 연동은 한 번이면 충분합니다.
단순 수집을 넘어 계산된 필드 제공
엔드포인트가 해당 지표를 지원하고 계산에 필요한 원본 값이 있을 때, 정규화된 레코드에 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"
}
}
}Telegram Search 데이터, 가져올 준비 되셨어요?
API 키 받고 60초 안에 Telegram 데이터를 받아 가세요.
