{"endpoint":{"id":"treg.linkedin.post.reactions","provider":"treg","provider_display":"treg","name":"linkedin.post.reactions — routed: best of 2 providers, own keys first","summary":"Who reacted to a LinkedIn post, by post URN or numeric post id — provider-native rows in `reactions`","method":"POST","path":"/linkedin.post.reactions","scope":"","tier":"core","kind":"routed","domain":"content","call_template":"treg call treg.linkedin.post.reactions --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.reactions == []"},"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.reactions","justoneapi.x.linkedin-get-post-reactions-v1"],"capability":"linkedin.post.reactions","capability_description":"List a post's reactions","platform":"linkedin","platform_label":"LinkedIn","observed":{"samples":1844,"decided":1844,"ok_rate":0.9382,"p50_ms":null,"p95_ms":null,"last_ok_days":0,"hit_rate":null,"hit_samples":0}},"provider":{"service":"treg","display_name":"treg"},"siblings":[{"id":"fetchinio.linkedin.post.reactions","provider":"fetchinio","provider_display":"Fetchin","name":"LinkedIn post reactions by URL or URN","summary":"Fetch reactions on a professional post with reactor profile information.","method":"GET","path":"/api/v1/post/reactions","scope":"any_account","tier":"core","kind":"data","domain":"content","call_template":"treg call fetchinio.linkedin.post.reactions --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-reactions","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}},"note":"Offset-paginated. Advance start by the number of reactions returned while hasMore is true."},"strict_query":true,"test_request":{"queryParams":{"postUrlOrUrn":"urn:li:activity:7508596155145043968","count":1}},"observed":{"samples":27380,"decided":25843,"ok_rate":0.9968,"p50_ms":1752,"p95_ms":4559,"last_ok_days":0,"hit_rate":0.9866,"hit_samples":25765},"reviews":{"teams":0,"samples":[{"usefulness":"partly","reason":"Offset pagination worked and returned headlines, but paging through 414 reactions returned 4 duplicate reactors across pages, so a few unique reactors were likely missed.","client":"mcp","month":"2026-10"},{"usefulness":"useful","reason":"Returned all 15 reactors with names and headlines for one call, enough to classify roles. No company or company size field, so a profile lookup is still needed for firmographic checks.","client":"mcp","month":"2026-10"},{"usefulness":"useful","reason":"Returned all 48 reactors with headlines for $0.0015; headlines alone were enough to keep ~60% as audit/accounting professionals. No reaction dates and profile URLs are URN-style.","client":"mcp","month":"2026-10"}]}},{"id":"harvestapi.linkedin.post.reactions","provider":"harvestapi","provider_display":"HarvestAPI","name":"Get reactions to a LinkedIn post","summary":"Get reactions of LinkedIn post by post URL.","method":"GET","path":"/linkedin/post-reactions","scope":"any_account","tier":"core","kind":"data","domain":"social","call_template":"treg call harvestapi.linkedin.post.reactions --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"},"page":{"type":"integer","required":false,"note":"Page number for pagination. Default is 1","example":1}},"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":14341,"decided":14339,"ok_rate":0.9999,"p50_ms":1543,"p95_ms":3929,"last_ok_days":0,"hit_rate":null,"hit_samples":0},"reviews":{"teams":0,"samples":[{"usefulness":"useful","reason":"First 100 reactors with headlines per LinkedIn post URL; fed a keyword buyer/peer classifier directly.","client":"mcp","month":"2026-10"},{"usefulness":"useful","reason":"Reactor list with name, headline and reaction type, 100 per page, cheap and complete.","client":"mcp","month":"2026-09"}]}},{"id":"justoneapi.x.linkedin-get-post-reactions-v1","provider":"justoneapi","provider_display":"Just One API","name":"LinkedIn post reactions by post id","summary":"Retrieves LinkedIn reaction records for a post, optionally filtered by reaction type and page.","method":"GET","path":"/api/linkedin/get-post-reactions/v1","scope":"","tier":"extended","kind":"data","domain":"post","call_template":"treg call justoneapi.x.linkedin-get-post-reactions-v1 --query postId=251749025 --query page=1 --query type=all","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-reactions-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},"type":{"type":"string","required":false,"enum":["ALL","LIKE","PRAISE","EMPATHY","APPRECIATION","INTEREST"],"note":"Reaction type filter. Available Values: - `ALL`: All reaction types - `LIKE`: Like reactions - `PRAISE`: Praise reactions - `EMPATHY`: Empathy reactions - `APPRECIATION`: Appreciation reactions - `INTEREST`: Interest reactions One of: ALL, LIKE, PRAISE, EMPATHY, APPRECIATION, INTEREST.","example":"all"}}},"test_request":{"queryParams":{"postId":"251749025","page":"1","type":"all"}},"observed":{"samples":65,"decided":65,"ok_rate":1.0,"p50_ms":503,"p95_ms":817,"last_ok_days":0,"hit_rate":0.9538,"hit_samples":65}}],"related_capabilities":[{"endpoint_id":"treg.linkedin.company.profile","capability":"linkedin.company.profile","does":"Get a company's public profile"},{"endpoint_id":"treg.linkedin.post.comments","capability":"linkedin.post.comments","does":"List a post's comments"},{"endpoint_id":"treg.linkedin.post.detail","capability":"linkedin.post.detail","does":"Get a post's content & stats"},{"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":{"reactions":{"type":"list","required":true},"count":{"type":"int"}},"miss":"reactions == []","derive":{}},"plan":[{"endpoint_id":"fetchinio.linkedin.post.reactions","accepts":[["post_urn"],["post_id"]],"usd":0.0015,"hit_rate":0.9866,"usd_per_hit":0.0015203729981755523,"works":0.9968},{"endpoint_id":"justoneapi.x.linkedin-get-post-reactions-v1","accepts":[["post_id"]],"usd":0.02952,"hit_rate":0.9538,"usd_per_hit":0.02952,"works":1.0}],"also":[{"endpoint_id":"harvestapi.linkedin.post.reactions","usd":0.004}],"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.reactions --method POST --data '{\"post_id\":\"…\"}'","example_response":null,"hints":["treg call treg.linkedin.post.reactions --method POST --data '{\"post_id\":\"…\"}'   # run it — key injected server-side","treg catalog get fetchinio.linkedin.post.reactions   # the same job from fetchinio"]}