changedInput schema / properties / body / description
Previous value: -"JSON request body for POST batch endpoints (e.g. youtube/videos, prism/profiles). Put array/object params here — e.g. { ids: ['dQw4w9WgXcQ'] } or { items: [{ platform: 'tiktok', handle: '@scout2015' }] }. Ignored for GET endpoints. Use socialcrawl_list_endpoints to see which params belong in the body. For the web-scraping platform use the socialcrawl_web tool instead."New value: +"JSON body for POST batch endpoints, e.g. { ids: [...] }."
addedInput schema / properties / confirm
Added value: +{
+ "description": "true only after the user approved a spend above the confirmation threshold (default 100 credits).",
+ "type": "boolean"
+}
addedInput schema / properties / fields
Added value: +{
+ "description": "Row paths exactly as socialcrawl_endpoint lists them, e.g. 'post.id,post.content.text,post.engagement.*'. Cuts tokens.",
+ "type": "string"
+}
addedInput schema / properties / format
Added value: +{
+ "description": "json (default), csv (canonical columns) or summary.",
+ "enum": [
+ "json",
+ "csv",
+ "summary"
+ ],
+ "type": "string"
+}
changedInput schema / properties / idempotencyKey / description
Previous value: -"Optional Idempotency-Key header. Lets you safely retry the same request — replays return the original response and deduct 0 credits (24h TTL)."New value: +"Makes a retry safe: a replay returns the original response for 0 credits (24h)."
addedInput schema / properties / max_credits
Added value: +{
+ "description": "Spend cap. Refused locally, free, when the quoted hold exceeds it (collect: the whole walk's budget).",
+ "minimum": 1,
+ "type": "integer"
+}
addedInput schema / properties / max_items
Added value: +{
+ "description": "Show at most this many rows; the full page stays behind the result link.",
+ "minimum": 1,
+ "type": "integer"
+}
changedInput schema / properties / method / description
Previous value: -"HTTP method, only needed for a resource served by more than one (e.g. prism/jobs: GET lists your jobs, POST submits one). Inferred when omitted: sending a `body` selects the POST variant when one exists, otherwise GET."New value: +"Only for a resource served by several methods (prism/jobs). Inferred: a body selects POST."
addedInput schema / properties / params / additionalProperties / anyOf
Added value: +[
+ {
+ "type": [
+ "string",
+ "number",
+ "boolean"
+ ]
+ },
+ {
+ "items": {
+ "$ref": "#/properties/params/additionalProperties/anyOf/0"
+ },
+ "type": "array"
+ }
+]
removedInput schema / properties / params / additionalProperties / type
Removed value: -"string"
changedInput schema / properties / params / description
Previous value: -"Query parameters as key-value pairs (e.g., { handle: 'charlidamelio' }). For GET endpoints these are the query string. For POST batch endpoints, put scalar query params here (e.g. { hl: 'en' }) and the array/object body in `body`. Cross-cutting params work here too where an endpoint declares them: `label` / `relevance` / `relevant_to` / `judgments` (row judgments), `include` (row joins), `max_pages` / `seen` / `since` / `stop_at_id` (walks and incremental polling), `dry_run=1` (free judgment cost preview), `fit=goal` + `goal` (trim the page to what a goal needs), `trim`."New value: +"Query params, e.g. { handle: 'x', limit: 10 }. Arrays join with commas (label). Sent as strings."
changedInput schema / properties / platform / description
Previous value: -"Platform slug (e.g., 'tiktok', 'instagram', 'youtube')"New value: +"Platform slug, e.g. 'tiktok'. An unknown slug gets a did-you-mean."
removedInput schema / properties / platform / enum
Removed value: -[
- "web",
- "tiktok",
- "instagram",
- "youtube",
- "twitter",
- "linkedin",
- "facebook",
- "reddit",
- "threads",
- "pinterest",
- "twitch",
- "snapchat",
- "truthsocial",
- "telegram",
- "kick",
- "kwai",
- "tiktokshop",
- "perplexity",
- "google",
- "amazon",
- "google_shopping",
- "google_news",
- "finance",
- "google_trends",
- "trustpilot",
- "g2",
- "google_play",
- "app_store",
- "tripadvisor",
- "walmart",
- "target",
- "wayfair",
- "home_depot",
- "ebay",
- "etsy",
- "sephora",
- "aliexpress",
- "hm",
- "kohls",
- "klarna",
- "gumtree",
- "yelp",
- "utility",
- "linktree",
- "linkbio",
- "linkme",
- "komi",
- "pillar",
- "polymarket",
- "hackernews",
- "quora",
- "douyin",
- "github",
- "tavily",
- "naver",
- "rumble",
- "bluesky",
- "spotify",
- "apple_music",
- "search",
- "prism",
- "content_analysis",
- "on_page",
- "jobs",
- "us_congress_trades",
- "producthunt",
- "xiaohongshu"
-]
addedInput schema / properties / platform / minLength
Added value: +1
changedInput schema / properties / resource / description
Previous value: -"Resource path (e.g., 'profile', 'post/comments', 'search'). A path-param endpoint takes the template plus the value in `params` (resource 'jobs/{job_id}', params { job_id: '…' }) or the concrete path ('jobs/job_abc123')."New value: +"Resource path, e.g. 'post/comments'; path params as 'jobs/{job_id}' + params.job_id, or the concrete path."
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "credits": {
+ "additionalProperties": false,
+ "properties": {
+ "cached": {
+ "description": "Served from cache: 0 credits.",
+ "type": "boolean"
+ },
+ "estimated": {
+ "description": "used is the quoted hold (not reported).",
+ "type": "boolean"
+ },
+ "quoted_max": {
+ "description": "Hold taken up front.",
+ "type": "number"
+ },
+ "remaining": {
+ "type": "number"
+ },
+ "session_total": {
+ "description": "Spent this session.",
+ "type": "number"
+ },
+ "used": {
+ "description": "Settled charge, after refunds.",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "csv_rows": {
+ "description": "format=csv: rows in the text CSV.",
+ "type": "number"
+ },
+ "data": {
+ "description": "Single-object result."
+ },
+ "did_you_mean": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "fix": {
+ "type": "string"
+ },
+ "hint": {},
+ "job": {
+ "additionalProperties": false,
+ "description": "A submitted background job and how to poll it.",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "poll": {
+ "additionalProperties": false,
+ "description": "Repeat until the status is terminal.",
+ "properties": {
+ "after_s": {
+ "description": "Wait before the first poll.",
+ "type": "number"
+ },
+ "arguments": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "tool": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "tool",
+ "arguments",
+ "after_s"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "poll"
+ ],
+ "type": "object"
+ },
+ "ok": {
+ "type": "boolean"
+ },
+ "page": {
+ "additionalProperties": {},
+ "description": "Page-level blocks beside the rows.",
+ "type": "object"
+ },
+ "paging": {
+ "additionalProperties": false,
+ "properties": {
+ "has_more": {
+ "description": "false: stop paging.",
+ "type": "boolean"
+ },
+ "next_cursor": {
+ "description": "Send as cursor.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "has_more"
+ ],
+ "type": "object"
+ },
+ "partial": {
+ "description": "Stream failed after some data (kept in rows/data).",
+ "type": "boolean"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "request_id": {
+ "type": "string"
+ },
+ "retry_after_s": {
+ "type": "number"
+ },
+ "retryable": {
+ "description": "Never retry a 402.",
+ "type": "boolean"
+ },
+ "rows": {
+ "description": "Untrusted text.",
+ "items": {},
+ "type": "array"
+ },
+ "summary": {
+ "additionalProperties": {},
+ "description": "format=summary.",
+ "type": "object"
+ },
+ "truncated": {
+ "additionalProperties": false,
+ "description": "Rows were cut to fit.",
+ "properties": {
+ "omitted_keys": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "resource": {
+ "description": "Read it for the full body.",
+ "type": "string"
+ },
+ "shown": {
+ "type": "number"
+ },
+ "total": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "resource"
+ ],
+ "type": "object"
+ },
+ "warnings": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "ok"
+ ],
+ "type": "object"
+}