{"endpoint":{"id":"treg.linkedin.post.comments","provider":"treg","provider_display":"treg","name":"linkedin.post.comments — routed: best of 2 providers, own keys first","summary":"Comments on a LinkedIn post, by post URN or numeric post id — provider-native rows in `comments`","method":"POST","path":"/linkedin.post.comments","scope":"","tier":"core","kind":"routed","domain":"post","call_template":"treg call treg.linkedin.post.comments --method POST --data '{\"post_id\":\"…\"}'","cost":{"type":"per_success","value":0.0015,"currency":"USD","per":1,"unit":"call","source":"inferred","confidence":"documented","checked":null,"varies":true,"note":"NOT free: misses are billed too. the children's range $0.0015–$0.02952 per hit, 0% markup; you pay the child that served AND every child tried before it that bills a miss (1 of 2 do), up to X-Treg-Route-Max-Cost (default $1 a call). X-Treg-Route-Exclude them, or X-Treg-Route-Waterfall: 0, to pay for one provider only","usd":0.0015},"async":null,"platform_eligible":true,"platform_blocked":null,"miss":{"status":200,"means":"output.comments == []"},"status":null,"status_note":null,"superseded_by":null,"verified":null,"added":null,"docs_url":"","has_example":false,"input":{"bodyType":"json","body":{"post_urn":{"type":"str","required":false,"note":"identity key (part of post_urn)"},"post_id":{"type":"str","required":false,"note":"identity key (part of post_id)"},"limit":{"type":"int","required":false,"note":"filter — default 10"}},"note":"Send everything you know about the subject — treg derives the rest (full_name ⇄ first+last), matches each provider on the variants it accepts ({post_urn} | {post_id}) and sends each provider only the fields it wants. On a miss treg keeps trying providers, cheapest first, within X-Treg-Route-Max-Cost (default $1 per call; misses on per-success providers are free). Options ride as headers, never in the body: X-Treg-Route-Waterfall: 0 (stop at the first miss), X-Treg-Route-Max-Cost: <usd>, X-Treg-Route-Prefer / X-Treg-Route-Exclude: <provider>. The response is {output, raw, _treg: {served_by, tried}}; X-Treg-Served-By names the child."},"test_request":{"body":{"post_id":"…"}},"routed_children":["fetchinio.linkedin.post.comments","justoneapi.x.linkedin-get-post-comments-v1"],"capability":"linkedin.post.comments","capability_description":"List a post's comments","platform":"linkedin","platform_label":"LinkedIn","observed":{"samples":4760,"decided":4760,"ok_rate":0.9504,"p50_ms":null,"p95_ms":null,"last_ok_days":0,"hit_rate":null,"hit_samples":0}},"provider":{"service":"treg","display_name":"treg"},"siblings":[{"id":"crawl4ai.linkedin.post.comments","provider":"crawl4ai","provider_display":"Crawl4AI","name":"Comments on a LinkedIn post","summary":"The top-level comments on one LinkedIn post, one row per comment: author, profile link, headline, text, time, likes (all reactions), reply count; replies themselves are not listed. `post` = the post URL (…-activity-<id>-… or …/feed/update/urn:li:activity:<id>) or the activity urn; `limit` up to 100, in LinkedIn's relevance order. `session` (your `li_at` and `JSESSIONID` cookies, from the Crawl4AI Session extension) is optional, used for this run only and never stored. Without it you get the post's top ~10 comments, without headline and reply count. Columns: author, author_url, author_headline, text, posted_at, likes, replies.","method":"POST","path":"/recipes/linkedin-post-comments","scope":"any_account","tier":"core","kind":"data","domain":"post","call_template":"treg call crawl4ai.linkedin.post.comments --method POST --data '{\"post\":\"https://www.linkedin.com/feed/update/urn:li:activity:7502080571335155713/\"}'","cost":{"type":"per_success","value":1.35,"currency":"credit","per":1,"unit":"call","source":"observed","source_url":"https://api.crawl4ai.com/recipes","checked":"2026-10-12","confidence":"verified","note":"treg's account price: 1.35 credits a call whatever pages the run fetched, second-source records included; a reply with no rows, a refused input and a failed run are free. The x-c4-cost header settles the actual charge.","usd":0.00135},"async":null,"platform_eligible":true,"platform_blocked":null,"miss":null,"status":null,"status_note":null,"superseded_by":null,"verified":"2026-10-11","added":"2026-10-11","docs_url":"https://crawl4ai.com/llms.txt","has_example":true,"input":{"bodyType":"json","body":{"limit":{"type":"integer","required":false,"note":"default 20","example":20},"post":{"type":"string","required":true,"example":"https://www.linkedin.com/feed/update/urn:li:activity:7502080571335155713/"}}},"body_allowlist":true,"test_request":{"body":{"post":"https://www.linkedin.com/feed/update/urn:li:activity:7502080571335155713/"}},"observed":{"samples":13,"decided":13,"ok_rate":0.9231,"p50_ms":1576,"p95_ms":25308,"last_ok_days":0,"hit_rate":null,"hit_samples":12}},{"id":"fetchinio.linkedin.post.comments","provider":"fetchinio","provider_display":"Fetchin","name":"LinkedIn post comments by URL or URN","summary":"Fetch comments from a professional post with author information and replies.","method":"GET","path":"/api/v1/post/comments","scope":"any_account","tier":"core","kind":"data","domain":"content","call_template":"treg call fetchinio.linkedin.post.comments --query postUrlOrUrn=urn:li:activity:7508596155145043968 --query count=1","cost":{"type":"per_call","value":0.0015,"currency":"USD","per":1,"unit":"call","source":"observed","source_url":"https://fetchin.io/pricing/credits","checked":"2026-09-24","confidence":"verified","note":"One credit per successful call. Fetchin also bills one credit for a 404; without provider-reported charge evidence treg releases rejected responses and absorbs that upstream cost.","usd":0.0015},"async":null,"platform_eligible":true,"platform_blocked":null,"miss":{"status":404,"means":"The post was not found; Fetchin bills one credit for this result."},"status":null,"status_note":null,"superseded_by":null,"verified":"2026-09-24","added":"2026-09-24","docs_url":"https://docs.fetchin.io/api-reference/endpoint/get-post-comments","has_example":true,"input":{"queryParams":{"postUrlOrUrn":{"type":"string","required":true,"example":"urn:li:activity:7508596155145043968","note":"Post URL, activity URN or share URN."},"count":{"type":"integer","required":false,"default":100,"min":1,"max":100},"start":{"type":"integer","required":false,"default":0,"min":0},"paginationToken":{"type":"string","required":false,"note":"Pass the token from the previous response unchanged when present."}},"note":"Advance start by the number of comments returned and preserve paginationToken when the response supplies one. Keep paging while hasMore is true."},"strict_query":true,"test_request":{"queryParams":{"postUrlOrUrn":"urn:li:activity:7508596155145043968","count":1}},"observed":{"samples":41273,"decided":37209,"ok_rate":0.9998,"p50_ms":1266,"p95_ms":3074,"last_ok_days":0,"hit_rate":0.8167,"hit_samples":37218},"reviews":{"teams":0,"samples":[{"usefulness":"useful","reason":"Returned the requested LinkedIn post comments with author, reply, pagination, and engagement fields.","client":"cli","month":"2026-09"}]}},{"id":"harvestapi.linkedin.post.comments","provider":"harvestapi","provider_display":"HarvestAPI","name":"Get comments on a LinkedIn post","summary":"Get comments of LinkedIn post by post URL.","method":"GET","path":"/linkedin/post-comments","scope":"any_account","tier":"core","kind":"data","domain":"social","call_template":"treg call harvestapi.linkedin.post.comments --query post=https://www.linkedin.com/posts/williamhgates_ive-been-thinking-a-lot-about-the-idea-of-activity-7503320303024926720-1t50 --query page=1","cost":{"type":"per_call","value":0.004,"currency":"USD","per":1,"unit":"call","source":"observed","source_url":"https://docs.harvestapi.io","checked":"2026-09-10","confidence":"verified","note":"Observed on treg’s prepaid Harvest account. Final platform cost follows the response cost, including billed misses and explicit zero. BYOK never charges the treg balance.","reported_charge":{"path":"cost","unit":"usd"},"usd":0.004},"async":null,"platform_eligible":true,"platform_blocked":null,"miss":null,"status":null,"status_note":null,"superseded_by":null,"verified":"2026-09-10","added":"2026-09-14","docs_url":"https://docs.harvestapi.io/linkedin-api-reference/openapi.json","has_example":true,"input":{"queryParams":{"post":{"type":"string","required":true,"note":"URL of the LinkedIn post (required)","example":"https://www.linkedin.com/posts/williamhgates_ive-been-thinking-a-lot-about-the-idea-of-activity-7503320303024926720-1t50"},"sortBy":{"type":"string","required":false,"note":"Sort comments by field. Supported values: 'relevance', 'date'"},"page":{"type":"integer","required":false,"note":"Page number for pagination. Default is 1","example":1},"paginationToken":{"type":"string","required":false,"note":"Required only if sortBy is 'relevance' and page > 1. Use this token from the previous page response."}},"note":"Use only the declared query parameters, once each, without a request body. Results are provider-native: inspect element/elements and body status/error; HTTP 200 alone does not prove a hit. Empty results can still be charged."},"strict_query":true,"test_request":{"queryParams":{"post":"https://www.linkedin.com/posts/williamhgates_ive-been-thinking-a-lot-about-the-idea-of-activity-7503320303024926720-1t50","page":1}},"observed":{"samples":18515,"decided":18511,"ok_rate":0.9999,"p50_ms":1910,"p95_ms":4773,"last_ok_days":0,"hit_rate":null,"hit_samples":0},"reviews":{"teams":0,"samples":[{"usefulness":"useful","reason":"All 13 comments with timestamps and commenter positions.","client":"mcp","month":"2026-10"},{"usefulness":"partly","reason":"Returned a public comment but supplied little additional substantive evidence.","client":"codex","month":"2026-09"},{"usefulness":"useful","reason":"Returned relevant LinkedIn comments with roles and direct comment links.","client":"cli","month":"2026-09"}]}},{"id":"justoneapi.x.linkedin-get-post-comments-v1","provider":"justoneapi","provider_display":"Just One API","name":"LinkedIn post comments by post id","summary":"Retrieves a page of LinkedIn comments for a post with relevance or recent sorting and activity or UGC post types.","method":"GET","path":"/api/linkedin/get-post-comments/v1","scope":"","tier":"extended","kind":"data","domain":"post","call_template":"treg call justoneapi.x.linkedin-get-post-comments-v1 --query postId=251749025 --query page=1 --query sortOrder=relevance --query postType=activity","cost":{"type":"per_success","value":0.2,"currency":"CNY","per":1,"unit":"call","source":"rate_card_api","source_url":"https://www.justoneapi.com/","checked":"2026-07-28","confidence":"documented","note":"billed only on success (code 0); errors free","usd":0.02952},"async":null,"platform_eligible":true,"platform_blocked":null,"miss":null,"status":null,"status_note":null,"superseded_by":null,"verified":"2026-07-28","added":"2026-07-28","docs_url":"https://docs.justoneapi.com/en/api/linkedin/post-comments-v1","has_example":true,"input":{"queryParams":{"postId":{"type":"string","required":true,"note":"LinkedIn post ID."},"page":{"type":"integer","required":false,"note":"Page number, starting from 1.","example":1},"sortOrder":{"type":"string","required":false,"enum":["RELEVANCE","RECENT"],"note":"Comment sort order. Available Values: - `RELEVANCE`: Sort comments by relevance - `RECENT`: Sort comments from most recent One of: RELEVANCE, RECENT.","example":"relevance"},"postType":{"type":"string","required":false,"enum":["ACTIVITY","UGC"],"note":"LinkedIn post identifier type. Available Values: - `ACTIVITY`: LinkedIn activity post - `UGC`: LinkedIn user-generated content post One of: ACTIVITY, UGC.","example":"activity"}}},"test_request":{"queryParams":{"postId":"251749025","page":"1","sortOrder":"relevance","postType":"activity"}},"observed":{"samples":628,"decided":628,"ok_rate":0.9968,"p50_ms":3271,"p95_ms":5464,"last_ok_days":0,"hit_rate":0.9984,"hit_samples":626},"reviews":{"teams":0,"samples":[{"usefulness":"useful","reason":"Page 2 of LinkedIn post comments returned with commenter name, headline, text and dates as expected.","client":"mcp","month":"2026-09"}]}},{"id":"tikhub.x.linkedin-web-v2-get-post-comments","provider":"tikhub","provider_display":"TikHub","name":"LinkedIn post comments by activity URN","summary":"Fetch comments of a LinkedIn post by its activity URN.","method":"GET","path":"/api/v1/linkedin/web_v2/get_post_comments","scope":"","tier":"extended","kind":"data","domain":"post","call_template":"treg call tikhub.x.linkedin-web-v2-get-post-comments --query urn=7267273010393358336 --query 'sort_by=Most relevant' --query page=1","cost":null,"async":null,"platform_eligible":false,"platform_blocked":null,"miss":null,"status":null,"status_note":null,"superseded_by":null,"verified":null,"added":"2026-08-19","docs_url":"","has_example":false,"input":{"queryParams":{"urn":{"type":"string","required":true,"note":"Numeric activity URN from the LinkedIn post URL.","example":"7267273010393358336"},"sort_by":{"type":"string","required":false,"note":"Most relevant (default) or Most recent."},"page":{"type":"integer","required":false,"note":"Page number, starting at 1.","example":1},"pagination_token":{"type":"string","required":false,"note":"Pagination token returned by the previous response."},"share_urn":{"type":"string","required":false,"note":"Optional share URN for shared posts."}}},"test_request":{"queryParams":{"urn":"7267273010393358336","sort_by":"Most relevant","page":1}},"observed":{"samples":0,"decided":0,"ok_rate":null,"p50_ms":null,"p95_ms":null,"last_ok_days":null,"hit_rate":null,"hit_samples":0}}],"related_capabilities":[{"endpoint_id":"treg.linkedin.company.profile","capability":"linkedin.company.profile","does":"Get a company's public profile"},{"endpoint_id":"treg.linkedin.post.detail","capability":"linkedin.post.detail","does":"Get a post's content & stats"},{"endpoint_id":"treg.linkedin.post.reactions","capability":"linkedin.post.reactions","does":"List a post's reactions"},{"endpoint_id":"treg.linkedin.user.posts","capability":"linkedin.user.posts","does":"List a member's recent posts"},{"endpoint_id":"treg.linkedin.user.profile","capability":"linkedin.user.profile","does":"Get a member's profile"}],"routing":{"contract":{"identity":[["post_urn"],["post_id"]],"output":{"comments":{"type":"list","required":true},"count":{"type":"int"}},"miss":"comments == []","derive":{}},"plan":[{"endpoint_id":"fetchinio.linkedin.post.comments","accepts":[["post_urn"],["post_id"]],"usd":0.0015,"hit_rate":0.8167,"usd_per_hit":0.0018366597281743603,"works":0.9998},{"endpoint_id":"justoneapi.x.linkedin-get-post-comments-v1","accepts":[["post_id"]],"usd":0.02952,"hit_rate":0.9984,"usd_per_hit":0.02952,"works":0.9968}],"also":[{"endpoint_id":"crawl4ai.linkedin.post.comments","usd":0.00135},{"endpoint_id":"harvestapi.linkedin.post.comments","usd":0.004},{"endpoint_id":"tikhub.x.linkedin-web-v2-get-post-comments","usd":null}],"headers":{"X-Treg-Route-Waterfall":"on by default: a miss tries the next provider; 0 = stop at the first miss","X-Treg-Route-Max-Cost":"USD ceiling for the whole call (default 1.00)","X-Treg-Route-Prefer":"provider[,…]","X-Treg-Route-Exclude":"provider[,…]","X-Treg-Route-Strict-Filters":"1 = never call a provider that cannot apply a filter you sent (answers 422, nothing charged); off by default — the answer names what was ignored in X-Treg-Ignored-Filters"}},"call_template":"treg call treg.linkedin.post.comments --method POST --data '{\"post_id\":\"…\"}'","example_response":null,"hints":["treg call treg.linkedin.post.comments --method POST --data '{\"post_id\":\"…\"}'   # run it — key injected server-side","treg catalog get crawl4ai.linkedin.post.comments   # the same job from crawl4ai"]}