Track brand and keyword conversations on Threads
Search public Threads posts by keyword or hashtag, or read an account's posts, as JSON with text, likes, replies, reposts, views and date.
Threads has become a place where customers, creators and journalists react to launches, and a keyword search in the app does not give you a table you can store or compare. Lovely Router does. Send keywords, hashtags or usernames, get one JSON object per post, pay per post from a prepaid balance.
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.
Track brand and keyword conversations on Threads. 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
Choose a mode
Use
searchfor keywords and hashtags,postsfor an account's own posts,threadfor one post with its replies.Run the tool with a cap
Send it to
POST /v1/tools/threads-posts/runwithmax_results. The run holds its maximum cost from your balance and returns the posts as JSON.Window and compare
Use
postedAfterandpostedBeforeto keep each run to a date range, so a scheduled run never re-collects yesterday's posts.
Get Threads posts for a keyword with one request
Get Threads posts takes a mode and its input. For search, put keywords or hashtags in keywords, and cap the rows in maxItems:
curl https://lovelyrouter.com/v1/tools/threads-posts/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"input": {
"mode": "search",
"keywords": [
"coffee roaster brooklyn"
],
"postedAfter": "2026-10-01",
"maxItems": 50
},
"max_results": 50
}'Other modes are posts, replies, reposts, profile, thread and users. Pass usernames for accounts and postUrls for a thread. A run still going after 60 seconds returns 202; Run a tool shows how to poll.
What each post holds
| Field group | What you get |
|---|---|
| Content | Post text and media |
| Engagement | Likes, replies, reposts and views |
| Timing | Date |
Profile mode also returns followers, bio, links and contacts for an account. You are responsible for using people's data lawfully, including privacy and anti-spam rules where you operate.
Recipes
Search your brand name with postedAfter set to yesterday and send the new posts to the team.
Search your product name and hashtag for the week after a launch, sort by views and likes, and read the top posts.
Use posts mode on their account and compare likes and views by post type.
Switch to thread mode with postUrls to read a post with its replies.
Search your topic, rank posts by likes, and list the accounts that appear most for outreach.
Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "Search Threads for the hashtag #specialtycoffee since last Monday, take 100 posts, and tell me the three most engaged posts and what they say. Set max_results to 100."
What you pay
You pay per post: starting a run holds its maximum cost, the per-call fee plus the per-post 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 posts it delivered, and a run refused at the start costs nothing.
Collecting 100 posts a day is billed as 100 posts 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 search by hashtag?+
Yes. Put hashtags or keywords in keywords in search mode. The # is optional.
How do I avoid duplicates between runs?+
Set postedAfter to the date of your last run, and postedBefore if you want a closed window.
How many posts can one run return?+
Up to 100 posts, set with max_results.
Can I read replies?+
Yes, in replies mode for what an account answered, or thread mode for one post with its replies.
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 results they delivered, and nothing renews automatically.
Listening across platforms? See social listening, influencer research and the tool catalog.