ListeningSource
Possible values: [tiktok, instagram, facebook, youtube, threads, x, pinterest, lemon8, reddit, telegram, shopee, tiki, lazada, tiktok_shop, google_maps, app_store, google_play, news, forum]
Tiki / Lazada product or shop added as a share link (ti.ki/…, s.lazada.vn/…, c.lazada.vn/…, lzd.co/…): the page the link opened in its latest collection, as the actor reported it (OUTPUT targets[].from), normalized like a typed value; null before and on other sources, and again after value changes. Adding or editing a source to a value another source has as value or resolved_value is that source (create: 200 with it; edit: 422). A link that opens the other kind (a product added as a shop), or a page another active source already collects, turns the source off (is_active false) with status failed and the reason in last_error; nothing of that run is kept
Results per run: the source's own value, else the project's (the effective one, never null; PATCH null follows the project)
Override of the project posts switch (null: follow the project). 422 on a source that gives no posts
Override of the comments switch (null: follow the project). 422 on a source with no comments
Override of the reviews switch (null: follow the project). 422 on a source that reads no reviews
Override of the review comments switch (null: follow the project). 422 off Tiki reviews
Override of the platform numbers switch (null: follow the project). 422 on other than review targets
settings object
What the source collects with, resolved: its own value, else the project's collect_defaults, else the system default
effective object
What sources collect. Switches default to on (comments: on when the project's collect_comments is); each key is optional. On a source only the keys its kind can use appear
Project: the same setting as collect_comments. Off whenever posts is off
Tiki review comments. Off whenever reviews is off
The platform's own numbers of a review target. Off whenever reviews is off
Possible values: >= 1 and <= 500
Possible values: >= 1 and <= 500
Possible values: >= 1 and <= 5
Possible values: >= 1 and <= 20
Possible values: >= 1 and <= 40
The keys whose value came from the project or the system
Comments read per post when the project collects comments (null: the default, 50; at most 500)
Sources that read reviews (a product, shop, place or app, or a review search): only these stars are read, sent to the actor as ratings (null: follow the project's collect_defaults.review_stars; [] or all five: every star, stored as all five, the source's own choice over a project that filters)
Possible values: >= 1 and <= 5
Review searches (shopee, tiki, lazada, google_maps, app_store, google_play keyword): how many top products, places or apps are read (null: 5)
Possible values: >= 1 and <= 20
target_stats object | null
Review sources (product, shop, place, app): the platform's own numbers about the target from the latest collection that carried them; each value null when the platform did not say. Read only
Average stars, 0–5
Written reviews, when the platform counts them apart from ratings
distribution object | null
Ratings per star {"1": n, …, "5": n}
Shopee shop: good ratings
App Store app sources: more storefronts (ISO countries, stored lower case, once each) whose reviews of the app are read after its own one's, sent as moreCountries (null: follow the project's collect_defaults.review_countries; []: only the URL's storefront, over the project's; the URL's own storefront is dropped when given, and from the stored list when value moves to another storefront). 422 on other sources
Possible values: <= 9
App Store app sources: the own storefront of value (the URL's country, vn when it names none), read anyway and never among review_countries; null on other sources
Possible values: Value must match regular expression ^[a-z]{2}$
Shop sources of tiki, lazada (at most 40) and tiktok_shop (at most 20): how many of the shop's best-selling products have their reviews read, sent as productsPerShop (null: 10, TikTok Shop 5). 422 on other sources or above the platform's cap
Possible values: >= 1 and <= 40
Google Play sources: the review language buckets read (Google Play serves one language at a time), the first sent as language, the others as moreLanguages. 422 on other sources
Possible values: <= 5
status object
The latest collection's status, null before the first
- ListeningCollectionStatus
- null
succeeded: every target answered; partial: items, but some targets blocked/failed; empty: genuinely nothing (never retried); blocked: 0 items, the platform refused (captcha, login wall, 429); failed: 0 items, another error; stale: no answer long after the run's timeout. Blocked/failed collections are retried after 10, 30, 90 min (blocked ones on the next proxy tier).
succeeded: every target answered; partial: items, but some targets blocked/failed; empty: genuinely nothing (never retried); blocked: 0 items, the platform refused (captcha, login wall, 429); failed: 0 items, another error; stale: no answer long after the run's timeout. Blocked/failed collections are retried after 10, 30, 90 min (blocked ones on the next proxy tier).
Possible values: [running, succeeded, partial, empty, blocked, failed, stale]
error_codes object
Error items by crawl-contract code: BLOCKED, LOGIN_REQUIRED, RATE_LIMITED, NOT_FOUND, PRIVATE, EMPTY, SCHEMA_CHANGED, FAILED.
0 for a regular collection, 1.. for retries
When the blocked/failed collection is retried
Crawl historical data of the source (project backfill_days ⟩ 0): pending until its first collection starts, running until one finishes with posts or empty (blocked/failed ones retry as backfills, 3 backfill collections at most), done; failed when those 3 never finished it (later collections read at normal depth). null: no backfill
Possible values: [pending, running, done, failed, null]
{
"id": "string",
"platform": "tiktok",
"kind": "string",
"value": "string",
"resolved_value": "string",
"results_limit": 0,
"collect_posts": true,
"collect_comments": true,
"collect_reviews": true,
"collect_review_comments": true,
"collect_target_stats": true,
"settings": {
"effective": {
"posts": true,
"comments": true,
"reviews": true,
"review_comments": true,
"target_stats": true,
"results_limit": 0,
"comments_per_post": 0,
"review_stars": "Unknown Type: array,null",
"per_search": 0,
"per_shop": 0,
"review_languages": "Unknown Type: array,null",
"review_countries": "Unknown Type: array,null"
},
"inherited": [
"string"
]
},
"comments_per_post": 0,
"review_stars": "Unknown Type: array,null",
"per_search": 0,
"target_stats": "Unknown Type: object,null",
"review_countries": "Unknown Type: array,null",
"storefront": "string",
"per_shop": 0,
"review_languages": "Unknown Type: array,null",
"is_active": true,
"last_collected_at": "2024-07-29T15:51:28.071Z",
"last_error": "string",
"status": "running",
"error_codes": {},
"attempt": 0,
"retry_at": "2024-07-29T15:51:28.071Z",
"backfill_status": "pending"
}