[{"data":1,"prerenderedAt":1311},["ShallowReactive",2],{"blog-\u002Fblog\u002Fwire-up-amazon-search-tracking":3,"blog-related-\u002Fblog\u002Fwire-up-amazon-search-tracking":1040},{"id":4,"title":5,"author":6,"body":7,"category":1020,"cover":1021,"description":1022,"draft":1023,"extension":1024,"image":1025,"launchCta":1025,"listingCover":1025,"meta":1026,"navigation":570,"ogImage":1025,"path":1027,"publishedAt":1028,"readTime":1029,"seo":1030,"stem":1031,"tags":1032,"toolCategory":1037,"updatedAt":1038,"__hash__":1039},"blogUnlisted\u002Fblog\u002Fwire-up-amazon-search-tracking.md","Wire Up Amazon Search Rank Tracking in One Script","The Monid Team",{"type":8,"value":9,"toc":1000},"minimark",[10,15,83,92,97,100,105,120,134,138,141,169,185,189,192,196,205,213,222,226,283,287,293,298,322,332,427,441,445,450,454,495,504,520,524,529,532,624,638,642,647,656,660,665,711,714,721,736,740,747,832,835,838,842,845,848,857,865,871,881,884,888,891,897,909,918,929,933,936,939,943,955,963,969,978,990,996],[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 start tracking Amazon search rank 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\u002Faxesso_data\u002Famazon-search-scraper to track the top Amazon results for a keyword over time\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,77,80],"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\u002Faxesso_data\u002Famazon-search-scraper",[26,51,52],{"class":36}," to",[26,54,55],{"class":36}," track",[26,57,58],{"class":36}," the",[26,60,61],{"class":36}," top",[26,63,64],{"class":36}," Amazon",[26,66,67],{"class":36}," results",[26,69,70],{"class":36}," for",[26,72,73],{"class":36}," a",[26,75,76],{"class":36}," keyword",[26,78,79],{"class":36}," over",[26,81,82],{"class":36}," time\n",[11,84,85,86,91],{},"You can snapshot the top Amazon results for any keyword, with rank, price, rating count and Prime status, from a single metered endpoint, then run that snapshot on a schedule to watch a category move. This is the whole cookbook: the query, paging, flattening each result into a dated row, and the cron line that appends one snapshot a day. Monid is ",[87,88,90],"a",{"href":89},"\u002Fopenrouter-for-agent-tools","the OpenRouter for agent tools",", so this endpoint is one of over a thousand reachable on one key, and we verified this one ourselves on 2026-08-17.",[93,94,96],"h2",{"id":95},"what-is-the-best-api-for-amazon-product-data","What is the best API for Amazon product data?",[11,98,99],{},"For search rank specifically, the official answer stopped existing and the useful answer is a search-results scrape. That needs explaining, because the retired option still shapes what people expect.",[101,102,104],"h3",{"id":103},"the-product-advertising-api-was-never-a-ranking-feed","The Product Advertising API was never a ranking feed",[11,106,107,108,115,116,119],{},"Amazon's ",[87,109,114],{"href":110,"rel":111},"https:\u002F\u002Fwebservices.amazon.com\u002Fpaapi5\u002Fdocumentation\u002F",[112,113],"noopener","noreferrer","Product Advertising API"," was the official route and it retired in May 2026. Even while it ran, its ",[23,117,118],{},"SearchItems"," operation sat behind Associates approval tied to qualifying sales, and what it returned was an affiliate-shaped product list rather than the page a shopper sees. Position and sponsored placement, the two fields a rank tracker exists to record, were not in it.",[11,121,122,123,128,129,133],{},"So \"what is the best API for Amazon product data\" splits by job. If you need catalogue attributes for products you already know, an ASIN lookup is the cleaner shape and ",[87,124,127],{"href":125,"rel":126},"https:\u002F\u002Fmonid.ai\u002Fblog\u002Fautomate-amazon-product-detail-lookups",[112,113],"automating product-detail lookups from a list of ASINs"," covers it. If you need to know ",[130,131,132],"strong",{},"where"," something ranks for a keyword, you need the search page as rendered.",[101,135,137],{"id":136},"what-a-search-feed-has-to-return-to-be-worth-scheduling","What a search feed has to return to be worth scheduling",[11,139,140],{},"Four fields decide whether a snapshot is chartable later.",[142,143,144,151,157,163],"ul",{},[145,146,147,150],"li",{},[130,148,149],{},"Position, and whether the slot was sponsored."," Without the sponsored flag, a paid placement looks like an organic win and every chart built on it is wrong.",[145,152,153,156],{},[130,154,155],{},"ASIN."," The join key across snapshots. Titles change, ASINs do not.",[145,158,159,162],{},[130,160,161],{},"Price and rating count at the moment of capture."," These move faster than rank and explain most of the rank movement you will see.",[145,164,165,168],{},[130,166,167],{},"The capture timestamp."," The field people leave out and then cannot reconstruct.",[11,170,171,178,179,184],{},[87,172,175],{"href":173,"rel":174},"https:\u002F\u002Fmonid.ai\u002Ftools\u002Famazon",[112,113],[23,176,177],{},"apify\u002Faxesso_data\u002Famazon-search-scraper",", maintained by scraping specialists on ",[87,180,183],{"href":181,"rel":182},"https:\u002F\u002Fapify.com",[112,113],"Apify",", returns all four plus availability, Prime status, images, category hierarchy and similar-keyword suggestions.",[93,186,188],{"id":187},"how-can-i-scrape-only-price-stock-and-availability-from-amazon-every-day","How can I scrape only price, stock and availability from Amazon every day?",[11,190,191],{},"One metered call per keyword, flattened into a dated row, on a schedule. Five steps, and the third is the one that decides whether you end up with a chart or a folder of JSON.",[101,193,195],{"id":194},"for-agents","For agents",[11,197,198,199,204],{},"Grab an API key at ",[87,200,203],{"href":201,"rel":202},"https:\u002F\u002Fapp.monid.ai\u002F",[112,113],"app.monid.ai",", then paste this to your agent and hand it the key:",[16,206,211],{"className":207,"code":209,"language":210,"meta":21},[208],"language-text","set up https:\u002F\u002Fmonid.ai\u002FSKILL.md\n","text",[23,212,209],{"__ignoreMap":21},[11,214,215,216,221],{},"It learns the whole discover, inspect, run workflow itself. More in the ",[87,217,220],{"href":218,"rel":219},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-skill",[112,113],"agent quickstart",".",[101,223,225],{"id":224},"for-humans","For humans",[16,227,231],{"className":228,"code":229,"language":230,"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 -k \u003Cyour-key> -l main\n","bash",[23,232,233,248],{"__ignoreMap":21},[26,234,235,239,242,245],{"class":28,"line":29},[26,236,238],{"class":237},"sBMFI","npm",[26,240,241],{"class":36}," install",[26,243,244],{"class":36}," -g",[26,246,247],{"class":36}," @monid-ai\u002Fcli\n",[26,249,251,254,257,260,263,267,270,274,277,280],{"class":28,"line":250},2,[26,252,253],{"class":237},"monid",[26,255,256],{"class":36}," keys",[26,258,259],{"class":36}," add",[26,261,262],{"class":36}," -k",[26,264,266],{"class":265},"sMK4o"," \u003C",[26,268,269],{"class":36},"your-ke",[26,271,273],{"class":272},"sTEyZ","y",[26,275,276],{"class":265},">",[26,278,279],{"class":36}," -l",[26,281,282],{"class":36}," main\n",[101,284,286],{"id":285},"step-1-inspect-before-running","Step 1. Inspect before running",[11,288,289,292],{},[130,290,291],{},"What it does."," Returns the input schema, the billing shape and the price, for free.",[11,294,295],{},[130,296,297],{},"The call.",[16,299,301],{"className":228,"code":300,"language":230,"meta":21,"style":21},"monid inspect -p apify -e \u002Faxesso_data\u002Famazon-search-scraper\n",[23,302,303],{"__ignoreMap":21},[26,304,305,307,310,313,316,319],{"class":28,"line":29},[26,306,253],{"class":237},[26,308,309],{"class":36}," inspect",[26,311,312],{"class":36}," -p",[26,314,315],{"class":36}," apify",[26,317,318],{"class":36}," -e",[26,320,321],{"class":36}," \u002Faxesso_data\u002Famazon-search-scraper\n",[11,323,324,327,328,331],{},[130,325,326],{},"What comes back."," The input is an array wrapped in one ",[23,329,330],{},"input"," key, which is the shape people get wrong on the first try:",[16,333,337],{"className":334,"code":335,"language":336,"meta":21,"style":21},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\"input\":[{\"keyword\":\"wireless earbuds\",\"domainCode\":\"com\",\"maxPages\":1,\"category\":\"aps\"}]}\n","json",[23,338,339],{"__ignoreMap":21},[26,340,341,344,347,350,352,355,357,360,362,365,367,370,372,375,377,380,382,384,386,389,391,393,395,398,400,402,406,408,410,413,415,417,419,422,424],{"class":28,"line":29},[26,342,343],{"class":265},"{",[26,345,346],{"class":265},"\"",[26,348,330],{"class":349},"spNyl",[26,351,346],{"class":265},[26,353,354],{"class":265},":[{",[26,356,346],{"class":265},[26,358,359],{"class":237},"keyword",[26,361,346],{"class":265},[26,363,364],{"class":265},":",[26,366,346],{"class":265},[26,368,369],{"class":36},"wireless earbuds",[26,371,346],{"class":265},[26,373,374],{"class":265},",",[26,376,346],{"class":265},[26,378,379],{"class":237},"domainCode",[26,381,346],{"class":265},[26,383,364],{"class":265},[26,385,346],{"class":265},[26,387,388],{"class":36},"com",[26,390,346],{"class":265},[26,392,374],{"class":265},[26,394,346],{"class":265},[26,396,397],{"class":237},"maxPages",[26,399,346],{"class":265},[26,401,364],{"class":265},[26,403,405],{"class":404},"sbssI","1",[26,407,374],{"class":265},[26,409,346],{"class":265},[26,411,412],{"class":237},"category",[26,414,346],{"class":265},[26,416,364],{"class":265},[26,418,346],{"class":265},[26,420,421],{"class":36},"aps",[26,423,346],{"class":265},[26,425,426],{"class":265},"}]}\n",[11,428,429,432,433,436,437,440],{},[130,430,431],{},"What it costs."," Nothing. ",[23,434,435],{},"discover"," and ",[23,438,439],{},"inspect"," are both free, so reading the schema and the price before committing costs you nothing at all.",[101,442,444],{"id":443},"step-2-run-one-keyword-one-page","Step 2. Run one keyword, one page",[11,446,447,449],{},[130,448,291],{}," Fetches the rendered search page and returns structured items.",[11,451,452],{},[130,453,297],{},[16,455,457],{"className":228,"code":456,"language":230,"meta":21,"style":21},"monid run -p apify -e \u002Faxesso_data\u002Famazon-search-scraper \\\n  -i '{\"input\":[{\"keyword\":\"wireless earbuds\",\"domainCode\":\"com\",\"maxPages\":1}]}' -w\n",[23,458,459,478],{"__ignoreMap":21},[26,460,461,463,466,468,470,472,475],{"class":28,"line":29},[26,462,253],{"class":237},[26,464,465],{"class":36}," run",[26,467,312],{"class":36},[26,469,315],{"class":36},[26,471,318],{"class":36},[26,473,474],{"class":36}," \u002Faxesso_data\u002Famazon-search-scraper",[26,476,477],{"class":272}," \\\n",[26,479,480,483,486,489,492],{"class":28,"line":250},[26,481,482],{"class":36},"  -i",[26,484,485],{"class":265}," '",[26,487,488],{"class":36},"{\"input\":[{\"keyword\":\"wireless earbuds\",\"domainCode\":\"com\",\"maxPages\":1}]}",[26,490,491],{"class":265},"'",[26,493,494],{"class":36}," -w\n",[11,496,497,499,500,503],{},[130,498,326],{}," One item per search result: ASIN, title, ",[23,501,502],{},"position",", price with any discount, star rating, review count, a sponsored flag, availability and Prime status. Page-level extras arrive too, including similar-keyword suggestions, which is a free source of adjacent terms to track next.",[11,505,506,508,509,514,515,221],{},[130,507,431],{}," Billed per result, and here is the part worth reading twice: ",[130,510,511,513],{},[23,512,397],{}," caps pages, not results."," Each page holds a variable number of items, so the result count for a given run is not something you can predict from the input. Start at one page, count what came back, and only then decide the cadence. Magnitudes are at ",[87,516,519],{"href":517,"rel":518},"https:\u002F\u002Fmonid.ai\u002Ftools",[112,113],"monid.ai\u002Ftools",[101,521,523],{"id":522},"step-3-flatten-each-result-into-a-dated-row","Step 3. Flatten each result into a dated row",[11,525,526,528],{},[130,527,291],{}," Turns a payload into something you can compare against yesterday.",[11,530,531],{},"Keep it narrow on purpose. One row per result, and the date is part of the row rather than the filename:",[16,533,535],{"className":228,"code":534,"language":230,"meta":21,"style":21},"monid runs get -r \u003CRunID> -o snapshot.json\n\njq -r --arg d \"$(date -u +%F)\" '\n  .[] | [$d, .keyword, .position, .asin, .title, .price, .reviewCount, .sponsored]\n  | @csv' snapshot.json >> history.csv\n",[23,536,537,566,572,601,607],{"__ignoreMap":21},[26,538,539,541,544,547,550,552,555,558,560,563],{"class":28,"line":29},[26,540,253],{"class":237},[26,542,543],{"class":36}," runs",[26,545,546],{"class":36}," get",[26,548,549],{"class":36}," -r",[26,551,266],{"class":265},[26,553,554],{"class":36},"RunI",[26,556,557],{"class":272},"D",[26,559,276],{"class":265},[26,561,562],{"class":36}," -o",[26,564,565],{"class":36}," snapshot.json\n",[26,567,568],{"class":28,"line":250},[26,569,571],{"emptyLinePlaceholder":570},true,"\n",[26,573,575,578,580,583,586,589,592,595,598],{"class":28,"line":574},3,[26,576,577],{"class":237},"jq",[26,579,549],{"class":36},[26,581,582],{"class":36}," --arg",[26,584,585],{"class":36}," d",[26,587,588],{"class":265}," \"$(",[26,590,591],{"class":237},"date",[26,593,594],{"class":36}," -u +%F",[26,596,597],{"class":265},")\"",[26,599,600],{"class":265}," '\n",[26,602,604],{"class":28,"line":603},4,[26,605,606],{"class":36},"  .[] | [$d, .keyword, .position, .asin, .title, .price, .reviewCount, .sponsored]\n",[26,608,610,613,615,618,621],{"class":28,"line":609},5,[26,611,612],{"class":36},"  | @csv",[26,614,491],{"class":265},[26,616,617],{"class":36}," snapshot.json",[26,619,620],{"class":265}," >>",[26,622,623],{"class":36}," history.csv\n",[11,625,626,629,630,633,634,637],{},[130,627,628],{},"Why the date goes in the row."," A folder of ",[23,631,632],{},"2026-08-17.json"," files is a backup, not a history. The moment the date is a column, the whole file is one ",[23,635,636],{},"GROUP BY"," away from a rank chart, and a re-run on the same day is visible instead of silently overwriting.",[101,639,641],{"id":640},"step-4-append-never-overwrite","Step 4. Append, never overwrite",[11,643,644,646],{},[130,645,291],{}," Makes the history the artifact and each run disposable.",[11,648,649,652,653,655],{},[23,650,651],{},">>"," rather than ",[23,654,276],{}," is the entire trick. Every run adds rows, nothing rewrites them, and the file only grows. If a run fails halfway you get a short day rather than a corrupted history, which is the failure mode you want.",[101,657,659],{"id":658},"step-5-put-it-on-a-schedule","Step 5. Put it on a schedule",[11,661,662,664],{},[130,663,291],{}," Turns a snapshot into a trend.",[16,666,668],{"className":228,"code":667,"language":230,"meta":21,"style":21},"# 07:00 UTC daily\n0 7 * * * cd ~\u002Frank-tracker && .\u002Fsnapshot.sh >> cron.log 2>&1\n",[23,669,670,676],{"__ignoreMap":21},[26,671,672],{"class":28,"line":29},[26,673,675],{"class":674},"sHwdD","# 07:00 UTC daily\n",[26,677,678,681,684,687,689,691,694,697,700,703,705,708],{"class":28,"line":250},[26,679,680],{"class":237},"0",[26,682,683],{"class":404}," 7",[26,685,686],{"class":272}," *",[26,688,686],{"class":272},[26,690,686],{"class":272},[26,692,693],{"class":36}," cd",[26,695,696],{"class":36}," ~\u002Frank-tracker",[26,698,699],{"class":265}," &&",[26,701,702],{"class":237}," .\u002Fsnapshot.sh",[26,704,620],{"class":265},[26,706,707],{"class":36}," cron.log",[26,709,710],{"class":265}," 2>&1\n",[11,712,713],{},"Daily is the right default for rank. Price moves faster, so if price is the thing you actually care about, run twice a day and accept that the rank column is then oversampled. Do not go hourly on a whim: this is metered per result, and a cadence you picked casually shows up on the bill.",[11,715,716],{},[717,718],"img",{"alt":719,"src":720},"A linear pipeline: one keyword goes into the metered search endpoint, results are flattened into a dated CSV row, the row is appended to a growing history file, and cron repeats it daily to produce a rank chart","\u002Fimg\u002Fblog\u002Fwire-up-amazon-search-tracking-fig-flow.png",[722,723,724],"blockquote",{},[11,725,726,727,730,731],{},"📖 ",[130,728,729],{},"See also"," ",[87,732,735],{"href":733,"rel":734},"https:\u002F\u002Fmonid.ai\u002Fblog\u002Fguides\u002Famazon-pa-api-alternatives",[112,113],"Amazon's PA-API Retires in 2026: How to Move",[93,737,739],{"id":738},"which-endpoint-should-i-use-for-which-job","Which endpoint should I use for which job?",[11,741,742,743,746],{},"Three Amazon jobs, three shapes, and picking by job rather than by vendor is most of the decision. Every row below was checked with ",[23,744,745],{},"monid inspect"," on 2026-08-17.",[748,749,750,772],"table",{},[751,752,753],"thead",{},[754,755,756,760,763,766,769],"tr",{},[757,758,759],"th",{},"Job",[757,761,762],{},"Endpoint",[757,764,765],{},"Input",[757,767,768],{},"What you get",[757,770,771],{},"Billing shape",[773,774,775,798,815],"tbody",{},[754,776,777,781,789,792,795],{},[778,779,780],"td",{},"Where does a keyword rank",[778,782,783],{},[87,784,786],{"href":173,"rel":785},[112,113],[23,787,788],{},"axesso_data\u002Famazon-search-scraper",[778,790,791],{},"keyword, marketplace, page depth",[778,793,794],{},"Position, sponsored flag, ASIN, price, rating count, Prime",[778,796,797],{},"Per result, and pages multiply results unpredictably",[754,799,800,803,806,809,812],{},[778,801,802],{},"Attributes for a known product",[778,804,805],{},"ASIN product-detail lookup",[778,807,808],{},"ASIN list",[778,810,811],{},"Title, specifications, images, variations, offers",[778,813,814],{},"Per result, one result per ASIN, so cost is exactly countable",[754,816,817,820,823,826,829],{},[778,818,819],{},"What buyers actually said",[778,821,822],{},"Reviews extraction",[778,824,825],{},"ASIN, filters",[778,827,828],{},"Review text, rating distribution, dates",[778,830,831],{},"Per result, and one query can return many reviews",[11,833,834],{},"The column that matters is the last one. Search and reviews are both per result with an unpredictable multiplier, so both need a small real run before you size a schedule. The ASIN lookup is the only one of the three where the input count equals the billed count, which makes it the easy one to budget and the reason it belongs in any pipeline where you already know the products.",[11,836,837],{},"That difference also decides the order to build in. Start from the ASIN lookup for the catalogue you own, add search tracking for the terms you compete on, and add reviews last, because it is the one whose volume surprises people.",[93,839,841],{"id":840},"what-does-tracking-one-keyword-actually-cost","What does tracking one keyword actually cost?",[11,843,844],{},"Per result, which for a rank tracker means the bill is a function of how many keywords you track and how deep you page, not how long anything runs and not how many people on your team look at the chart.",[11,846,847],{},"Three levers, in the order they matter:",[11,849,850,853,854,856],{},[130,851,852],{},"Keyword count."," Every entry in the ",[23,855,330],{}," array is its own query, billed separately. This is the dial you will actually turn.",[11,858,859,730,862,864],{},[130,860,861],{},"Page depth.",[23,863,397],{}," multiplies results per keyword, and because per-page item counts vary, depth is also where cost predictability goes. One page is the top of the search results, which is where rank tracking lives anyway.",[11,866,867,870],{},[130,868,869],{},"Cadence."," Daily against hourly is a twenty-four times difference in a bill for a metric that does not move that fast.",[11,872,873,874,877,878,880],{},"The honest way to size this is to run one keyword at one page, look at how many results came back, and multiply. That is two free calls and one cheap one, and it beats any estimate. Current magnitudes are at ",[87,875,519],{"href":517,"rel":876},[112,113],", and ",[23,879,439],{}," shows the figure before anything bills.",[11,882,883],{},"::skill-prompt{prompt=\"track the top Amazon results for \"wireless earbuds\" daily and append each snapshot to a dated CSV\"}\n::",[93,885,887],{"id":886},"when-should-you-not-use-a-search-scrape","When should you not use a search scrape?",[11,889,890],{},"Three cases, and the first two are common.",[11,892,893,896],{},[130,894,895],{},"You only need attributes for products you already know."," Then this is the wrong shape and you are paying for a search you did not need. Use an ASIN lookup instead.",[11,898,899,902,903,908],{},[130,900,901],{},"You need reviews at volume."," A search scrape returns review counts, not reviews. That is a different endpoint family with a different billing shape, and we tested them separately in ",[87,904,907],{"href":905,"rel":906},"https:\u002F\u002Fmonid.ai\u002Fblog\u002Fguides\u002Fbest-amazon-reviews-api-2026",[112,113],"the Amazon reviews API comparison",", including one listing whose billing did not match its description.",[11,910,911,914,915,917],{},[130,912,913],{},"You need a contractual guarantee about availability."," A scrape reads the page as a visitor sees it. Amazon can change that page, geo-vary it, or serve a different result set to a different exit location. ",[23,916,379],{}," targets a marketplace, not a city, so if your question is local availability, this is an approximation.",[11,919,920,921,925,926,928],{},"And the caution about our own layer: what an endpoint's listing claims about billing has not always matched what it charges. We found that on a different Amazon endpoint and ",[87,922,924],{"href":905,"rel":923},[112,113],"published it"," rather than quietly fixing the page. Until every listing is verified, the working rule is that ",[23,927,439],{}," tells you what an endpoint claims and a small real run tells you what it charges. That rule is why Step 2 above says to count what came back.",[93,930,932],{"id":931},"conclusion","Conclusion",[11,934,935],{},"Rank tracking is not a scraping problem, it is a schema-and-cadence problem. The scrape is one call. What decides whether you have a rank history in three months is whether the date went into the row, whether you appended instead of overwrote, and whether you picked the cadence deliberately rather than defaulting to hourly.",[11,937,938],{},"Run one keyword at one page first. Count the results, then decide everything else.",[93,940,942],{"id":941},"faq","FAQ",[944,945,947],"faq-item",{"q":946},"What is the best API to get all Amazon reviews, not just the first ten?",[11,948,949,950,954],{},"A different endpoint from this one. Review extraction is its own family with its own billing shape, and we compared the options in ",[87,951,953],{"href":905,"rel":952},[112,113],"the reviews API guide"," rather than repeating it here.",[944,956,958],{"q":957},"Does `maxPages` control how many results I get?",[11,959,960,961,746],{},"No, and this is the most common cost surprise. It caps pages. Each page holds a variable number of items, so the result count, which is what you are billed on, is not predictable from the input. Verified against ",[23,962,745],{},[944,964,966],{"q":965},"How deep should I page for rank tracking?",[11,967,968],{},"One page for most cases. If your listing is not on it, the number you want is not a rank, it is a gap, and paging further mostly buys you long-tail noise at a per-result price.",[944,970,972],{"q":971},"Can I track several keywords in one call?",[11,973,974,975,977],{},"Yes. The ",[23,976,330],{}," array takes several entries and each is billed as its own query. Batching them into one call keeps the run count at one, which makes failures easier to reason about than a loop.",[944,979,981],{"q":980},"Do I need an Apify account?",[11,982,983,984,989],{},"No. The actor is reachable on one ",[87,985,988],{"href":986,"rel":987},"https:\u002F\u002Fmonid.ai",[112,113],"Monid"," key and balance, billed per result, with no per-vendor signup.",[11,991,992],{},[993,994,995],"em",{},"Last updated August 2026.",[997,998,999],"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}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":21,"searchDepth":250,"depth":250,"links":1001},[1002,1006,1015,1016,1017,1018,1019],{"id":95,"depth":250,"text":96,"children":1003},[1004,1005],{"id":103,"depth":574,"text":104},{"id":136,"depth":574,"text":137},{"id":187,"depth":250,"text":188,"children":1007},[1008,1009,1010,1011,1012,1013,1014],{"id":194,"depth":574,"text":195},{"id":224,"depth":574,"text":225},{"id":285,"depth":574,"text":286},{"id":443,"depth":574,"text":444},{"id":522,"depth":574,"text":523},{"id":640,"depth":574,"text":641},{"id":658,"depth":574,"text":659},{"id":738,"depth":250,"text":739},{"id":840,"depth":250,"text":841},{"id":886,"depth":250,"text":887},{"id":931,"depth":250,"text":932},{"id":941,"depth":250,"text":942},"Ecommerce","\u002Fimg\u002Fblog\u002Fwire-up-amazon-search-tracking.png","Snapshot the top Amazon results for a keyword, rank, price, rating and Prime status, from one metered endpoint, then schedule it into a rank history.",false,"md",null,{},"\u002Fblog\u002Fwire-up-amazon-search-tracking","2026-07-27","10 min",{"title":5,"description":1022},"blog\u002Fwire-up-amazon-search-tracking",[1033,1034,1035,1036],"amazon scraping","apify","rank tracking","data pipeline","amazon","2026-08-17","sOiJK79turL1uw9K-HK_864TxSLiA9UiLwBvxVcE6fU",[1041,1104,1172,1238],{"id":1042,"title":1043,"author":1025,"body":1044,"category":1088,"cover":1089,"description":21,"draft":1023,"extension":1024,"image":1025,"launchCta":1090,"listingCover":1025,"meta":1093,"navigation":570,"ogImage":1025,"path":1094,"publishedAt":1095,"readTime":1025,"seo":1096,"stem":1097,"tags":1098,"toolCategory":1025,"updatedAt":1025,"__hash__":1103},"blog\u002Fblog\u002Fakta-pro-is-now-available-on-monid.md","Akta Pro Is Now Available On Monid",{"type":8,"value":1045,"toc":1084},[1046,1050,1058,1061,1065,1071,1078,1081],[93,1047,1049],{"id":1048},"what-is-aktapro","What is akta.pro",[11,1051,1052,1057],{},[87,1053,1056],{"href":1054,"rel":1055},"https:\u002F\u002Fwww.akta.pro\u002F",[112,113],"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,1059,1060],{},"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.",[93,1062,1064],{"id":1063},"what-is-monid","What is Monid",[11,1066,1067,1070],{},[87,1068,988],{"href":986,"rel":1069},[112,113]," 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,1072,1073,1074,221],{},"Today, Monid provides tools for social media scraping, web search, image and\nmusic generation, people data search, weather APIs, ",[87,1075,1077],{"href":517,"rel":1076},[112,113],"and more",[1079,1080],"hr",{},[11,1082,1083],{},"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":250,"depth":250,"links":1085},[1086,1087],{"id":1048,"depth":250,"text":1049},{"id":1063,"depth":250,"text":1064},"Product","\u002Fimg\u002Fblog\u002Fakta-pro-is-now-available-on-monid-v2.png",{"label":1091,"command":1092},"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",{"Introducing private markets data for agents":1025},"\u002Fblog\u002Fakta-pro-is-now-available-on-monid","2026-07-07",{"description":21},"blog\u002Fakta-pro-is-now-available-on-monid",[1099,1100,1101,1102],"agents","partner-tools","private-markets","data","PnTj95h3JP-jvhNCHtHkAUo-ihfg9IdhcguBJisMdqw",{"id":1105,"title":1106,"author":1025,"body":1107,"category":1088,"cover":1161,"description":1162,"draft":1023,"extension":1024,"image":1025,"launchCta":1025,"listingCover":1025,"meta":1163,"navigation":570,"ogImage":1025,"path":1164,"publishedAt":1165,"readTime":1025,"seo":1166,"stem":1167,"tags":1168,"toolCategory":1025,"updatedAt":1025,"__hash__":1171},"blog\u002Fblog\u002Fyour-claude-code-can-now-make-phone-calls.md","Your Claude Code can now make phone calls",{"type":8,"value":1108,"toc":1157},[1109,1112,1121,1125,1133,1136,1138,1143,1149,1151,1154],[11,1110,1111],{"style":13},"Copy this line to your agent to make your first phone call.",[16,1113,1115],{"className":18,"code":1114,"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,1116,1117],{"__ignoreMap":21},[26,1118,1119],{"class":28,"line":29},[26,1120,1114],{},[93,1122,1124],{"id":1123},"what-is-saperly","What is Saperly",[11,1126,1127,1132],{},[87,1128,1131],{"href":1129,"rel":1130},"https:\u002F\u002Fsaperly.com\u002F",[112,113],"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,1134,1135],{},"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.",[93,1137,1064],{"id":1063},[11,1139,1140,1070],{},[87,1141,988],{"href":986,"rel":1142},[112,113],[11,1144,1145,1146,221],{},"Today, Monid provides tools for social media scraping, web search, image \u002F\nmusic \u002F 3d model generation, people data search, weather APIs, ",[87,1147,1077],{"href":517,"rel":1148},[112,113],[1079,1150],{},[11,1152,1153],{},"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.",[997,1155,1156],{},"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":250,"depth":250,"links":1158},[1159,1160],{"id":1123,"depth":250,"text":1124},{"id":1063,"depth":250,"text":1064},"\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":1106,"description":1162},"blog\u002Fyour-claude-code-can-now-make-phone-calls",[1099,1100,1169,1170],"voice","phone","csYPncZSMNkfzJEk1j2VKkzaAYzm9-PS7yNoJEj48Fw",{"id":1173,"title":1174,"author":1025,"body":1175,"category":1088,"cover":1227,"description":1228,"draft":1023,"extension":1024,"image":1025,"launchCta":1025,"listingCover":1025,"meta":1229,"navigation":570,"ogImage":1025,"path":1230,"publishedAt":1231,"readTime":1025,"seo":1232,"stem":1233,"tags":1234,"toolCategory":1025,"updatedAt":1025,"__hash__":1237},"blog\u002Fblog\u002Fintroducing-suzanne-chatgpt-for-3d-models.md","Introducing\nClaude for 3D models",{"type":8,"value":1176,"toc":1223},[1177,1180,1189,1193,1201,1204,1206,1211,1216,1218,1221],[11,1178,1179],{"style":13},"Copy this line to your agent to generate your 3D model.",[16,1181,1183],{"className":18,"code":1182,"language":20,"meta":21,"style":21},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a 3D model for a rabbit\n",[23,1184,1185],{"__ignoreMap":21},[26,1186,1187],{"class":28,"line":29},[26,1188,1182],{},[93,1190,1192],{"id":1191},"what-is-suzanne","What is Suzanne",[11,1194,1195,1200],{},[87,1196,1199],{"href":1197,"rel":1198},"https:\u002F\u002Fwww.suzanne3d.com",[112,113],"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,1202,1203],{},"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.",[93,1205,1064],{"id":1063},[11,1207,1208,1070],{},[87,1209,988],{"href":986,"rel":1210},[112,113],[11,1212,1073,1213,221],{},[87,1214,1077],{"href":517,"rel":1215},[112,113],[1079,1217],{},[11,1219,1220],{},"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.",[997,1222,1156],{},{"title":21,"searchDepth":250,"depth":250,"links":1224},[1225,1226],{"id":1191,"depth":250,"text":1192},{"id":1063,"depth":250,"text":1064},"\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":1174,"description":1228},"blog\u002Fintroducing-suzanne-chatgpt-for-3d-models",[1235,1099,1236],"3d","creative-tools","kYcmMQIaqjfL65PuYMzsNQuGQHAjX98Lf0JmtJ5Evdk",{"id":1239,"title":1240,"author":1025,"body":1241,"category":1088,"cover":1300,"description":1301,"draft":1023,"extension":1024,"image":1025,"launchCta":1025,"listingCover":1025,"meta":1302,"navigation":570,"ogImage":1025,"path":1303,"publishedAt":1304,"readTime":1025,"seo":1305,"stem":1306,"tags":1307,"toolCategory":1025,"updatedAt":1025,"__hash__":1310},"blog\u002Fblog\u002Fminimax-is-now-available-on-monid.md","MiniMax is now available on Monid",{"type":8,"value":1242,"toc":1295},[1243,1246,1255,1259,1267,1271,1274,1276,1282,1288,1290,1293],[11,1244,1245],{"style":13},"Copy this line to your agent to create music.",[16,1247,1249],{"className":18,"code":1248,"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,1250,1251],{"__ignoreMap":21},[26,1252,1253],{"class":28,"line":29},[26,1254,1248],{},[93,1256,1258],{"id":1257},"minimax-music-26","MiniMax Music 2.6",[11,1260,1261,1266],{},[87,1262,1265],{"href":1263,"rel":1264},"https:\u002F\u002Fwww.minimax.io",[112,113],"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.",[93,1268,1270],{"id":1269},"minimax-text-to-image-image-01","MiniMax Text-to-Image image-01",[11,1272,1273],{},"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.",[93,1275,1064],{"id":1063},[11,1277,1278,1281],{},[87,1279,988],{"href":986,"rel":1280},[112,113]," 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,1283,1284,1285,221],{},"Today, Monid provides tools for social media scraping, web search, image and music generation, people data search, weather APIs, ",[87,1286,1077],{"href":517,"rel":1287},[112,113],[1079,1289],{},[11,1291,1292],{},"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.",[997,1294,1156],{},{"title":21,"searchDepth":250,"depth":250,"links":1296},[1297,1298,1299],{"id":1257,"depth":250,"text":1258},{"id":1269,"depth":250,"text":1270},{"id":1063,"depth":250,"text":1064},"\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":1240,"description":1301},"blog\u002Fminimax-is-now-available-on-monid",[1099,1236,1308,1309],"image-generation","music-generation","5UuKGAmhBzgZhlBHiMaknxJibanxzR9XtPGcrGA7oQI",1787369513267]