[{"data":1,"prerenderedAt":1204},["ShallowReactive",2],{"blog-\u002Fblog\u002Fkeyword-to-tweets-scraper-tutorial":3,"blog-related-\u002Fblog\u002Fkeyword-to-tweets-scraper-tutorial":935},{"id":4,"title":5,"author":6,"body":7,"category":920,"cover":921,"description":922,"draft":923,"extension":924,"image":920,"launchCta":920,"meta":925,"navigation":543,"ogImage":920,"path":926,"publishedAt":927,"readTime":920,"seo":928,"stem":929,"tags":930,"updatedAt":920,"__hash__":934},"blogUnlisted\u002Fblog\u002Fkeyword-to-tweets-scraper-tutorial.md","Build a Keyword-to-Tweets Scraper on X This Afternoon","The Monid Team",{"type":8,"value":9,"toc":903},"minimark",[10,15,88,91,96,146,150,157,164,168,183,187,192,201,209,218,222,279,287,291,294,330,336,340,343,371,374,438,470,476,480,495,586,592,596,603,639,642,646,660,723,743,747,762,814,818,825,846,863,869,880,884,899],[11,12,14],"p",{"style":13},"font-size:18px !important;line-height:1.65 !important;margin:0 0 24px;color:inherit;","Copy this line to your agent to scrape recent tweets for a keyword.",[16,17,22],"pre",{"className":18,"code":19,"language":20,"meta":21,"style":21},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and use apify to scrape recent X tweets matching a keyword and rank them by engagement\n","sh","",[23,24,25],"code",{"__ignoreMap":21},[26,27,30,34,38,41,44,47,50,53,56,59,62,65,68,71,74,76,79,82,85],"span",{"class":28,"line":29},"line",1,[26,31,33],{"class":32},"s2Zo4","set",[26,35,37],{"class":36},"sfazB"," up",[26,39,40],{"class":36}," https:\u002F\u002Fmonid.ai\u002FSKILL.md",[26,42,43],{"class":36}," and",[26,45,46],{"class":36}," use",[26,48,49],{"class":36}," apify",[26,51,52],{"class":36}," to",[26,54,55],{"class":36}," scrape",[26,57,58],{"class":36}," recent",[26,60,61],{"class":36}," X",[26,63,64],{"class":36}," tweets",[26,66,67],{"class":36}," matching",[26,69,70],{"class":36}," a",[26,72,73],{"class":36}," keyword",[26,75,43],{"class":36},[26,77,78],{"class":36}," rank",[26,80,81],{"class":36}," them",[26,83,84],{"class":36}," by",[26,86,87],{"class":36}," engagement\n",[11,89,90],{},"You can stand up a working keyword-to-tweets scraper for X (formerly Twitter) in an afternoon, no developer account and no proxy pool, using a single verified endpoint on Monid billed per tweet at a fraction of a cent. Monid is a pay-per-call data API marketplace: one integration and one wallet reach hundreds of external data endpoints across scraping, enrichment, social data, and search. This walkthrough tracks a keyword, pulls recent tweets, ranks them by engagement, and drops the result into a dataset you can rerun tomorrow. Every command below is copy-paste ready.",[92,93,95],"h2",{"id":94},"tldr","TL;DR",[97,98,99,113,119,122,143],"ul",{},[100,101,102,103,112],"li",{},"One endpoint, ",[104,105,109],"a",{"href":106,"rel":107},"https:\u002F\u002Fapify.com\u002Fapidojo\u002Ftweet-scraper",[108],"nofollow",[23,110,111],{},"apidojo\u002Ftweet-scraper",", takes search terms, handles, list URLs, tweet URLs, or conversation IDs and returns full tweet records billed per result.",[100,114,115,118],{},[23,116,117],{},"maxItems"," sets how many tweets you get and is exactly what you pay for, so cost is predictable before you press run.",[100,120,121],{},"Each record carries text, timestamp, engagement metrics, and author metadata, which is everything you need to rank by real reach instead of follower count.",[100,123,124,125,128,129,132,133,128,136,128,139,142],{},"Advanced filters (",[23,126,127],{},"minimumFavorites",", ",[23,130,131],{},"start","\u002F",[23,134,135],{},"end",[23,137,138],{},"tweetLanguage",[23,140,141],{},"onlyVerifiedUsers",") run server-side, so you fetch signal and skip noise.",[100,144,145],{},"The whole pipeline is five steps and stays in single-digit dollars for a daily keyword tracker.",[92,147,149],{"id":148},"what-you-are-building","What you are building",[11,151,152,153,156],{},"The finished job takes a keyword like ",[23,154,155],{},"\"vision pro\"",", pulls the most recent few hundred matching tweets, sorts them by likes plus retweets plus replies, and writes the winners to a JSON file. Rerun it on a schedule and you have a lightweight social-listening feed for any topic, competitor, ticker, or product launch.",[11,158,159],{},[160,161],"img",{"alt":162,"src":163},"A five-stage pipeline: keyword and filters into apify tweet-scraper, out to a tweets.json dataset, ranked by engagement, down to the top tweets, built in one afternoon","\u002Fimg\u002Fblog\u002Fkeyword-to-tweets-scraper-tutorial-fig-x-pipeline.png",[92,165,167],{"id":166},"why-not-the-official-x-api","Why not the official X API?",[11,169,170,171,176,177,182],{},"Worth being precise here. The ",[104,172,175],{"href":173,"rel":174},"https:\u002F\u002Fdeveloper.x.com\u002F",[108],"X developer platform"," gates full-archive and recent search behind paid tiers with monthly caps and app review, and the free tier is effectively write-only. For a one-off keyword tracker that is a lot of ceremony and a recurring bill before you have pulled a single tweet. The endpoint below is maintained by scraping specialists on ",[104,178,181],{"href":179,"rel":180},"https:\u002F\u002Fapify.com",[108],"Apify",", and Monid meters it per result, so the access and maintenance problem stays theirs and you pay only for tweets you actually pull.",[92,184,186],{"id":185},"set-up-once","Set up once",[188,189,191],"h3",{"id":190},"for-agents","For agents",[11,193,194,195,200],{},"Grab an API key at ",[104,196,199],{"href":197,"rel":198},"https:\u002F\u002Fapp.monid.ai\u002F",[108],"app.monid.ai",", then paste this to your agent and hand it the key:",[16,202,207],{"className":203,"code":205,"language":206},[204],"language-text","set up https:\u002F\u002Fmonid.ai\u002FSKILL.md\n","text",[23,208,205],{"__ignoreMap":21},[11,210,211,212,217],{},"It learns the whole discover, inspect, run workflow itself. More details in the ",[104,213,216],{"href":214,"rel":215},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-skill",[108],"agent quickstart",".",[188,219,221],{"id":220},"for-humans","For humans",[16,223,227],{"className":224,"code":225,"language":226,"meta":21,"style":21},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install -g @monid-ai\u002Fcli\nmonid keys add --label main --key \u003Cyour-api-key>\n","bash",[23,228,229,244],{"__ignoreMap":21},[26,230,231,235,238,241],{"class":28,"line":29},[26,232,234],{"class":233},"sBMFI","npm",[26,236,237],{"class":36}," install",[26,239,240],{"class":36}," -g",[26,242,243],{"class":36}," @monid-ai\u002Fcli\n",[26,245,247,250,253,256,259,262,265,269,272,276],{"class":28,"line":246},2,[26,248,249],{"class":233},"monid",[26,251,252],{"class":36}," keys",[26,254,255],{"class":36}," add",[26,257,258],{"class":36}," --label",[26,260,261],{"class":36}," main",[26,263,264],{"class":36}," --key",[26,266,268],{"class":267},"sMK4o"," \u003C",[26,270,271],{"class":36},"your-api-ke",[26,273,275],{"class":274},"sTEyZ","y",[26,277,278],{"class":267},">\n",[11,280,281,282,217],{},"More details in the ",[104,283,286],{"href":284,"rel":285},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-cli",[108],"CLI quickstart",[92,288,290],{"id":289},"step-1-find-the-endpoint","Step 1: Find the endpoint",[11,292,293],{},"Search the catalog for the capability. Discovery is free and returns endpoints ranked with provider, description, price, and a verified tag.",[16,295,297],{"className":224,"code":296,"language":226,"meta":21,"style":21},"monid discover -q \"twitter x tweets scrape search\"\n# -> apify \u002Fapidojo\u002Ftweet-scraper   (verified, per result)\n#    plus tikhub + other X endpoints, ranked\n",[23,298,299,318,324],{"__ignoreMap":21},[26,300,301,303,306,309,312,315],{"class":28,"line":29},[26,302,249],{"class":233},[26,304,305],{"class":36}," discover",[26,307,308],{"class":36}," -q",[26,310,311],{"class":267}," \"",[26,313,314],{"class":36},"twitter x tweets scrape search",[26,316,317],{"class":267},"\"\n",[26,319,320],{"class":28,"line":246},[26,321,323],{"class":322},"sHwdD","# -> apify \u002Fapidojo\u002Ftweet-scraper   (verified, per result)\n",[26,325,327],{"class":28,"line":326},3,[26,328,329],{"class":322},"#    plus tikhub + other X endpoints, ranked\n",[11,331,332,333,335],{},"The top hit, ",[23,334,111],{},", is the workhorse. It is the only one you need for this build.",[92,337,339],{"id":338},"step-2-read-the-schema-before-you-spend","Step 2: Read the schema before you spend",[11,341,342],{},"Inspect the endpoint to see its real input fields and current price. This step is also free, and it is where you confirm the field names instead of guessing them.",[16,344,346],{"className":224,"code":345,"language":226,"meta":21,"style":21},"monid inspect -p apify -e \u002Fapidojo\u002Ftweet-scraper\n# -> input schema + per-result price (free)\n",[23,347,348,366],{"__ignoreMap":21},[26,349,350,352,355,358,360,363],{"class":28,"line":29},[26,351,249],{"class":233},[26,353,354],{"class":36}," inspect",[26,356,357],{"class":36}," -p",[26,359,49],{"class":36},[26,361,362],{"class":36}," -e",[26,364,365],{"class":36}," \u002Fapidojo\u002Ftweet-scraper\n",[26,367,368],{"class":28,"line":246},[26,369,370],{"class":322},"# -> input schema + per-result price (free)\n",[11,372,373],{},"The fields that matter for a keyword tracker:",[97,375,376,382,387,410,419,430],{},[100,377,378,381],{},[23,379,380],{},"searchTerms",": an array of queries. This is your keyword input.",[100,383,384,386],{},[23,385,117],{},": the cap on returned tweets, and the exact number you are billed for.",[100,388,389,392,393,128,396,399,400,403,404,406,407,409],{},[23,390,391],{},"sort",": ",[23,394,395],{},"Latest",[23,397,398],{},"Top",", or ",[23,401,402],{},"Latest + Top",". Use ",[23,405,395],{}," for a fresh feed, ",[23,408,398],{}," when a broad term returns too little.",[100,411,412,414,415,418],{},[23,413,138],{},": an ISO 639-1 code like ",[23,416,417],{},"en"," to keep one language.",[100,420,421,128,423,128,426,429],{},[23,422,127],{},[23,424,425],{},"minimumRetweets",[23,427,428],{},"minimumReplies",": engagement floors applied server-side.",[100,431,432,434,435,437],{},[23,433,131],{}," and ",[23,436,135],{},": date bounds for the window you care about.",[11,439,440,441,128,443,128,446,128,449,128,452,128,455,458,459,128,462,465,466,469],{},"There are more (",[23,442,141],{},[23,444,445],{},"onlyImage",[23,447,448],{},"onlyVideo",[23,450,451],{},"author",[23,453,454],{},"mentioning",[23,456,457],{},"geotaggedNear","), and the same input object also accepts ",[23,460,461],{},"twitterHandles",[23,463,464],{},"startUrls",", and ",[23,467,468],{},"conversationIds"," if you would rather sweep an account or a thread than a keyword.",[11,471,472],{},[160,473],{"alt":474,"src":475},"A decision fan-out: a topic maps to searchTerms, a handle to twitterHandles, any X URL to startUrls, a thread to conversationIds, all feeding the same apify tweet-scraper endpoint","\u002Fimg\u002Fblog\u002Fkeyword-to-tweets-scraper-tutorial-fig-x-inputs.png",[92,477,479],{"id":478},"step-3-point-it-at-your-keyword","Step 3: Point it at your keyword",[11,481,482,483,485,486,488,489,491,492,494],{},"Now the only step that bills. Pass your keyword as ",[23,484,380],{},", cap the pull with ",[23,487,117],{},", and sort by ",[23,490,395],{},". Add a ",[23,493,127],{}," floor so you skip the long tail of zero-engagement noise.",[16,496,498],{"className":224,"code":497,"language":226,"meta":21,"style":21},"monid run -p apify -e \u002Fapidojo\u002Ftweet-scraper \\\n  -i '{\"searchTerms\": [\"vision pro\"], \"sort\": \"Latest\", \"maxItems\": 200, \"minimumFavorites\": 5, \"tweetLanguage\": \"en\"}'\n# -> Run ID: 01HXYZ...\n\nmonid runs get -r 01HXYZ... -o tweets.json\n# -> COMPLETED: up to 200 recent English tweets matching \"vision pro\",\n#    each with text, timestamp, engagement metrics, and author metadata\n#    billed per result\n",[23,499,500,519,533,538,545,568,574,580],{"__ignoreMap":21},[26,501,502,504,507,509,511,513,516],{"class":28,"line":29},[26,503,249],{"class":233},[26,505,506],{"class":36}," run",[26,508,357],{"class":36},[26,510,49],{"class":36},[26,512,362],{"class":36},[26,514,515],{"class":36}," \u002Fapidojo\u002Ftweet-scraper",[26,517,518],{"class":274}," \\\n",[26,520,521,524,527,530],{"class":28,"line":246},[26,522,523],{"class":36},"  -i",[26,525,526],{"class":267}," '",[26,528,529],{"class":36},"{\"searchTerms\": [\"vision pro\"], \"sort\": \"Latest\", \"maxItems\": 200, \"minimumFavorites\": 5, \"tweetLanguage\": \"en\"}",[26,531,532],{"class":267},"'\n",[26,534,535],{"class":28,"line":326},[26,536,537],{"class":322},"# -> Run ID: 01HXYZ...\n",[26,539,541],{"class":28,"line":540},4,[26,542,544],{"emptyLinePlaceholder":543},true,"\n",[26,546,548,550,553,556,559,562,565],{"class":28,"line":547},5,[26,549,249],{"class":233},[26,551,552],{"class":36}," runs",[26,554,555],{"class":36}," get",[26,557,558],{"class":36}," -r",[26,560,561],{"class":36}," 01HXYZ...",[26,563,564],{"class":36}," -o",[26,566,567],{"class":36}," tweets.json\n",[26,569,571],{"class":28,"line":570},6,[26,572,573],{"class":322},"# -> COMPLETED: up to 200 recent English tweets matching \"vision pro\",\n",[26,575,577],{"class":28,"line":576},7,[26,578,579],{"class":322},"#    each with text, timestamp, engagement metrics, and author metadata\n",[26,581,583],{"class":28,"line":582},8,[26,584,585],{"class":322},"#    billed per result\n",[11,587,588,589,591],{},"Keep ",[23,590,117],{}," small while you are dialing in the query. Every tweet in the array is a billed result, so a 200-tweet test costs a fraction of what a 10,000-tweet run does, and the schema is identical, so nothing changes when you scale up.",[92,593,595],{"id":594},"step-4-rank-by-engagement-not-follower-count","Step 4: Rank by engagement, not follower count",[11,597,598,599,602],{},"The reason to pull the metrics is to sort by them. Each record returns like, retweet, reply, and view counts, so you can rank by actual reach and ignore how many followers an account claims. A quick pass with ",[23,600,601],{},"jq"," gives you the top tweets:",[16,604,606],{"className":224,"code":605,"language":226,"meta":21,"style":21},"jq 'sort_by(-(.likeCount + .retweetCount + .replyCount))\n    | .[:20]\n    | map({text, likeCount, retweetCount, url})' tweets.json > top20.json\n",[23,607,608,617,622],{"__ignoreMap":21},[26,609,610,612,614],{"class":28,"line":29},[26,611,601],{"class":233},[26,613,526],{"class":267},[26,615,616],{"class":36},"sort_by(-(.likeCount + .retweetCount + .replyCount))\n",[26,618,619],{"class":28,"line":246},[26,620,621],{"class":36},"    | .[:20]\n",[26,623,624,627,630,633,636],{"class":28,"line":326},[26,625,626],{"class":36},"    | map({text, likeCount, retweetCount, url})",[26,628,629],{"class":267},"'",[26,631,632],{"class":36}," tweets.json",[26,634,635],{"class":267}," >",[26,637,638],{"class":36}," top20.json\n",[11,640,641],{},"That single expression sorts the dataset by combined engagement, keeps the top twenty, and trims each row to the fields worth reading. You now have a ranked, human-readable digest of what a keyword actually surfaced today.",[92,643,645],{"id":644},"step-5-make-it-a-daily-feed","Step 5: Make it a daily feed",[11,647,648,649,652,653,656,657,659],{},"Wrap steps 3 and 4 in a shell script, timestamp the output file, and hand it to ",[23,650,651],{},"cron"," or Task Scheduler. Because ",[23,654,655],{},"sort: \"Latest\""," plus a ",[23,658,131],{}," date only returns tweets newer than your last run, each day pulls the incremental window rather than the whole history:",[16,661,663],{"className":224,"code":662,"language":226,"meta":21,"style":21},"monid run -p apify -e \u002Fapidojo\u002Ftweet-scraper \\\n  -i '{\"searchTerms\": [\"vision pro\"], \"sort\": \"Latest\", \"maxItems\": 300, \"start\": \"2026-07-08\", \"tweetLanguage\": \"en\"}' \\\n  -w -o \"tweets-$(date +%F).json\"\n",[23,664,665,681,694],{"__ignoreMap":21},[26,666,667,669,671,673,675,677,679],{"class":28,"line":29},[26,668,249],{"class":233},[26,670,506],{"class":36},[26,672,357],{"class":36},[26,674,49],{"class":36},[26,676,362],{"class":36},[26,678,515],{"class":36},[26,680,518],{"class":274},[26,682,683,685,687,690,692],{"class":28,"line":246},[26,684,523],{"class":36},[26,686,526],{"class":267},[26,688,689],{"class":36},"{\"searchTerms\": [\"vision pro\"], \"sort\": \"Latest\", \"maxItems\": 300, \"start\": \"2026-07-08\", \"tweetLanguage\": \"en\"}",[26,691,629],{"class":267},[26,693,518],{"class":274},[26,695,696,699,701,703,706,709,712,715,718,721],{"class":28,"line":326},[26,697,698],{"class":36},"  -w",[26,700,564],{"class":36},[26,702,311],{"class":267},[26,704,705],{"class":36},"tweets-",[26,707,708],{"class":267},"$(",[26,710,711],{"class":233},"date",[26,713,714],{"class":36}," +%F",[26,716,717],{"class":267},")",[26,719,720],{"class":36},".json",[26,722,317],{"class":267},[11,724,725,726,729,730,732,733,738,739,742],{},"The ",[23,727,728],{},"-w"," flag waits inline so the script blocks until the run finishes, which is what you want inside a scheduled job. Point ",[23,731,380],{}," at a Boolean query (the endpoint accepts the same ",[104,734,737],{"href":735,"rel":736},"https:\u002F\u002Fgithub.com\u002Figorbrigadir\u002Ftwitter-advanced-search",[108],"advanced search operators"," as X itself, so ",[23,740,741],{},"\"vision pro\" OR \"apple headset\" -is:retweet"," works) and one job covers a whole topic cluster.",[92,744,746],{"id":745},"what-a-keyword-tracker-costs","What a keyword tracker costs",[11,748,749,750,752,753,755,756,761],{},"Per-result billing makes the math simple: you pay for the number of tweets you keep, and ",[23,751,117],{}," is that number. A daily run at a few hundred tweets lands in fractions of a cent to a few cents per day, so a month of continuous topic tracking stays in single-digit dollars, with no subscription and no monthly minimum. Widen ",[23,754,117],{}," for a launch-day spike, narrow it on quiet days, and the bill tracks the pull. Current per-endpoint pricing lives at ",[104,757,760],{"href":758,"rel":759},"https:\u002F\u002Fmonid.ai\u002Ftools",[108],"monid.ai\u002Ftools",", and because inspect shows the price before you run, there are no surprises. The magnitudes below are a starting point, not a quote.",[763,764,765,778],"table",{},[766,767,768],"thead",{},[769,770,771,775],"tr",{},[772,773,774],"th",{},"Job shape",[772,776,777],{},"Rough magnitude",[779,780,781,790,798,806],"tbody",{},[769,782,783,787],{},[784,785,786],"td",{},"A 200-tweet test pull",[784,788,789],{},"small fraction of a cent",[769,791,792,795],{},[784,793,794],{},"Daily 300-tweet keyword feed",[784,796,797],{},"a few cents per day",[769,799,800,803],{},[784,801,802],{},"A month of that feed",[784,804,805],{},"single-digit dollars",[769,807,808,811],{},[784,809,810],{},"A one-time 10,000-tweet backfill",[784,812,813],{},"low single-digit dollars",[92,815,817],{"id":816},"faq","FAQ",[11,819,820,824],{},[821,822,823],"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, proxies, and parser upkeep, so you never touch a developer portal.",[11,826,827,830,831,833,834,836,837,839,840,842,843,845],{},[821,828,829],{},"Can I search by keyword and by account from the same endpoint?","\nYes. ",[23,832,111],{}," takes ",[23,835,380],{}," for keyword tracking, ",[23,838,461],{}," for account sweeps, ",[23,841,464],{}," for any profile, search, list, or tweet URL, and ",[23,844,468],{}," for a thread, all in one input object.",[11,847,848,851,852,854,855,857,858,132,860,862],{},[821,849,850],{},"How do I control cost?","\nWith ",[23,853,117],{},". It caps the number of returned tweets and is exactly what you are billed for, so you set your ceiling before the run starts. Add ",[23,856,127],{}," or ",[23,859,131],{},[23,861,135],{}," to spend only on tweets that clear a bar.",[11,864,865,868],{},[821,866,867],{},"What fields come back per tweet?","\nTweet text, timestamp, tweet and profile URLs, engagement metrics (likes, retweets, replies, views), author and profile metadata, media attachments, language, and geolocation tags where present.",[11,870,871,874,875,217],{},[821,872,873],{},"Can an agent run this pipeline?","\nYes. Monid ships as an MCP server, so an agent handed \"track vision pro on X daily\" can discover the endpoint, inspect the schema, and run the pull on its own. See ",[104,876,879],{"href":877,"rel":878},"https:\u002F\u002Fmonid.ai\u002FSKILL.md",[108],"monid.ai\u002FSKILL.md",[92,881,883],{"id":882},"try-it","Try it",[11,885,886,887,890,891,893,894,217],{},"Run a free ",[23,888,889],{},"monid discover"," for the X data you want, inspect ",[23,892,111],{}," to confirm the fields and price, then pull 200 tweets for a keyword you know well. If the ranked digest matches what you would find scrolling the app, wire it into a daily job and move on. Start at ",[104,895,898],{"href":896,"rel":897},"https:\u002F\u002Fmonid.ai",[108],"monid.ai",[900,901,902],"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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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}",{"title":21,"searchDepth":246,"depth":246,"links":904},[905,906,907,908,912,913,914,915,916,917,918,919],{"id":94,"depth":246,"text":95},{"id":148,"depth":246,"text":149},{"id":166,"depth":246,"text":167},{"id":185,"depth":246,"text":186,"children":909},[910,911],{"id":190,"depth":326,"text":191},{"id":220,"depth":326,"text":221},{"id":289,"depth":246,"text":290},{"id":338,"depth":246,"text":339},{"id":478,"depth":246,"text":479},{"id":594,"depth":246,"text":595},{"id":644,"depth":246,"text":645},{"id":745,"depth":246,"text":746},{"id":816,"depth":246,"text":817},{"id":882,"depth":246,"text":883},null,"\u002Fimg\u002Fblog\u002Fkeyword-to-tweets-scraper-tutorial.png","A hands-on tutorial: track a keyword on X (Twitter), pull recent tweets, rank them by engagement, and save a dataset using one verified endpoint on Monid.",false,"md",{},"\u002Fblog\u002Fkeyword-to-tweets-scraper-tutorial","2026-07-09",{"title":5,"description":922},"blog\u002Fkeyword-to-tweets-scraper-tutorial",[931,932,933],"data","agents","social","Rvmm1dgl6zYxRzpynrT3uXL7guxVjypbAk0HzKLs0O4",[936,997,1065,1131],{"id":937,"title":938,"author":920,"body":939,"category":920,"cover":984,"description":21,"draft":923,"extension":924,"image":920,"launchCta":985,"meta":988,"navigation":543,"ogImage":920,"path":989,"publishedAt":990,"readTime":920,"seo":991,"stem":992,"tags":993,"updatedAt":920,"__hash__":996},"blog\u002Fblog\u002Fakta-pro-is-now-available-on-monid.md","Introducing private markets\ndata for agents",{"type":8,"value":940,"toc":980},[941,945,953,956,960,967,974,977],[92,942,944],{"id":943},"what-is-aktapro","What is akta.pro",[11,946,947,952],{},[104,948,951],{"href":949,"rel":950},"https:\u002F\u002Fwww.akta.pro\u002F",[108],"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,954,955],{},"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.",[92,957,959],{"id":958},"what-is-monid","What is Monid",[11,961,962,966],{},[104,963,965],{"href":896,"rel":964},[108],"Monid"," 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,968,969,970,217],{},"Today, Monid provides tools for social media scraping, web search, image and\nmusic generation, people data search, weather APIs, ",[104,971,973],{"href":758,"rel":972},[108],"and more",[975,976],"hr",{},[11,978,979],{},"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":21,"searchDepth":246,"depth":246,"links":981},[982,983],{"id":943,"depth":246,"text":944},{"id":958,"depth":246,"text":959},"\u002Fimg\u002Fblog\u002Fakta-pro-is-now-available-on-monid-v2.png",{"label":986,"command":987},"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":938,"description":21},"blog\u002Fakta-pro-is-now-available-on-monid",[932,994,995,931],"partner-tools","private-markets","yZnqIVof0gIpw9VH6HcE3rzit5OdTvPyC6k--T1kYa8",{"id":998,"title":999,"author":920,"body":1000,"category":920,"cover":1054,"description":1055,"draft":923,"extension":924,"image":920,"launchCta":920,"meta":1056,"navigation":543,"ogImage":920,"path":1057,"publishedAt":1058,"readTime":920,"seo":1059,"stem":1060,"tags":1061,"updatedAt":920,"__hash__":1064},"blog\u002Fblog\u002Fyour-claude-code-can-now-make-phone-calls.md","Your Claude Code can now make phone calls",{"type":8,"value":1001,"toc":1050},[1002,1005,1014,1018,1026,1029,1031,1036,1042,1044,1047],[11,1003,1004],{"style":13},"Copy this line to your agent to make your first phone call.",[16,1006,1008],{"className":18,"code":1007,"language":20,"meta":21,"style":21},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and use Saperly to call my phone number to confirm the connection works\n",[23,1009,1010],{"__ignoreMap":21},[26,1011,1012],{"class":28,"line":29},[26,1013,1007],{},[92,1015,1017],{"id":1016},"what-is-saperly","What is Saperly",[11,1019,1020,1025],{},[104,1021,1024],{"href":1022,"rel":1023},"https:\u002F\u002Fsaperly.com\u002F",[108],"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,1027,1028],{},"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.",[92,1030,959],{"id":958},[11,1032,1033,966],{},[104,1034,965],{"href":896,"rel":1035},[108],[11,1037,1038,1039,217],{},"Today, Monid provides tools for social media scraping, web search, image \u002F\nmusic \u002F 3d model generation, people data search, weather APIs, ",[104,1040,973],{"href":758,"rel":1041},[108],[975,1043],{},[11,1045,1046],{},"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.",[900,1048,1049],{},"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":21,"searchDepth":246,"depth":246,"links":1051},[1052,1053],{"id":1016,"depth":246,"text":1017},{"id":958,"depth":246,"text":959},"\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":999,"description":1055},"blog\u002Fyour-claude-code-can-now-make-phone-calls",[932,994,1062,1063],"voice","phone","X0vLpqb1Vn9mIFY4XAQ16a67_nbOfiZV8NEdV12nu1A",{"id":1066,"title":1067,"author":920,"body":1068,"category":920,"cover":1120,"description":1121,"draft":923,"extension":924,"image":920,"launchCta":920,"meta":1122,"navigation":543,"ogImage":920,"path":1123,"publishedAt":1124,"readTime":920,"seo":1125,"stem":1126,"tags":1127,"updatedAt":920,"__hash__":1130},"blog\u002Fblog\u002Fintroducing-suzanne-chatgpt-for-3d-models.md","Introducing\nClaude for 3D models",{"type":8,"value":1069,"toc":1116},[1070,1073,1082,1086,1094,1097,1099,1104,1109,1111,1114],[11,1071,1072],{"style":13},"Copy this line to your agent to generate your 3D model.",[16,1074,1076],{"className":18,"code":1075,"language":20,"meta":21,"style":21},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a 3D model for a rabbit\n",[23,1077,1078],{"__ignoreMap":21},[26,1079,1080],{"class":28,"line":29},[26,1081,1075],{},[92,1083,1085],{"id":1084},"what-is-suzanne","What is Suzanne",[11,1087,1088,1093],{},[104,1089,1092],{"href":1090,"rel":1091},"https:\u002F\u002Fwww.suzanne3d.com",[108],"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,1095,1096],{},"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.",[92,1098,959],{"id":958},[11,1100,1101,966],{},[104,1102,965],{"href":896,"rel":1103},[108],[11,1105,969,1106,217],{},[104,1107,973],{"href":758,"rel":1108},[108],[975,1110],{},[11,1112,1113],{},"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.",[900,1115,1049],{},{"title":21,"searchDepth":246,"depth":246,"links":1117},[1118,1119],{"id":1084,"depth":246,"text":1085},{"id":958,"depth":246,"text":959},"\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":1067,"description":1121},"blog\u002Fintroducing-suzanne-chatgpt-for-3d-models",[1128,932,1129],"3d","creative-tools","_S0uHM_dNVZKt_1ohYV4hn2Fm6SMxsDxzSezZf6lYFQ",{"id":1132,"title":1133,"author":920,"body":1134,"category":920,"cover":1193,"description":1194,"draft":923,"extension":924,"image":920,"launchCta":920,"meta":1195,"navigation":543,"ogImage":920,"path":1196,"publishedAt":1197,"readTime":920,"seo":1198,"stem":1199,"tags":1200,"updatedAt":920,"__hash__":1203},"blog\u002Fblog\u002Fminimax-is-now-available-on-monid.md","MiniMax is now available on Monid",{"type":8,"value":1135,"toc":1188},[1136,1139,1148,1152,1160,1164,1167,1169,1175,1181,1183,1186],[11,1137,1138],{"style":13},"Copy this line to your agent to create music.",[16,1140,1142],{"className":18,"code":1141,"language":20,"meta":21,"style":21},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a song with MiniMax Music 2.6\n",[23,1143,1144],{"__ignoreMap":21},[26,1145,1146],{"class":28,"line":29},[26,1147,1141],{},[92,1149,1151],{"id":1150},"minimax-music-26","MiniMax Music 2.6",[11,1153,1154,1159],{},[104,1155,1158],{"href":1156,"rel":1157},"https:\u002F\u002Fwww.minimax.io",[108],"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.",[92,1161,1163],{"id":1162},"minimax-text-to-image-image-01","MiniMax Text-to-Image image-01",[11,1165,1166],{},"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.",[92,1168,959],{"id":958},[11,1170,1171,1174],{},[104,1172,965],{"href":896,"rel":1173},[108]," 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,1176,1177,1178,217],{},"Today, Monid provides tools for social media scraping, web search, image and music generation, people data search, weather APIs, ",[104,1179,973],{"href":758,"rel":1180},[108],[975,1182],{},[11,1184,1185],{},"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.",[900,1187,1049],{},{"title":21,"searchDepth":246,"depth":246,"links":1189},[1190,1191,1192],{"id":1150,"depth":246,"text":1151},{"id":1162,"depth":246,"text":1163},{"id":958,"depth":246,"text":959},"\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":1133,"description":1194},"blog\u002Fminimax-is-now-available-on-monid",[932,1129,1201,1202],"image-generation","music-generation","OYTt4aBpVNeb9nNuUTkZhyl8yzm6h4v8c8tMHC9NmFg",1784441553731]