[{"data":1,"prerenderedAt":1193},["ShallowReactive",2],{"blog-\u002Fblog\u002Fship-an-x-trending-topics-tracker":3,"blog-related-\u002Fblog\u002Fship-an-x-trending-topics-tracker":923},{"id":4,"title":5,"author":6,"body":7,"category":907,"cover":908,"description":909,"draft":910,"extension":911,"image":907,"launchCta":907,"listingCover":907,"meta":912,"navigation":913,"ogImage":907,"path":914,"publishedAt":915,"readTime":907,"seo":916,"stem":917,"tags":918,"toolCategory":907,"updatedAt":907,"__hash__":922},"blogUnlisted\u002Fblog\u002Fship-an-x-trending-topics-tracker.md","Ship an X Trending Topics Tracker That Logs Rise and Fall","The Monid Team",{"type":8,"value":9,"toc":891},"minimark",[10,14,18,94,104,109,168,172,181,185,188,195,199,204,213,221,229,233,239,247,251,254,288,296,300,306,329,332,378,382,398,446,449,488,494,528,534,538,541,621,640,643,661,665,668,696,703,728,731,767,774,778,798,804,808,815,842,855,876,887],[11,12,13],"p",{},"You can stand up an X (Twitter) trending topics tracker in one sitting: one API call returns the current trends list for a country, a little jq flattens it into rows of topic, rank, and tweet volume, and an hourly schedule turns those snapshots into a record of what climbed and what faded. No X API plan, no developer portal, one wallet for the whole thing.",[11,15,17],{"style":16},"font-size:18px !important;line-height:1.65 !important;margin:0 0 24px;color:inherit;","Copy this line to your agent to start tracking X trends for a country.",[19,20,25],"pre",{"className":21,"code":22,"language":23,"meta":24,"style":24},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and use tikhub to pull X trending topics for a country and log rank changes over time\n","sh","",[26,27,28],"code",{"__ignoreMap":24},[29,30,33,37,41,44,47,50,53,56,59,62,65,68,71,74,77,79,82,85,88,91],"span",{"class":31,"line":32},"line",1,[29,34,36],{"class":35},"s2Zo4","set",[29,38,40],{"class":39},"sfazB"," up",[29,42,43],{"class":39}," https:\u002F\u002Fmonid.ai\u002FSKILL.md",[29,45,46],{"class":39}," and",[29,48,49],{"class":39}," use",[29,51,52],{"class":39}," tikhub",[29,54,55],{"class":39}," to",[29,57,58],{"class":39}," pull",[29,60,61],{"class":39}," X",[29,63,64],{"class":39}," trending",[29,66,67],{"class":39}," topics",[29,69,70],{"class":39}," for",[29,72,73],{"class":39}," a",[29,75,76],{"class":39}," country",[29,78,46],{"class":39},[29,80,81],{"class":39}," log",[29,83,84],{"class":39}," rank",[29,86,87],{"class":39}," changes",[29,89,90],{"class":39}," over",[29,92,93],{"class":39}," time\n",[11,95,96,103],{},[97,98,102],"a",{"href":99,"rel":100},"https:\u002F\u002Fmonid.ai",[101],"nofollow","Monid"," is a pay-per-call data API marketplace: one interface and one wallet to discover and run hundreds of external data endpoints without a separate signup per vendor. The X trending endpoint you need is already in the catalog, so this build is mostly plumbing, jq, and a cron line.",[105,106,108],"h2",{"id":107},"tldr","TL;DR",[110,111,112,130,149,158,165],"ul",{},[113,114,115,116,121,122,125,126,129],"li",{},"Trends come from ",[97,117,120],{"href":118,"rel":119},"https:\u002F\u002Ftikhub.io",[101],"TikHub",", endpoint ",[26,123,124],{},"tikhub"," ",[26,127,128],{},"\u002Fapi\u002Fv1\u002Ftwitter\u002Fweb\u002Ffetch_trending",", which returns the live trending list for one country per call.",[113,131,132,133,136,137,140,141,144,145,148],{},"The only input that matters is ",[26,134,135],{},"country"," (default ",[26,138,139],{},"UnitedStates","), and it is a query parameter, so you pass it with ",[26,142,143],{},"--query",", not ",[26,146,147],{},"-i",".",[113,150,151,152,157],{},"Billing is per call, not per result, so one pull of the whole list is a flat fraction of a cent regardless of how many trends come back. See ",[97,153,156],{"href":154,"rel":155},"https:\u002F\u002Fmonid.ai\u002Ftools",[101],"monid.ai\u002Ftools"," for the live number.",[113,159,160,161,164],{},"jq flattens each snapshot into ",[26,162,163],{},"{topic, rank, tweet_volume}"," rows, and appending a timestamp per run is what lets you chart rise and fall later.",[113,166,167],{},"Hand steps 3 and 4 to cron or Task Scheduler on an hourly cadence and you have a trend history that stays in single-digit dollars a month.",[105,169,171],{"id":170},"why-not-the-official-x-api","Why not the official X API",[11,173,174,175,180],{},"Worth being precise. X removed its free API tier in 2026, so the trends-place endpoint that used to be a casual pull now sits behind a paid ",[97,176,179],{"href":177,"rel":178},"https:\u002F\u002Fdeveloper.x.com\u002Fen\u002Fdocs\u002Fx-api",[101],"X API"," plan with a monthly commitment and app review before you touch it. For a job whose entire output is \"the trending list for a country, once an hour,\" that is a standing subscription and an onboarding process in front of a single field of data. The TikHub endpoint below is metered per call through Monid, so the access and upkeep stay on the provider side and you pay only for the snapshots you actually take.",[105,182,184],{"id":183},"what-you-are-building","What you are building",[11,186,187],{},"The finished job calls the trending endpoint for a country, receives the current ranked list, flattens it to rows of topic, rank, and tweet volume, stamps each row with the time it was pulled, and appends everything to a running log. Run it every hour and the log becomes a time series: you can see a topic enter at rank 18, climb to 3 by mid-afternoon, and drop off by evening. That is a lightweight trend-radar for any market you care about, no dashboard vendor required.",[11,189,190],{},[191,192],"img",{"alt":193,"src":194},"The tracker: a country through TikHub fetch_trending to raw trends JSON, flattened with jq into rows, appended with a timestamp, building a trends log","\u002Fimg\u002Fblog\u002Fship-an-x-trending-topics-tracker-fig-tracker-loop.png",[105,196,198],{"id":197},"set-up-monid-once","Set up Monid once",[200,201,203],"h3",{"id":202},"for-agents","For agents",[11,205,206,207,212],{},"Grab an API key at ",[97,208,211],{"href":209,"rel":210},"https:\u002F\u002Fapp.monid.ai\u002F",[101],"app.monid.ai",", then paste this to your agent and hand it the key:",[19,214,219],{"className":215,"code":217,"language":218},[216],"language-text","set up https:\u002F\u002Fmonid.ai\u002FSKILL.md\n","text",[26,220,217],{"__ignoreMap":24},[11,222,223,224,148],{},"It learns the whole discover, inspect, run workflow itself. More details in the ",[97,225,228],{"href":226,"rel":227},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-skill",[101],"agent quickstart",[200,230,232],{"id":231},"for-humans","For humans",[19,234,237],{"className":235,"code":236,"language":218},[216],"npm install -g @monid-ai\u002Fcli\nmonid keys add --label main --key \u003Cyour-api-key>\n",[26,238,236],{"__ignoreMap":24},[11,240,241,242,148],{},"More details in the ",[97,243,246],{"href":244,"rel":245},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-cli",[101],"CLI quickstart",[105,248,250],{"id":249},"step-1-find-the-endpoint-free","Step 1: Find the endpoint (free)",[11,252,253],{},"Search the catalog for the capability. Discovery is free and returns endpoints with provider, description, price, and a verified tag.",[19,255,257],{"className":21,"code":256,"language":23,"meta":24,"style":24},"monid discover -q \"twitter x trending topics by country\"\n# -> tikhub \u002Fapi\u002Fv1\u002Ftwitter\u002Fweb\u002Ffetch_trending   (verified, per call)\n",[26,258,259,281],{"__ignoreMap":24},[29,260,261,265,268,271,275,278],{"class":31,"line":32},[29,262,264],{"class":263},"sBMFI","monid",[29,266,267],{"class":39}," discover",[29,269,270],{"class":39}," -q",[29,272,274],{"class":273},"sMK4o"," \"",[29,276,277],{"class":39},"twitter x trending topics by country",[29,279,280],{"class":273},"\"\n",[29,282,284],{"class":31,"line":283},2,[29,285,287],{"class":286},"sHwdD","# -> tikhub \u002Fapi\u002Fv1\u002Ftwitter\u002Fweb\u002Ffetch_trending   (verified, per call)\n",[11,289,290,291,125,293,295],{},"The hit you want is ",[26,292,124],{},[26,294,128],{},". It is the only endpoint this build needs.",[105,297,299],{"id":298},"step-2-read-the-schema-before-you-spend-free","Step 2: Read the schema before you spend (free)",[11,301,302,303,305],{},"Inspect the endpoint to confirm the input field, the country list, and the current price. Also free, and this is where you learn that ",[26,304,135],{}," is a query parameter, which changes the flag you use to run it.",[19,307,309],{"className":21,"code":308,"language":23,"meta":24,"style":24},"monid inspect -p tikhub -e \u002Fapi\u002Fv1\u002Ftwitter\u002Fweb\u002Ffetch_trending\n",[26,310,311],{"__ignoreMap":24},[29,312,313,315,318,321,323,326],{"class":31,"line":32},[29,314,264],{"class":263},[29,316,317],{"class":39}," inspect",[29,319,320],{"class":39}," -p",[29,322,52],{"class":39},[29,324,325],{"class":39}," -e",[29,327,328],{"class":39}," \u002Fapi\u002Fv1\u002Ftwitter\u002Fweb\u002Ffetch_trending\n",[11,330,331],{},"Two things to read off the output:",[110,333,334,375],{},[113,335,336,337,339,340,342,343,346,347,346,350,346,353,346,356,346,359,346,362,346,365,368,369,144,371,374],{},"Input is a single query param, ",[26,338,135],{},", defaulting to ",[26,341,139],{},". The inspect output prints the full list of accepted values, dozens of them, including ",[26,344,345],{},"Japan",", ",[26,348,349],{},"India",[26,351,352],{},"Brazil",[26,354,355],{},"UnitedKingdom",[26,357,358],{},"Germany",[26,360,361],{},"SouthKorea",[26,363,364],{},"Mexico",[26,366,367],{},"Nigeria",", and more. Use those exact spellings (",[26,370,355],{},[26,372,373],{},"UK",").",[113,376,377],{},"Pricing type is per call, not per result. You pay one flat amount for the whole trending list, however long it is, so a country with 30 trends costs the same as one with 10.",[105,379,381],{"id":380},"step-3-pull-the-trends-for-a-country","Step 3: Pull the trends for a country",[11,383,384,385,387,388,390,391,393,394,397],{},"Now the only step that bills. Because ",[26,386,135],{}," is a query parameter, pass it with ",[26,389,143],{}," rather than ",[26,392,147],{},". The ",[26,395,396],{},"-w"," flag waits inline and writes the finished result to a file.",[19,399,401],{"className":21,"code":400,"language":23,"meta":24,"style":24},"monid run -p tikhub -e \u002Fapi\u002Fv1\u002Ftwitter\u002Fweb\u002Ffetch_trending \\\n  --query '{\"country\":\"UnitedStates\"}' -w -o trends-raw.json\n",[26,402,403,423],{"__ignoreMap":24},[29,404,405,407,410,412,414,416,419],{"class":31,"line":32},[29,406,264],{"class":263},[29,408,409],{"class":39}," run",[29,411,320],{"class":39},[29,413,52],{"class":39},[29,415,325],{"class":39},[29,417,418],{"class":39}," \u002Fapi\u002Fv1\u002Ftwitter\u002Fweb\u002Ffetch_trending",[29,420,422],{"class":421},"sTEyZ"," \\\n",[29,424,425,428,431,434,437,440,443],{"class":31,"line":283},[29,426,427],{"class":39},"  --query",[29,429,430],{"class":273}," '",[29,432,433],{"class":39},"{\"country\":\"UnitedStates\"}",[29,435,436],{"class":273},"'",[29,438,439],{"class":39}," -w",[29,441,442],{"class":39}," -o",[29,444,445],{"class":39}," trends-raw.json\n",[11,447,448],{},"Swap the country to point the same job anywhere:",[19,450,452],{"className":21,"code":451,"language":23,"meta":24,"style":24},"monid run -p tikhub -e \u002Fapi\u002Fv1\u002Ftwitter\u002Fweb\u002Ffetch_trending \\\n  --query '{\"country\":\"Japan\"}' -w -o trends-japan.json\n",[26,453,454,470],{"__ignoreMap":24},[29,455,456,458,460,462,464,466,468],{"class":31,"line":32},[29,457,264],{"class":263},[29,459,409],{"class":39},[29,461,320],{"class":39},[29,463,52],{"class":39},[29,465,325],{"class":39},[29,467,418],{"class":39},[29,469,422],{"class":421},[29,471,472,474,476,479,481,483,485],{"class":31,"line":283},[29,473,427],{"class":39},[29,475,430],{"class":273},[29,477,478],{"class":39},"{\"country\":\"Japan\"}",[29,480,436],{"class":273},[29,482,439],{"class":39},[29,484,442],{"class":39},[29,486,487],{"class":39}," trends-japan.json\n",[11,489,490,491,493],{},"If you would rather not block the terminal, drop ",[26,492,396],{},", note the RunID it prints, and fetch it when it finishes:",[19,495,497],{"className":21,"code":496,"language":23,"meta":24,"style":24},"monid runs get -r \u003CRunID> -o trends-raw.json\n",[26,498,499],{"__ignoreMap":24},[29,500,501,503,506,509,512,515,518,521,524,526],{"class":31,"line":32},[29,502,264],{"class":263},[29,504,505],{"class":39}," runs",[29,507,508],{"class":39}," get",[29,510,511],{"class":39}," -r",[29,513,514],{"class":273}," \u003C",[29,516,517],{"class":39},"RunI",[29,519,520],{"class":421},"D",[29,522,523],{"class":273},">",[29,525,442],{"class":39},[29,527,445],{"class":39},[11,529,530],{},[191,531],{"alt":532,"src":533},"One fetch_trending endpoint covers many countries (United States, Japan, Brazil, United Kingdom, Nigeria) by swapping the country query param","\u002Fimg\u002Fblog\u002Fship-an-x-trending-topics-tracker-fig-country-fanout.png",[105,535,537],{"id":536},"step-4-flatten-to-rows","Step 4: Flatten to rows",[11,539,540],{},"The raw response is the trending list as the provider returns it. For a log you want flat rows: topic, rank, and tweet volume, plus the time you pulled them. Rank is just the position in the list, so derive it from the array index. A single jq expression does the reshape and stamps the snapshot time:",[19,542,544],{"className":21,"code":543,"language":23,"meta":24,"style":24},"jq --arg ts \"$(date -u +%FT%TZ)\" '\n  [ .trends\n    | to_entries[]\n    | { pulled_at: $ts,\n        rank: (.key + 1),\n        topic: .value.name,\n        tweet_volume: (.value.tweet_volume \u002F\u002F null) } ]\n' trends-raw.json > trends-rows.json\n",[26,545,546,572,577,583,589,595,601,607],{"__ignoreMap":24},[29,547,548,551,554,557,560,563,566,569],{"class":31,"line":32},[29,549,550],{"class":263},"jq",[29,552,553],{"class":39}," --arg",[29,555,556],{"class":39}," ts",[29,558,559],{"class":273}," \"$(",[29,561,562],{"class":263},"date",[29,564,565],{"class":39}," -u +%FT%TZ",[29,567,568],{"class":273},")\"",[29,570,571],{"class":273}," '\n",[29,573,574],{"class":31,"line":283},[29,575,576],{"class":39},"  [ .trends\n",[29,578,580],{"class":31,"line":579},3,[29,581,582],{"class":39},"    | to_entries[]\n",[29,584,586],{"class":31,"line":585},4,[29,587,588],{"class":39},"    | { pulled_at: $ts,\n",[29,590,592],{"class":31,"line":591},5,[29,593,594],{"class":39},"        rank: (.key + 1),\n",[29,596,598],{"class":31,"line":597},6,[29,599,600],{"class":39},"        topic: .value.name,\n",[29,602,604],{"class":31,"line":603},7,[29,605,606],{"class":39},"        tweet_volume: (.value.tweet_volume \u002F\u002F null) } ]\n",[29,608,610,612,615,618],{"class":31,"line":609},8,[29,611,436],{"class":273},[29,613,614],{"class":39}," trends-raw.json",[29,616,617],{"class":273}," >",[29,619,620],{"class":39}," trends-rows.json\n",[11,622,623,624,627,628,631,632,635,636,639],{},"The exact path to the list and the field names can vary by provider version, and inspect in Step 2 showed you the real shape. If the array is not under ",[26,625,626],{},".trends",", or the label is ",[26,629,630],{},".value.trend"," instead of ",[26,633,634],{},".value.name",", adjust those two references and the rest holds. The ",[26,637,638],{},"\u002F\u002F null"," guard keeps rows where tweet volume is absent, which happens on newer or promoted trends.",[11,641,642],{},"A quick sanity check on how many trends you captured:",[19,644,646],{"className":21,"code":645,"language":23,"meta":24,"style":24},"jq 'length' trends-rows.json\n",[26,647,648],{"__ignoreMap":24},[29,649,650,652,654,657,659],{"class":31,"line":32},[29,651,550],{"class":263},[29,653,430],{"class":273},[29,655,656],{"class":39},"length",[29,658,436],{"class":273},[29,660,620],{"class":39},[105,662,664],{"id":663},"step-5-run-it-hourly-and-log-rise-and-fall","Step 5: Run it hourly and log rise and fall",[11,666,667],{},"One snapshot is a leaderboard. Many snapshots are a story. Append each run's rows to a single log so you can watch a topic move:",[19,669,671],{"className":21,"code":670,"language":23,"meta":24,"style":24},"jq -c '.[]' trends-rows.json >> trends-log.jsonl\n",[26,672,673],{"__ignoreMap":24},[29,674,675,677,680,682,685,687,690,693],{"class":31,"line":32},[29,676,550],{"class":263},[29,678,679],{"class":39}," -c",[29,681,430],{"class":273},[29,683,684],{"class":39},".[]",[29,686,436],{"class":273},[29,688,689],{"class":39}," trends-rows.json",[29,691,692],{"class":273}," >>",[29,694,695],{"class":39}," trends-log.jsonl\n",[11,697,698,699,702],{},"Writing JSON Lines (one row per line) means every hourly run just appends, and the file stays easy to grep, load into a notebook, or import to a database. Wrap Step 3 through this append in a short script and hand it to ",[26,700,701],{},"cron"," or Windows Task Scheduler on an hourly cadence:",[19,704,706],{"className":21,"code":705,"language":23,"meta":24,"style":24},"0 * * * * \u002Fpath\u002Fto\u002Ftrack-trends.sh UnitedStates\n",[26,707,708],{"__ignoreMap":24},[29,709,710,713,716,718,720,722,725],{"class":31,"line":32},[29,711,712],{"class":263},"0",[29,714,715],{"class":421}," *",[29,717,715],{"class":421},[29,719,715],{"class":421},[29,721,715],{"class":421},[29,723,724],{"class":39}," \u002Fpath\u002Fto\u002Ftrack-trends.sh",[29,726,727],{"class":39}," UnitedStates\n",[11,729,730],{},"To read the history of a single topic, filter the log by name and watch the rank column move over time:",[19,732,734],{"className":21,"code":733,"language":23,"meta":24,"style":24},"grep '\"AI\"' trends-log.jsonl | jq -r '\"\\(.pulled_at)  rank \\(.rank)  vol \\(.tweet_volume)\"'\n",[26,735,736],{"__ignoreMap":24},[29,737,738,741,743,746,748,751,754,757,759,761,764],{"class":31,"line":32},[29,739,740],{"class":263},"grep",[29,742,430],{"class":273},[29,744,745],{"class":39},"\"AI\"",[29,747,436],{"class":273},[29,749,750],{"class":39}," trends-log.jsonl",[29,752,753],{"class":273}," |",[29,755,756],{"class":263}," jq",[29,758,511],{"class":39},[29,760,430],{"class":273},[29,762,763],{"class":39},"\"\\(.pulled_at)  rank \\(.rank)  vol \\(.tweet_volume)\"",[29,765,766],{"class":273},"'\n",[11,768,769,770,773],{},"That prints one line per hour a topic was on the board, so a term that entered at rank 20 and climbed to 2 reads as a clean ascending series. Group the log by ",[26,771,772],{},"topic",", take the min and max rank, and you have entered-at, peaked-at, and fell-off for every trend of the day, which is the raw material for a \"what moved on X today\" digest.",[105,775,777],{"id":776},"cost-tally","Cost tally",[110,779,780,783,789,792,795],{},[113,781,782],{},"Discover and inspect: free.",[113,784,785,786,148],{},"One trending pull: per call, so a flat fraction of a cent no matter how long the list is. Check the live rate on ",[97,787,156],{"href":154,"rel":788},[101],[113,790,791],{},"Hourly for a day: 24 calls, still a fraction of the price of a coffee.",[113,793,794],{},"A full month, one country, every hour: roughly 720 calls, single-digit dollars.",[113,796,797],{},"Track five countries hourly: multiply by five and you are still nowhere near the monthly minimum of an X API plan.",[11,799,800,801,148],{},"Per-call billing is the reason a trend tracker is cheap: the cost is the number of snapshots you take, not the number of trends or the tweet volume behind them, so widening to more countries or a tighter cadence scales linearly and predictably. The magnitudes here are a starting point, not a quote; the live price is on ",[97,802,156],{"href":154,"rel":803},[101],[105,805,807],{"id":806},"faq","FAQ",[11,809,810,814],{},[811,812,813],"strong",{},"Do I need an X or Twitter developer account?","\nNo. You integrate Monid once and fund one pay-as-you-go wallet. The provider handles X access and upkeep, so you never touch the developer portal or commit to a monthly X API plan.",[11,816,817,820,821,823,824,826,827,829,830,346,832,834,835,837,838,841],{},[811,818,819],{},"Which countries can I track?","\nThe ",[26,822,135],{}," field accepts dozens of values, from ",[26,825,139],{}," and ",[26,828,345],{}," to ",[26,831,352],{},[26,833,367],{},", and ",[26,836,361],{},". Run ",[26,839,840],{},"monid inspect"," on the endpoint to see the full list and the exact spelling each one expects.",[11,843,844,847,848,851,852,148],{},[811,845,846],{},"How is this billed on Monid?","\nDiscover and inspect are free. The single ",[26,849,850],{},"run"," is the only paid step, and it is charged per call, so one pull of the whole trending list is one flat charge regardless of list length. Live pricing is on ",[97,853,156],{"href":154,"rel":854},[101],[11,856,857,865,866,868,869,872,873,875],{},[811,858,859,860,631,862,864],{},"Why pass the country with ",[26,861,143],{},[26,863,147],{},"?","\nBecause ",[26,867,135],{}," is a query parameter on this endpoint, not a request body. Inspect shows the input as query params, so you use ",[26,870,871],{},"--query '{\"country\":\"...\"}'",". Endpoints that take a JSON body use ",[26,874,147],{}," instead.",[11,877,878,881,882,148],{},[811,879,880],{},"Can an agent run this on its own?","\nYes. Monid ships as an MCP server, so an agent handed \"track X trends for Japan every hour\" can discover the endpoint, inspect the schema, and run the hourly pull itself. See ",[97,883,886],{"href":884,"rel":885},"https:\u002F\u002Fmonid.ai\u002FSKILL.md",[101],"monid.ai\u002FSKILL.md",[888,889,890],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":24,"searchDepth":283,"depth":283,"links":892},[893,894,895,896,900,901,902,903,904,905,906],{"id":107,"depth":283,"text":108},{"id":170,"depth":283,"text":171},{"id":183,"depth":283,"text":184},{"id":197,"depth":283,"text":198,"children":897},[898,899],{"id":202,"depth":579,"text":203},{"id":231,"depth":579,"text":232},{"id":249,"depth":283,"text":250},{"id":298,"depth":283,"text":299},{"id":380,"depth":283,"text":381},{"id":536,"depth":283,"text":537},{"id":663,"depth":283,"text":664},{"id":776,"depth":283,"text":777},{"id":806,"depth":283,"text":807},null,"\u002Fimg\u002Fblog\u002Fship-an-x-trending-topics-tracker.png","A hands-on recipe: pull X (Twitter) trending topics for any country on a schedule, flatten to rows, and log how trends rise and fall over time.",false,"md",{},true,"\u002Fblog\u002Fship-an-x-trending-topics-tracker","2026-07-30",{"title":5,"description":909},"blog\u002Fship-an-x-trending-topics-tracker",[919,920,124,921],"x-twitter","trending","automation","H2iOFt_mWL7iXm4N671FQAsx0160db4Zs1VGZupLKrM",[924,986,1054,1120],{"id":925,"title":926,"author":907,"body":927,"category":907,"cover":971,"description":24,"draft":910,"extension":911,"image":907,"launchCta":972,"listingCover":907,"meta":975,"navigation":913,"ogImage":907,"path":976,"publishedAt":977,"readTime":907,"seo":978,"stem":979,"tags":980,"toolCategory":907,"updatedAt":907,"__hash__":985},"blog\u002Fblog\u002Fakta-pro-is-now-available-on-monid.md","Introducing private markets\ndata for agents",{"type":8,"value":928,"toc":967},[929,933,941,944,948,954,961,964],[105,930,932],{"id":931},"what-is-aktapro","What is akta.pro",[11,934,935,940],{},[97,936,939],{"href":937,"rel":938},"https:\u002F\u002Fwww.akta.pro\u002F",[101],"akta.pro"," is a private company data and signals API for\nAI agents. Company Database covers 20M+ companies with 75+ structured fields\neach. News Signals delivers deduplicated, entity-resolved company news,\nindustry news, and signals on open-ended topics, all scored for impact and\nsentiment.",[11,942,943],{},"Private-company research is usually scattered across databases, news feeds,\nreview sites, and web search. akta.pro turns that into structured API calls, so\nan agent gets the right company context and keeps moving.",[105,945,947],{"id":946},"what-is-monid","What is Monid",[11,949,950,953],{},[97,951,102],{"href":99,"rel":952},[101]," is the tool layer for agents. It lets agents connect\nto all the tools and APIs they need, without managing signups, API keys, or\nsubscriptions.",[11,955,956,957,148],{},"Today, Monid provides tools for social media scraping, web search, image and\nmusic generation, people data search, weather APIs, ",[97,958,960],{"href":154,"rel":959},[101],"and more",[962,963],"hr",{},[11,965,966],{},"On Monid, akta.pro becomes available as part of that same layer. Your agent can\nrequest private-company context, call akta.pro through Monid, receive structured\nmarket data, and continue the task. Private markets research should feel like\nany other tool call: describe the company or sector, get the signal, keep\nbuilding.",{"title":24,"searchDepth":283,"depth":283,"links":968},[969,970],{"id":931,"depth":283,"text":932},{"id":946,"depth":283,"text":947},"\u002Fimg\u002Fblog\u002Fakta-pro-is-now-available-on-monid-v2.png",{"label":973,"command":974},"Give your agent this line to get started.","set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and use akta.pro to research recent news, company enrichment, and alternative signals for Databricks",{},"\u002Fblog\u002Fakta-pro-is-now-available-on-monid","2026-07-07",{"title":926,"description":24},"blog\u002Fakta-pro-is-now-available-on-monid",[981,982,983,984],"agents","partner-tools","private-markets","data","05ST9oH9qSQ4_vNxcczvHDEyev2JDIqBwMiM-zelWJo",{"id":987,"title":988,"author":907,"body":989,"category":907,"cover":1043,"description":1044,"draft":910,"extension":911,"image":907,"launchCta":907,"listingCover":907,"meta":1045,"navigation":913,"ogImage":907,"path":1046,"publishedAt":1047,"readTime":907,"seo":1048,"stem":1049,"tags":1050,"toolCategory":907,"updatedAt":907,"__hash__":1053},"blog\u002Fblog\u002Fyour-claude-code-can-now-make-phone-calls.md","Your Claude Code can now make phone calls",{"type":8,"value":990,"toc":1039},[991,994,1003,1007,1015,1018,1020,1025,1031,1033,1036],[11,992,993],{"style":16},"Copy this line to your agent to make your first phone call.",[19,995,997],{"className":21,"code":996,"language":23,"meta":24,"style":24},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and use Saperly to call my phone number to confirm the connection works\n",[26,998,999],{"__ignoreMap":24},[29,1000,1001],{"class":31,"line":32},[29,1002,996],{},[105,1004,1006],{"id":1005},"what-is-saperly","What is Saperly",[11,1008,1009,1014],{},[97,1010,1013],{"href":1011,"rel":1012},"https:\u002F\u002Fsaperly.com\u002F",[101],"Saperly"," is phone infrastructure for AI agents. It gives\nan agent a real phone number with voice, SMS, routing, spend controls, and\ncompliance built in, without making the builder manage carrier accounts or\ntelephony paperwork.",[11,1016,1017],{},"Your agent can confirm an appointment, follow up on a lead, check availability,\nor route a conversation without leaving the workflow it is already running.",[105,1019,947],{"id":946},[11,1021,1022,953],{},[97,1023,102],{"href":99,"rel":1024},[101],[11,1026,1027,1028,148],{},"Today, Monid provides tools for social media scraping, web search, image \u002F\nmusic \u002F 3d model generation, people data search, weather APIs, ",[97,1029,960],{"href":154,"rel":1030},[101],[962,1032],{},[11,1034,1035],{},"On Monid, Saperly becomes available as part of that same layer. Your agent can\nrequest a phone call, use Saperly through Monid, receive the result, and keep\ngoing. Calling should feel like any other tool call: describe the outcome, let\nthe agent handle the phone work, and continue the task.",[888,1037,1038],{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":24,"searchDepth":283,"depth":283,"links":1040},[1041,1042],{"id":1005,"depth":283,"text":1006},{"id":946,"depth":283,"text":947},"\u002Fimg\u002Fblog\u002Fyour-claude-code-can-now-make-phone-calls.png","Saperly is now available on Monid. Your agent can now make phone calls for you.",{},"\u002Fblog\u002Fyour-claude-code-can-now-make-phone-calls","2026-07-05",{"title":988,"description":1044},"blog\u002Fyour-claude-code-can-now-make-phone-calls",[981,982,1051,1052],"voice","phone","Wp96EVH5j2eyHDSu2f5Rtv0RYmyWX7frAhalel9fOus",{"id":1055,"title":1056,"author":907,"body":1057,"category":907,"cover":1109,"description":1110,"draft":910,"extension":911,"image":907,"launchCta":907,"listingCover":907,"meta":1111,"navigation":913,"ogImage":907,"path":1112,"publishedAt":1113,"readTime":907,"seo":1114,"stem":1115,"tags":1116,"toolCategory":907,"updatedAt":907,"__hash__":1119},"blog\u002Fblog\u002Fintroducing-suzanne-chatgpt-for-3d-models.md","Introducing\nClaude for 3D models",{"type":8,"value":1058,"toc":1105},[1059,1062,1071,1075,1083,1086,1088,1093,1098,1100,1103],[11,1060,1061],{"style":16},"Copy this line to your agent to generate your 3D model.",[19,1063,1065],{"className":21,"code":1064,"language":23,"meta":24,"style":24},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a 3D model for a rabbit\n",[26,1066,1067],{"__ignoreMap":24},[29,1068,1069],{"class":31,"line":32},[29,1070,1064],{},[105,1072,1074],{"id":1073},"what-is-suzanne","What is Suzanne",[11,1076,1077,1082],{},[97,1078,1081],{"href":1079,"rel":1080},"https:\u002F\u002Fwww.suzanne3d.com",[101],"Suzanne"," is an AI-native 3D modeling tool that turns a prompt into a\nusable 3D asset. Instead of opening a modeling tool, blocking out forms,\nadding details, and exporting by hand, you describe what you want and let\nSuzanne generate the model for you.",[11,1084,1085],{},"That changes who can create 3D objects. Product teams can prototype visual\nideas faster. Game builders can rough out props and characters without\nwaiting on a full art pass. Agents can generate assets as part of a larger\nworkflow, then hand those files to downstream tools for rendering, testing,\nor iteration.",[105,1087,947],{"id":946},[11,1089,1090,953],{},[97,1091,102],{"href":99,"rel":1092},[101],[11,1094,956,1095,148],{},[97,1096,960],{"href":154,"rel":1097},[101],[962,1099],{},[11,1101,1102],{},"On Monid, Suzanne becomes available as part of that same layer. Your agent can\nask for the 3D asset it needs, call Suzanne through Monid, and continue the task.\n3D creation should feel as direct as text generation: describe the thing, get\nthe artifact, keep building.",[888,1104,1038],{},{"title":24,"searchDepth":283,"depth":283,"links":1106},[1107,1108],{"id":1073,"depth":283,"text":1074},{"id":946,"depth":283,"text":947},"\u002Fimg\u002Fblog\u002Fintroducing-suzanne-chatgpt-for-3d-models.png","Suzanne is now available on Monid. Turn any idea into a production-ready 3D model in one prompt.",{},"\u002Fblog\u002Fintroducing-suzanne-chatgpt-for-3d-models","2026-06-25",{"title":1056,"description":1110},"blog\u002Fintroducing-suzanne-chatgpt-for-3d-models",[1117,981,1118],"3d","creative-tools","Mz475YlhLBgR80gyiTlL2MhfALZKYwbl4Rfwy96HZG0",{"id":1121,"title":1122,"author":907,"body":1123,"category":907,"cover":1182,"description":1183,"draft":910,"extension":911,"image":907,"launchCta":907,"listingCover":907,"meta":1184,"navigation":913,"ogImage":907,"path":1185,"publishedAt":1186,"readTime":907,"seo":1187,"stem":1188,"tags":1189,"toolCategory":907,"updatedAt":907,"__hash__":1192},"blog\u002Fblog\u002Fminimax-is-now-available-on-monid.md","MiniMax is now available on Monid",{"type":8,"value":1124,"toc":1177},[1125,1128,1137,1141,1149,1153,1156,1158,1164,1170,1172,1175],[11,1126,1127],{"style":16},"Copy this line to your agent to create music.",[19,1129,1131],{"className":21,"code":1130,"language":23,"meta":24,"style":24},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a song with MiniMax Music 2.6\n",[26,1132,1133],{"__ignoreMap":24},[29,1134,1135],{"class":31,"line":32},[29,1136,1130],{},[105,1138,1140],{"id":1139},"minimax-music-26","MiniMax Music 2.6",[11,1142,1143,1148],{},[97,1144,1147],{"href":1145,"rel":1146},"https:\u002F\u002Fwww.minimax.io",[101],"MiniMax"," Music 2.6 turns a prompt into music your agent can use right away. Describe the style, mood, lyrics, or use case, and generate a track inside the same workflow.",[105,1150,1152],{"id":1151},"minimax-text-to-image-image-01","MiniMax Text-to-Image image-01",[11,1154,1155],{},"MiniMax image-01 turns text prompts into images. Ask for a concept, scene, product visual, or creative asset, and let your agent generate it through Monid.",[105,1157,947],{"id":946},[11,1159,1160,1163],{},[97,1161,102],{"href":99,"rel":1162},[101]," is the tool layer for agents. It lets agents connect to all the tools and APIs they need, without managing signups, API keys, or subscriptions.",[11,1165,1166,1167,148],{},"Today, Monid provides tools for social media scraping, web search, image and music generation, people data search, weather APIs, ",[97,1168,960],{"href":154,"rel":1169},[101],[962,1171],{},[11,1173,1174],{},"On Monid, MiniMax becomes part of the same tool layer your agent already uses. Describe what you need, generate the image or music, and keep building.",[888,1176,1038],{},{"title":24,"searchDepth":283,"depth":283,"links":1178},[1179,1180,1181],{"id":1139,"depth":283,"text":1140},{"id":1151,"depth":283,"text":1152},{"id":946,"depth":283,"text":947},"\u002Fimg\u002Fblog\u002Fminimax-is-now-available-on-monid.png","Create images and music with MiniMax models through Monid.",{},"\u002Fblog\u002Fminimax-is-now-available-on-monid","2026-06-24",{"title":1122,"description":1183},"blog\u002Fminimax-is-now-available-on-monid",[981,1118,1190,1191],"image-generation","music-generation","B3dZqIjNJNK7Y9ysAenI0XzKobOZMlEP87FRWrW19Vc",1786670266469]