소셜 데이터 파이프라인, 문장만 넣으면 호출 계획이 나와요
소셜 데이터 파이프라인은 문장만 넣으면 호출 계획이 나와요. 순서는 무료로 알려 주고, 빈 파라미터와 크레딧, 측정된 필드 채움률까지 실행 전에 보여 줘요.
소셜 데이터 파이프라인으로 하려는 일을 한 문장으로 GET /v1/utility/plan?query=에 넣으면, 호출 순서와 채워진 파라미터, 아직 빈 파라미터, 그 단계의 크레딧이 돌아와요. 파라미터 이름은 query예요. q가 아니에요.
이 주소는 계획에 적힌 호출을 실행하지 않아요. 단계에 적힌 크레딧은 나중에 그 경로를 칠 때의 견적이고 계획을 받은 순간에 빠지는 값이 아니에요. 2026-10-17에 SocialCrawl에 계획 호출 6번과 엔드포인트 가이드 6번을 보냈어요. 그 응답의 HTTP credits_used는 모두 0이에요. 응답 Date가 2026-10-17인 건 그 시각에 답을 읽었다는 뜻이에요. 채움률을 잰 날은 따로예요. 계획 시각은 Sat, 17 Oct 2026 07:15:44 GMT가 1건, 07:15:45 GMT가 5건이에요. 가이드 6건은 Sat, 17 Oct 2026 07:18:15 GMT예요.
넣은 문장은 6개예요. 미리 정해 둔 문장이지, 한국어 계획 품질 전체를 대표하는 표본은 아니에요. 그중 단계가 빈 배열로 돌아온 것은 하나예요. 어떤 문장인지는 아래에서 응답 그대로 볼게요. 여섯 개 모두 바로 실행되는 계획이 나왔다고 읽으면 안 돼요. 유료 경로는 이번 수확에서 호출하지 않았어요.
용어집은 경로, 파라미터, 크레딧을 주지 않아요. IBM 한국어 페이지는 파이프라인을 이렇게 적어요. 소스의 원시 데이터를 변환해 레이크나 웨어하우스에 넣는 방법이라고 해요. AWS 한국어 페이지는 구성을 소스, 변환, 종속성, 대상으로 나눠요. 소셜 미디어 데이터 파이프라인의 경로 이름이나 비어 있는 파라미터, 호출 비용, 필드가 비는지 여부는 거기 없어요. AWS 영어 안내는 트렌드와 검색을 이벤트와 큐로 잇지만 문장에 해당하는 빈 파라미터와 크레딧, 측정된 채움은 없어요.
소셜 미디어 데이터 수집은 어떤 호출부터 하나요?
첫 호출은 틱톡 프로필이 아니에요. 프로필 경로가 계획의 첫 단계로 나와도, 그 단계는 handle이 없어 blocked예요. 먼저 묻는 주소는 GET /v1/utility/plan?query=이고 SocialCrawl API는 그 호출에서 단계를 실행하지 않아요.
2026-10-17에 넣은 영어 문장은 a creator's TikTok profile, their recent videos and the comments on them예요.
curl -G "https://www.socialcrawl.dev/v1/utility/plan" \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
--data-urlencode "query=a creator's TikTok profile, their recent videos and the comments on them"응답은 HTTP 200이에요. kind는 call_plan, version은 4, cached는 false, credits_used는 0이에요. 계획 본문은 이렇게 돌아왔어요.
{
"kind": "call_plan",
"version": 4,
"recipe": "creator_profile",
"uncertain": false,
"confidence": 1,
"steps": [
{
"id": "tiktok_profile",
"method": "GET",
"path": "/v1/tiktok/profile",
"params": {},
"missing": ["handle"],
"credits": 1,
"run": "blocked"
},
{
"id": "tiktok_posts",
"method": "GET",
"path": "/v1/tiktok/profile/videos",
"params": {},
"missing": ["handle"],
"credits": 1,
"run": "blocked",
"depends_on": "tiktok_profile",
"binds": { "handle": "tiktok_profile.author.username" }
},
{
"id": "tiktok_comments",
"method": "GET",
"path": "/v1/tiktok/post/comments",
"params": {},
"missing": ["url"],
"credits": 1,
"run": "blocked",
"depends_on": "tiktok_posts",
"binds": { "url": "tiktok_posts.items[].post.url" }
}
],
"ask": [{ "step": "tiktok_profile", "param": "handle" }],
"cannot": [],
"cannot_ids": [],
"cheaper": "single_endpoint",
"deeper": null,
"catalog_recipe": "creator-profile-posts-comments",
"size": {
"description": "profile, one page of videos, first comment page on five videos",
"items": 5
},
"total": {
"calls": 31,
"hold": 31,
"expected_min": 31,
"expected_max": 31,
"exact": true,
"priced_with_examples": ["handle", "url"]
},
"fan_out": [
{ "from": "tiktok_profile", "each": 5, "to": "tiktok_posts" },
{ "from": "tiktok_posts", "each": 5, "to": "tiktok_comments" }
]
}recipe는 creator_profile, uncertain은 false, cannot은 빈 배열이에요. confidence는 1이에요. 단계는 3개고 셋 다 run이 blocked예요. params는 비어 있어요.
| 단계 | 경로 | missing | credits | run | 묶는 값 |
|---|---|---|---|---|---|
| tiktok_profile | /v1/tiktok/profile | handle | 1 | blocked | 없음 |
| tiktok_posts | /v1/tiktok/profile/videos | handle | 1 | blocked | handle = tiktok_profile.author.username |
| tiktok_comments | /v1/tiktok/post/comments | url | 1 | blocked | url = tiktok_posts.items[].post.url |
tiktok_posts는 tiktok_profile에 의존해요. handle은 프로필 응답의 author.username에서 와요. tiktok_comments는 tiktok_posts에 의존하고 url은 tiktok_posts.items[].post.url에서 와요. 댓글 단계가 포스트 주소를 직접 갖고 있지 않아서 앞 단계가 막히면 뒤도 같이 막혀요.
단계 행은 3개예요. total.calls, total.hold, expected_min, expected_max는 31이고 exact는 true예요. 행이 3개라는 사실과 31은 같은 칸이 아니에요. 단계 credits 1, 1, 1을 더해 이 문장의 견적으로 쓰지도 않았어요. fan_out은 응답 그대로예요. 프로필에서 영상으로 each 5, 영상에서 댓글로 each 5예요. total.calls 31은 그 팬아웃이 적어 둔 호출 수예요. 단계 세 줄의 크레딧을 합친 값이 아니에요. 5와 5를 다시 곱해서 31을 맞추지도 않았어요. 두 칸을 응답에 적힌 대로 따로 두면 돼요.
size.description은 profile, one page of videos, first comment page on five videos이고 size.items는 5예요. 이 문장과 31이 달라 보여도 둘 다 응답 값이에요. 한쪽을 다른 쪽에 맞춰 고치지 않았어요.
ask는 tiktok_profile의 handle 하나예요. priced_with_examples는 handle과 url이에요. catalog_recipe는 creator-profile-posts-comments예요. cheaper는 single_endpoint이고 deeper는 null이에요.
run이 blocked라고 HTTP가 실패한 것은 아니에요. 상태는 200이에요. handle이나 url을 주기 전에는 그 경로를 치지 못하게 막아 둔 거예요. 계획을 받았다고 틱톡 프로필이 호출된 것은 아니에요.
한국어 문장도 handle을 채우나요?
아니요. 나이키 틱톡 프로필이랑 최근 영상, 댓글까지도 단계 표는 같아요. confidence만 0.99예요. 영어 문장의 1과 다른 점은 그 숫자뿐이에요. params는 비어 있고 missing은 handle이에요. 문장에 나이키가 있어도 handle에 나이키를 넣지 않았어요. uncertain은 false, cannot은 빈 배열, total.calls와 total.hold도 31이에요.
curl -G "https://www.socialcrawl.dev/v1/utility/plan" \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
--data-urlencode "query=나이키 틱톡 프로필이랑 최근 영상, 댓글까지"파라미터와 크레딧은 문장마다 어떻게 갈리나요?
나머지 네 문장이에요. 소셜 데이터 수집 API가 적어 둔 단계 크레딧과 total.hold는 견적이에요. 여섯 계획 모두 HTTP credits_used는 0이에요. 유료 경로는 호출하지 않았어요. 31, 20, 1, 비어 있는 계획, 6을 한 청구서로 더하지 않았어요.
나이키 멘션은 검색이랑 모니터가 따로인가요?
문장은 watch mentions of Nike on TikTok and Reddit예요. recipe는 brand_monitoring, uncertain은 false, confidence는 0.74예요. 단계는 2개예요. cannot_ids는 change_alert 하나예요. fan_out은 빈 배열이에요. total.calls는 1, total.hold는 20, exact는 true예요. size.description은 one brand, one window, size.items는 1이에요. catalog_recipe는 brand-listening이에요. cheaper는 topic_search, deeper는 saved_search_monitor예요.
| 단계 | 경로 | params | missing | credits | run |
|---|---|---|---|---|---|
| mentions | /v1/search/everywhere | query=Nike, sources=tiktok,reddit | 없음 | 20 | ready |
| monitor | /v1/monitors | 비어 있음 | cadence, webhook_url | null | blocked |
mentions는 GET /v1/search/everywhere이고 run이 ready예요. 검색어 Nike와 소스 tiktok,reddit이 이미 채워져 있어요. 이 경로를 따로 다룬 글은 여러 플랫폼을 한 번에 검색하는 API예요. 이번 계획의 20을 그 글의 결과로 읽지는 마세요.
monitor는 POST /v1/monitors예요. depends_on은 mentions예요. body.recipe는 search/everywhere이고 body.params는 query Nike, sources tiktok,reddit예요. 이 단계의 credits는 null이라 행 안에 가격이 없어요. notes는 모니터 한 번이 GET /v1/search/everywhere와 같은 20크레딧이라고 적어요. 검색의 20과 그 20을 더하지 않았어요. 응답 노트는 그 두 견적을 한 문장에 적어 둬요. 하나는 검색을 한 번 부르는 값이에요. 다른 하나는 모니터가 나중에 같은 검색을 한 번 다시 부를 때의 값이에요.
cannot의 뜻은 이 범위를 넘지 않아요. 새 글 웹훅이나 급증 웹훅은 없어요. 모니터는 예약한 호출을 다시 돌리고 결과를 전달해요. 알림 규칙은 숫자 비교예요. gt, lt, pct_change예요.
recurring은 kind가 monitor, per가 21, per_day가 1, cadence가 1 run per day, unit이 day, cadence_assumed가 true예요. 하루 한 번은 응답이 가정해 둔 간격이에요. 단계 credits 20과 null, total.hold 20, recurring.per 21은 서로 다른 칸이에요. 한 가격으로 합치지 않았어요. 단계 행은 2개인데 total.calls는 1이에요. 그 차이도 그대로 뒀어요.
{
"kind": "call_plan",
"version": 4,
"recipe": "brand_monitoring",
"uncertain": false,
"confidence": 0.74,
"cannot_ids": ["change_alert"],
"cannot": [
"There is no new-post or spike webhook. A monitor re-runs one call on a schedule and delivers each result; its alert rules compare numbers (gt, lt, pct_change)."
],
"steps": [
{
"id": "mentions",
"method": "GET",
"path": "/v1/search/everywhere",
"params": { "query": "Nike", "sources": "tiktok,reddit" },
"missing": [],
"credits": 20,
"run": "ready"
},
{
"id": "monitor",
"method": "POST",
"path": "/v1/monitors",
"params": {},
"missing": ["cadence", "webhook_url"],
"depends_on": "mentions",
"credits": null,
"run": "blocked",
"body": {
"recipe": "search/everywhere",
"params": { "query": "Nike", "sources": "tiktok,reddit" }
},
"notes": [
"Each run bills the same credits as `GET /v1/search/everywhere` (20 per run)."
]
}
],
"fan_out": [],
"size": { "description": "one brand, one window", "items": 1 },
"total": { "calls": 1, "hold": 20, "exact": true },
"recurring": {
"kind": "monitor",
"per": 21,
"per_day": 1,
"cadence": "1 run per day",
"unit": "day",
"cadence_assumed": true
},
"catalog_recipe": "brand-listening",
"cheaper": "topic_search",
"deeper": "saved_search_monitor"
}러닝화의 "in the US"는 파라미터가 되나요?
아니요. 문장은 search TikTok for running shoes in the US예요. recipe는 topic_search, uncertain은 false, confidence는 0.99예요. 단계는 1개, run은 ready, cannot은 빈 배열이에요.
경로는 /v1/tiktok/search예요. params에는 query=running shoes만 있어요. missing은 비어 있고 credits는 1이에요. total.calls는 1, total.hold는 1, exact는 true예요. in the US는 params에 없어요. 국가 키도 없어요. ready는 이 한 호출을 지금 형태로 넣을 수 있다는 뜻이에요. 미국 필터가 적용됐다는 뜻이 아니에요.
size.description은 one page from each of three platforms이고 size.items는 60이에요. catalog_recipe는 topic-across-platforms예요. 그런데 steps는 1개이고 fan_out은 빈 배열이에요. 플랫폼 3개나 항목 60을 이 계획의 실행 결과로 쓰지 않았어요. 유료 검색은 호출하지 않았어요. cheaper는 single_endpoint, deeper는 brand_monitoring이에요. size에 적힌 범위와 단계 수가 다르면, 단계 표를 보면 돼요.
{
"kind": "call_plan",
"version": 4,
"recipe": "topic_search",
"uncertain": false,
"confidence": 0.99,
"steps": [
{
"id": "tiktok_search",
"method": "GET",
"path": "/v1/tiktok/search",
"params": { "query": "running shoes" },
"missing": [],
"credits": 1,
"run": "ready"
}
],
"cannot": [],
"size": {
"description": "one page from each of three platforms",
"items": 60
},
"total": { "calls": 1, "hold": 1, "exact": true },
"fan_out": [],
"cheaper": "single_endpoint",
"deeper": "brand_monitoring",
"catalog_recipe": "topic-across-platforms"
}홍보 영상 문장은 왜 단계가 비나요?
문장은 make a promo video of my product예요. 여섯 문장 가운데 steps가 빈 배열인 것은 이것뿐이에요.
recipe는 none, uncertain은 true, reason은 no_recipe, confidence는 1이에요. steps, ask, cannot, cannot_ids는 전부 빈 배열이에요. cheaper와 deeper는 null이에요. total 키는 없어요. HTTP는 200이고 credits_used는 0이에요. confidence 1은 빈 계획이라고 판단한 값이에요. 영상 호출을 찾았다는 뜻이 아니에요. 단계가 없으니 견적 크레딧도 없어요.
{
"kind": "call_plan",
"version": 4,
"recipe": "none",
"uncertain": true,
"reason": "no_recipe",
"confidence": 1,
"steps": [],
"ask": [],
"cannot": [],
"cannot_ids": [],
"cheaper": null,
"deeper": null
}팔로워 이력은 빈 계획인가요?
아니에요. 문장은 follower history chart for a TikTok account예요. recipe는 creator_profile, uncertain은 false, confidence는 0.53이에요. 단계는 2개이고 둘 다 blocked예요. cannot_ids는 history예요. 홍보 영상처럼 steps가 비어 있는 응답이 아니에요. 단계와 cannot이 같이 있어요.
| 단계 | 경로 | missing | credits | run | 묶는 값 |
|---|---|---|---|---|---|
| tiktok_profile | /v1/tiktok/profile | handle | 1 | blocked | 없음 |
| tiktok_posts | /v1/tiktok/profile/videos | handle | 1 | blocked | handle = tiktok_profile.author.username |
fan_out은 프로필에서 영상으로 each 5, 하나예요. total.calls는 6, total.hold는 6, expected_min은 6, expected_max는 6, exact는 true예요. 단계 credits 1, 1과 total 6은 응답에 같이 있어요. 둘을 한 식으로 합치지 않았어요. ask는 handle이고 priced_with_examples는 handle만이에요. 댓글 단계는 없어요.
과거 값은 저장하지 않아요. 호출은 오늘의 숫자를 주지만 팔로워 차트나 이력은 가져올 수 없어요. 일정으로 다시 호출해 직접 쌓으라는 뜻이에요. 응답에 없는 저장 기능은 약속하지 않아요.
size.description은 댓글 페이지를 말하지만 댓글 단계는 없어요. 그 문장으로 댓글 호출이 있다고 쓰지 않았어요. size.items는 5예요. 크리에이터 문장에는 댓글 단계가 있었는데, 이력 문장에는 없어요. confidence 0.53은 여섯 문장 가운데 가장 낮아요. 낮다고 계획이 비었다는 뜻은 아니에요.
{
"kind": "call_plan",
"version": 4,
"recipe": "creator_profile",
"uncertain": false,
"confidence": 0.53,
"cannot_ids": ["history"],
"cannot": [
"Past values are not stored: each call returns today's number, so a follower chart or a history cannot be fetched. Re-run the call on a schedule and keep your own series."
],
"steps": [
{
"id": "tiktok_profile",
"method": "GET",
"path": "/v1/tiktok/profile",
"params": {},
"missing": ["handle"],
"credits": 1,
"run": "blocked"
},
{
"id": "tiktok_posts",
"method": "GET",
"path": "/v1/tiktok/profile/videos",
"params": {},
"missing": ["handle"],
"depends_on": "tiktok_profile",
"credits": 1,
"run": "blocked",
"binds": { "handle": "tiktok_profile.author.username" }
}
],
"ask": [{ "step": "tiktok_profile", "param": "handle" }],
"fan_out": [{ "from": "tiktok_profile", "each": 5, "to": "tiktok_posts" }],
"size": {
"description": "profile, one page of videos, first comment page on five videos",
"items": 5
},
"total": {
"calls": 6,
"hold": 6,
"expected_min": 6,
"expected_max": 6,
"exact": true,
"priced_with_examples": ["handle"]
}
}
필드 채움률은 호출하기 전에 볼 수 있나요?
필드 채움률은 계획 응답에 없어요. GET /v1/utility/endpoint?id=의 data.quality예요. id는 계획이 돌려준 path에서 앞의 /v1/를 뺀 값이에요. 그렇게 호출한 id는 tiktok/profile, tiktok/profile/videos, tiktok/post/comments, tiktok/search, search/everywhere, monitors예요.
curl -G "https://www.socialcrawl.dev/v1/utility/endpoint" \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
--data-urlencode "id=tiktok/profile"측정된 네 건의 공통값은 이래요. measured는 true, window_days는 30, measured_from은 2026-09-23, measured_to는 2026-09-23, sampled_calls는 1, by_rung은 빈 배열, null_by_design은 빈 배열이에요. fill_rate 값은 전부 1이에요. 1을 퍼센트로 고치지 않았어요. 네 건 모두 HTTP 200, credits_used 0, cached false예요.
window_days 30은 창의 길이로 적힌 숫자예요. measured_from과 measured_to가 둘 다 2026-09-23이라 표본은 하루예요. sampled_calls도 1이에요. 이 창은 2026-10-17에 다시 잰 값이 아니에요. 2026-10-17은 응답 Date일 뿐이에요. 프로필도 같아요. measured는 true이고 sampled_calls는 1이에요. from과 to가 둘 다 2026-09-23이에요. freshness_hours는 null이에요.
예시 입력 한 번으로 잰 값이에요. 날짜가 하루이고 호출이 1번이라, 이 1을 그 엔드포인트가 늘 그렇게 찬다는 말로 바꾸지 않아요. 비어 있게 설계된 필드는 null_by_design에 따로 두고 fill_rate에서 빼요. 이번 네 건에서 그 배열은 비어 있어요. 목록이 비어 있다고 다음 호출도 모든 칸이 채워진다는 뜻은 아니에요.
data.contract.quality도 네 건이 같아요. measured는 true, fill_rate_window는 2026-09-23..2026-09-23, sampled_calls는 1, field_health는 2026-09-28이에요. fill_rate 맵은 contract 쪽에 없어요. field_health의 2026-09-28을 measured_to로 바꾸지 않았어요. 채움을 본 날과 필드 건강을 적어 둔 날은 달라요.
| id | freshness_hours | 필드 수 | 1이 아닌 필드 |
|---|---|---|---|
| tiktok/profile | null | 13 | 없음 |
| tiktok/profile/videos | 0.8 | 19 | 없음 |
| tiktok/post/comments | 3817.2 | 10 | 없음 |
| tiktok/search | 16.2 | 20 | 없음 |
tiktok/profile의 freshness_hours는 null이에요. 0으로 두지 않았어요. 0.8, 3817.2, 16.2는 응답 값 그대로예요. 반올림하거나 일수로 바꾸지 않았어요. 댓글의 3817.2가 영상이나 검색보다 훨씬 큰 건 그 호출의 최신 날짜 행이 더 오래됐다는 응답 값이에요. 일수로 환산해 다른 숫자를 만들지는 않았어요.
method는 네 엔드포인트가 같은 영어 한 문장이에요. 표본 크기나 식을 번역하면서 새로 만들지 않으려고 그대로 둬요.
"Production calls made with the endpoint's example inputs, bypassing the cache; fill_rate is the share of returned rows carrying a value for each field over the rolling window, fields that are null by design are listed separately and left out of it, and freshness_hours is the median age of the newest dated row per call."
프로필 필드 13개의 값은 모두 1이에요. author.avatar_url, author.bio, author.display_name, author.ext.bio_link, author.ext.business_category, author.followers, author.following, author.id, author.likes_count, author.posts_count, author.private, author.username, author.verified.
영상 19개, 댓글 10개, 검색 20개도 키를 빼지 않았어요. 각 fill_rate 맵은 이렇게 돌아왔어요.
{
"post.author.avatar_url": 1,
"post.author.display_name": 1,
"post.author.username": 1,
"post.content.duration_seconds": 1,
"post.content.media_urls": 1,
"post.content.text": 1,
"post.content.thumbnail_url": 1,
"post.engagement.comments": 1,
"post.engagement.likes": 1,
"post.engagement.saves": 1,
"post.engagement.shares": 1,
"post.engagement.views": 1,
"post.ext.author_followers": 1,
"post.ext.author_id": 1,
"post.ext.download_count": 1,
"post.ext.music_id": 1,
"post.flags.pinned": 1,
"post.id": 1,
"post.published_at": 1
}{
"comment.author.avatar_url": 1,
"comment.author.display_name": 1,
"comment.author.username": 1,
"comment.engagement.likes": 1,
"comment.engagement.replies": 1,
"comment.flags.pinned": 1,
"comment.id": 1,
"comment.post_id": 1,
"comment.published_at": 1,
"comment.text": 1
}{
"post.author.avatar_url": 1,
"post.author.display_name": 1,
"post.author.username": 1,
"post.content.duration_seconds": 1,
"post.content.media_urls": 1,
"post.content.text": 1,
"post.content.thumbnail_url": 1,
"post.engagement.comments": 1,
"post.engagement.likes": 1,
"post.engagement.saves": 1,
"post.engagement.shares": 1,
"post.engagement.views": 1,
"post.ext.author_followers": 1,
"post.ext.author_id": 1,
"post.ext.download_count": 1,
"post.ext.music_id": 1,
"post.ext.region": 1,
"post.flags.pinned": 1,
"post.id": 1,
"post.published_at": 1
}검색 맵에만 post.ext.region이 있어요. 영상 맵에는 그 키가 없어요. 둘 다 값이 1인 건 그 하루의 한 호출에서 그래요.
search/everywhere와 monitors는 왜 표에 없나요?
search/everywhere는 HTTP 200이고 credits_used는 0이에요. data.quality.measured는 false예요. reason은 not sampled in the last 30 days이고 null_by_design은 빈 배열이에요. fill_rate, sampled_calls, measured_from, measured_to, freshness_hours 키는 없어요. contract도 measured가 false, fill_rate_window가 null, sampled_calls가 null, field_health가 null이에요. 이 엔드포인트의 채움률 숫자를 만들지 않았어요. 측정되지 않은 것을 1로 읽으면 안 돼요.
{
"measured": false,
"reason": "not sampled in the last 30 days",
"null_by_design": []
}id=monitors는 HTTP 404예요. credits_used는 0이에요. error.type은 RESOURCE_NOT_FOUND, error.status는 404, error.retryable은 false예요. error.message는 Unknown endpoint 'monitors'. GET /v1/utility/endpoints returns the full catalog.예요. quality는 없어요. POST /v1/monitors의 채움률을 적지 않았어요. 계획의 경로에서 /v1/만 떼어 id를 만들면 카탈로그에 없는 이름이 될 수 있어요. 이번 수확의 monitors가 그 경우예요.
말로 적은 계획을 대시보드에서도 볼 수 있나요?
이번 수확은 대시보드를 다시 열지 않았어요. 이 절은 2026-09-23 앱 노트에 적힌 범위예요. 플랜 API를 호출해서 본 숫자와 다른 숫자는 만들지 않았어요.
표면은 POST /api/ai/assistant와 /dashboard/build예요. 일을 적으면 카드가 순서대로 나와요. 카드마다 경로, 메시지에서 취한 값, 아직 없는 값, 크레딧이 있어요. 첫 호출에는 curl이 있어요. 단계를 실행하면 요청이 메시지 칸에 들어가요. 크레딧을 쓰기 전에 확인이 있어요.
제안 질문은 계획의 경로를 문장에 넣어요. 노트의 예는 /v1/tiktok/profile/videos 페이지네이션이에요. 페이지네이션을 이번 수확에서 측정한 것처럼 넓히지 않았어요. API가 하지 않는 일 아래에는 제안이 없어요. 노트의 예는 영상을 만드는 일이에요. 위에서 no_recipe로 단계가 빈 문장과 같은 경우예요.
실패한 호출을 붙여 넣으면 고칠 곳을 말해요. 흔히 파라미터 이름 자리에 표현식이 들어가 검색어가 파라미터 이름이 돼요. 이름은 query이고 표현식은 값이에요. 타임아웃, 없는 키, 없는 파라미터, 찾지 못한 항목은 설명이 있어요. 한국어 또는 영어예요. 샘플 오류 JSON은 만들지 않았어요.
실행 아래 카운트 스트립은 없어요. 문서 절을 앞에 두는 답과 리포트 챗의 테마 이름은 플랜 카드가 아니에요. 그 둘의 테스트 횟수와 소요 시간은 없어요.
키를 받은 뒤 가장 작은 호출은 무엇인가요?
소셜 데이터 수집은 유료 틱톡 경로부터 치지 않아요. API 키 하나로 아래 순서면 돼요. 가입할 때 받는 크레딧이 얼마인지는 이번 수확에 없어서 그 숫자는 적지 않았어요.
키만 받은 뒤에 /v1/tiktok/profile부터 치면, 크리에이터 문장에서 본 것처럼 handle이 비어 blocked가 될 수 있어요. 그 경로는 유료예요. 이번 수확에서는 치지 않았어요. 같은 일을 한 문장으로 plan에 넣으면, 단계를 실행하지 않는 호출이 순서와 빈 칸, 견적을 먼저 돌려줘요. 그 응답의 credits_used는 이번에 0이었어요.
missing이 있는 단계는 blocked예요. handle이나 url, 모니터의 cadence와 webhook_url처럼 비어 있는 이름을 채우기 전에는 다음 경로로 가지 않아요. 한국어 문장에 브랜드가 있어도, 이번 표본은 handle을 스스로 채우지 않았어요. 값을 넣는 일은 계획을 읽은 다음에 해요.
채움률을 보려면 계획의 path에서 /v1/만 빼요. tiktok/profile은 그렇게 해서 quality가 있었어요. monitors는 같은 방식으로 만들었더니 404였고 quality가 없었어요. 계획에 경로가 있다고 가이드 id도 있다고 보면 안 돼요. search/everywhere는 200이었지만 measured가 false라 채움 숫자는 없었어요.
재현할 때는 새 문장을 지어 넓히지 않아요. 이 글의 여섯 문장을 그대로 넣어요.
- 키를 받아요.
- 가장 작은 호출은
GET /v1/utility/plan?query=에 일을 한 문장 넣는 거예요. missing이 있으면 그 단계는blocked예요. 값을 채운 뒤에야 다음이에요.- 돌아온 path에서
/v1/를 뺀 id로GET /v1/utility/endpoint?id=를 보면quality가 있어요.monitors는 이 수확에서 404였어요. - 재현 주소는
https://www.socialcrawl.dev/v1/utility/plan?query=와https://www.socialcrawl.dev/v1/utility/endpoint?id=예요.
자주 묻는 질문
이 플랜 호출은 크레딧이 드나요?
이번 수확의 plan과 endpoint HTTP credits_used는 0이에요. 단계에 적힌 1, 20, null과 hold, recurring.per는 견적이지 이번에 빠진 값이 아니에요. 계획을 받았다고 유료 경로가 실행된 것도 아니에요.
파라미터 이름은 q인가요, query인가요?
이번 수확은 query만 썼어요. q로 거절되는지는 이번 호출로 확인하지 않았어요. 확인하지 않은 거절은 이번 결과에 적지 않아요.
필드 채움률은 어느 응답에서 보나요?
GET /v1/utility/endpoint?id=의 data.quality.fill_rate예요. plan 응답이 아니에요. measured가 false면 그 숫자가 없어요. search/everywhere가 이번 수확에서 그렇게 돌아왔어요.
대시보드에 붙여넣은 오류도 설명해 주나요?
2026-09-23 앱 노트에 적힌 동작이에요. 이번 글에서 오류를 붙여넣어 다시 확인하지는 않았어요. 노트는 이름과 값의 자리를 말해요. 이름은 query이고 표현식은 값이에요. 실행 아래 카운트 스트립은 없다고 해요.
플랫폼마다 다른 JSON을 그대로 받나요, 한 스키마인가요?
이번 채움률은 틱톡 네 엔드포인트뿐이라, 이 표로 플랫폼이 달라도 JSON이 같다고 말하지 않아요. 필드 이름은 그 fill_rate 키만 봤어요. 응답을 한 모양으로 받는 통합 스키마의 버전 문자열은 이번 수확에서 보지 않았어요. 검색 경로가 어떻게 갈리는지는 여러 플랫폼을 한 번에 검색하는 API에서 따로 봐요. 그 글의 숫자를 이번 표에 붙이지 않았어요.
같은 여섯 문장을 자기 키로 https://www.socialcrawl.dev/v1/utility/plan?query=에 넣어요. 돌아온 path에서 /v1/를 뺀 값으로 https://www.socialcrawl.dev/v1/utility/endpoint?id=를 보면, 위에서 본 항목을 다시 받을 수 있어요. 채움률 표본일은 2026-09-23 하루예요.
함께 읽으면 좋은 글
SNS 댓글 분석: 이미 물은 질문 120개
SNS 댓글 분석으로 나열한 질문 120개 중 109개가 댓글이에요. 누가, 무엇, 왜, 어떻게, 비교로 묶었어요. 댓글 언어는 나라가 아니에요. 표는 아래예요.
best tiktok analytics tools, 공개 데이터에 없던 지표 5개
2026년 10월 17일, 계정 18개의 게시물 180개를 봤어요. 지표 16개 중 5개는 확인한 행이 전부 비었어요. 사운드 제목과 조회수 밖의 재생 수는 포스트만 비었고 나머지 셋은 프로필과 포스트가 비었어요.
리뷰 감성분석 API 비교: 별점과 문장은 따로 읽어요
리뷰 감성분석 API 비교는 수집, 문장 점수, 판매자 주제 요약으로 갈려요. 2026-10-11 아마존 10건은 별 5점이 8개인데 level 4는 7개였어요. 호텔 예시는 상품이 아니에요.
