Mine Facebook post comments for customer questions and sentiment
Turn comments on public Facebook posts and reels into JSON, one row per comment, to find customer questions, complaints and reactions to a campaign.
Your most honest customer feedback sits in the comments under your posts, your competitors' posts and your ads' organic copies, and nobody reads 4,000 of them. Lovely Router reads them for you. Send public post or reel links, get one JSON object per comment, pay per comment from a prepaid balance. Call it from a script, a reporting job or an AI agent with one API key.
Hand it to your AI agent
Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.
Mine Facebook post comments for customer questions and sentiment. Use the Lovely Router data tools: each returns JSON and is billed per result.
- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <the inputs (links, keywords or accounts) and how many results you need>How it works
Collect the post links
Copy the link of each public post, video or reel you want to read: a launch announcement, a complaint thread, a rival's viral post.
Run the tool with a cap
Send the links in
startUrlswithresultsLimitandmax_results. The run holds its maximum cost from your balance and returns the comments as JSON.Classify and act
Group the comments by theme with a model: questions to answer, complaints to route, praise to quote.
Get Facebook comments with one request
List Facebook comments takes public post, video, reel, photo or group-post links in startUrls. resultsLimit caps the comments per post:
curl https://lovelyrouter.com/v1/tools/facebook-comments/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"input": {
"startUrls": [
{
"url": "https://www.facebook.com/humansofnewyork/posts/pfbid0BbKbkisExKGSKuhee9a7i86RwRuMKFC8NSkKStB7CsM3uXJuAAfZLrkcJMXxhH4Yl"
}
],
"resultsLimit": 3
},
"max_results": 3
}'Add includeNestedComments to read replies too; each reply is its own row and counts toward the limit. onlyCommentsNewerThan drops older comments, and those are never charged. A run still going after 60 seconds returns 202; Run a tool shows how to poll.
What each comment holds
| Field group | What you get |
|---|---|
| Comment | One row per comment on the post |
| Replies | Replies as their own rows, when you turn on includeNestedComments |
| Order | Ranked or recent, set with viewOption |
The tool's description is short on purpose: it returns the comments of the post you point it at. Run a small test with resultsLimit at 3 and look at the rows before you scale up.
Recipes
Pull comments from a launch post, ask a model to extract every question, and hand the list to support or add it to your FAQ.
Read the recent comments (viewOption set to RECENT_ACTIVITY) under a bad-news post and sort them into refund, bug and shipping.
Run the same post daily with onlyCommentsNewerThan set to 1d, so you only pay for the comments from the last day.
Read the comments under a rival's top posts and note what buyers ask for that the rival does not answer.
Filter for comments that name a product and a result, and ask a model to rank them as quotes for your site, after checking permission to use them.
Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "Read the last 200 comments on each of the 5 post links in posts.txt, group them into questions, complaints and praise, and give me the top five questions. Set max_results to 1000."
Pair it with other feedback sources
Facebook comments are one slice of what people say. Compare them with:
Comments on public Facebook posts or reels by URL.
Posts from public Facebook pages (or groups): text, reactions, comments and shares counts, photos, date.
Comments on Instagram posts or reels by URL: text, likes, replies count, author, date.
Comments on YouTube videos or Shorts: text, likes, replies count, author, date. Sorted by top or latest.
Comments on a TikTok video by URL.
facebook-postslists the posts of a page, so you can pick which ones to read comments for.instagram-commentsreads comments under Instagram posts.youtube-commentsreads comments under videos.tiktok-commentsreads comments under TikTok videos.
For the wider job, see social listening. Comments can include names of private people: you are responsible for using them lawfully, including privacy rules.
What you pay
You pay per comment: starting a run holds its maximum cost, the per-call fee plus the per-comment fee times max_results, and the run settles to what it returned. The rest of the hold goes back to your balance. A run that fails or times out pays only for the comments it delivered, and a run refused at the start costs nothing.
Reading 500 comments a day is billed as 500 comments a day. There is no subscription and no monthly minimum: top up from $5, and one balance pays for tools and models. The card above shows today's price; pricing lists every tool.
Frequently asked questions
Can I get replies to comments?+
Yes. Set includeNestedComments to true. Every reply comes back as its own row and counts toward your limit.
Can I get only new comments?+
Yes. Set onlyCommentsNewerThan to a date, a span such as 7d, or yesterday. Older comments are dropped and never charged.
Does it work on private groups or profiles?+
The tool is for public posts, videos, reels, photos and group-post links.
How do I keep a test cheap?+
Set resultsLimit to a small number, such as 3, and max_results to match. You pay per comment.
Do I need a subscription?+
No. You add credit to a prepaid balance and each run draws it down. Failed runs pay only for the comments they delivered.
More on the same theme: social listening, review monitoring and the tool catalog.