[{"data":1,"prerenderedAt":1046},["ShallowReactive",2],{"blog-\u002Fblog\u002Fship-an-instagram-profile-enricher":3,"blog-related-\u002Fblog\u002Fship-an-instagram-profile-enricher":773},{"id":4,"title":5,"author":6,"body":7,"category":757,"cover":758,"description":759,"draft":760,"extension":761,"image":757,"launchCta":757,"listingCover":757,"meta":762,"navigation":570,"ogImage":757,"path":763,"publishedAt":764,"readTime":757,"seo":765,"stem":766,"tags":767,"toolCategory":757,"updatedAt":757,"__hash__":772},"blogUnlisted\u002Fblog\u002Fship-an-instagram-profile-enricher.md","Ship an Instagram Profile Enricher This Afternoon","The Monid Team",{"type":8,"value":9,"toc":742},"minimark",[10,14,31,34,39,80,84,89,98,108,117,121,127,135,139,142,174,211,215,226,281,284,318,325,332,336,339,397,407,411,414,526,536,540,543,636,645,649,658,661,664,670,674,688,692,702,708,714,726,738],[11,12,13],"p",{},"Give a list of Instagram usernames one endpoint and you get back one clean row per handle: full name, bio, follower count, verified flag, and external URL, ready to write to CSV. No Graph API app review, no per-vendor signup, and the whole build fits in an afternoon.",[11,15,16,17,24,25,30],{},"This is the cookbook version. You have a list of handles sitting in a spreadsheet, maybe from a signup form, a partnerships shortlist, or a creator outreach sheet, and you want each one enriched into a structured record. The tool is the Apify ",[18,19,23],"a",{"href":20,"rel":21},"https:\u002F\u002Fapify.com\u002Fapify\u002Finstagram-profile-scraper",[22],"nofollow","instagram-profile-scraper",", reached through ",[18,26,29],{"href":27,"rel":28},"https:\u002F\u002Fmonid.ai",[22],"Monid"," so you never touch an Apify account.",[11,32,33],{},"Monid is a pay-per-call data-API marketplace: one interface and one wallet to discover, inspect, and run hundreds of external data endpoints without a separate account for each provider. You read a schema for free, then pay only for the run that returns rows.",[35,36,38],"h2",{"id":37},"tldr","TL;DR",[40,41,42,55,58,68,77],"ul",{},[43,44,45,46,50,51,54],"li",{},"One endpoint, ",[47,48,49],"code",{},"apify\u002Fapify\u002Finstagram-profile-scraper",", takes a ",[47,52,53],{},"usernames"," array and returns one profile object per handle with name, bio, followers, verified, and external URL.",[43,56,57],{},"Inspect the schema for free, run one username to confirm the fields, then loop your whole list.",[43,59,60,63,64,67],{},[47,61,62],{},"jq"," maps each result to a flat record; ",[47,65,66],{},"@csv"," handles the quoting so bios with commas do not break your columns.",[43,69,70,71,76],{},"Billing is per result, so enriching a list of a few hundred handles is a few-dollars job. See ",[18,72,75],{"href":73,"rel":74},"https:\u002F\u002Fmonid.ai\u002Ftools",[22],"monid.ai\u002Ftools"," for live pricing.",[43,78,79],{},"The Instagram Graph API is not the shortcut here: it only reads accounts you own or manage, and it needs app review first.",[35,81,83],{"id":82},"set-up-monid-once","Set up Monid once",[85,86,88],"h3",{"id":87},"for-agents","For agents",[11,90,91,92,97],{},"Grab an API key at ",[18,93,96],{"href":94,"rel":95},"https:\u002F\u002Fapp.monid.ai\u002F",[22],"app.monid.ai",", then paste this to your agent and hand it the key:",[99,100,105],"pre",{"className":101,"code":103,"language":104},[102],"language-text","set up https:\u002F\u002Fmonid.ai\u002FSKILL.md\n","text",[47,106,103],{"__ignoreMap":107},"",[11,109,110,111,116],{},"It learns the whole discover, inspect, run workflow itself. More details in the ",[18,112,115],{"href":113,"rel":114},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-skill",[22],"agent quickstart",".",[85,118,120],{"id":119},"for-humans","For humans",[99,122,125],{"className":123,"code":124,"language":104},[102],"npm install -g @monid-ai\u002Fcli\nmonid keys add --label main --key \u003Cyour-api-key>\n",[47,126,124],{"__ignoreMap":107},[11,128,129,130,116],{},"More details in the ",[18,131,134],{"href":132,"rel":133},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-cli",[22],"CLI quickstart",[35,136,138],{"id":137},"step-1-inspect-the-endpoint-free","Step 1: inspect the endpoint (free)",[11,140,141],{},"Read the schema before you spend anything. Inspect shows the accepted input fields and the price per result, and it costs nothing.",[99,143,147],{"className":144,"code":145,"language":146,"meta":107,"style":107},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","monid inspect -p apify -e \u002Fapify\u002Finstagram-profile-scraper\n","bash",[47,148,149],{"__ignoreMap":107},[150,151,154,158,162,165,168,171],"span",{"class":152,"line":153},"line",1,[150,155,157],{"class":156},"sBMFI","monid",[150,159,161],{"class":160},"sfazB"," inspect",[150,163,164],{"class":160}," -p",[150,166,167],{"class":160}," apify",[150,169,170],{"class":160}," -e",[150,172,173],{"class":160}," \u002Fapify\u002Finstagram-profile-scraper\n",[11,175,176,177,179,180,183,184,187,188,187,191,187,194,187,197,187,200,187,203,206,207,210],{},"The input body takes ",[47,178,53],{},", an array of handles, as the required field. There is an optional ",[47,181,182],{},"includeAboutSection"," flag that pulls the account's \"about this account\" panel (country, join date, former usernames), billed as a paid extra, so leave it off unless you need it. The output returns one object per username with ",[47,185,186],{},"username",", ",[47,189,190],{},"fullName",[47,192,193],{},"biography",[47,195,196],{},"followersCount",[47,198,199],{},"followsCount",[47,201,202],{},"verified",[47,204,205],{},"private",", and ",[47,208,209],{},"externalUrl",", among others. Those key names are the contract the rest of the script leans on, so note the exact spelling here rather than guessing later.",[35,212,214],{"id":213},"step-2-run-one-username-first","Step 2: run one username first",[11,216,217,218,221,222,225],{},"Prove the shape with a single handle before you loop anything. The ",[47,219,220],{},"-i"," flag carries the JSON body and ",[47,223,224],{},"-w"," waits inline so the result comes straight back.",[99,227,229],{"className":144,"code":228,"language":146,"meta":107,"style":107},"monid run -p apify -e \u002Fapify\u002Finstagram-profile-scraper \\\n  -i '{\"usernames\":[\"humansofny\"]}' \\\n  -w -o humansofny.json\n",[47,230,231,251,269],{"__ignoreMap":107},[150,232,233,235,238,240,242,244,247],{"class":152,"line":153},[150,234,157],{"class":156},[150,236,237],{"class":160}," run",[150,239,164],{"class":160},[150,241,167],{"class":160},[150,243,170],{"class":160},[150,245,246],{"class":160}," \u002Fapify\u002Finstagram-profile-scraper",[150,248,250],{"class":249},"sTEyZ"," \\\n",[150,252,254,257,261,264,267],{"class":152,"line":253},2,[150,255,256],{"class":160},"  -i",[150,258,260],{"class":259},"sMK4o"," '",[150,262,263],{"class":160},"{\"usernames\":[\"humansofny\"]}",[150,265,266],{"class":259},"'",[150,268,250],{"class":249},[150,270,272,275,278],{"class":152,"line":271},3,[150,273,274],{"class":160},"  -w",[150,276,277],{"class":160}," -o",[150,279,280],{"class":160}," humansofny.json\n",[11,282,283],{},"If the run goes async you get a run ID instead of the result. Poll and save it with:",[99,285,287],{"className":144,"code":286,"language":146,"meta":107,"style":107},"monid runs get -r \u003CRunID> -o humansofny.json\n",[47,288,289],{"__ignoreMap":107},[150,290,291,293,296,299,302,305,308,311,314,316],{"class":152,"line":153},[150,292,157],{"class":156},[150,294,295],{"class":160}," runs",[150,297,298],{"class":160}," get",[150,300,301],{"class":160}," -r",[150,303,304],{"class":259}," \u003C",[150,306,307],{"class":160},"RunI",[150,309,310],{"class":249},"D",[150,312,313],{"class":259},">",[150,315,277],{"class":160},[150,317,280],{"class":160},[11,319,320,321,324],{},"Now ",[47,322,323],{},"humansofny.json"," holds one profile object. Open it and check that the field names match what Step 1 promised. This one call is the entire billable action in the whole recipe.",[11,326,327],{},[328,329],"img",{"alt":330,"src":331},"Several Instagram handles fan into one per-username Monid run, each returning a profile object, mapped with jq to a flat row and written to profiles.csv","\u002Fimg\u002Fblog\u002Fship-an-instagram-profile-enricher-fig-flow.png",[35,333,335],{"id":334},"step-3-map-the-five-fields-you-actually-want","Step 3: map the five fields you actually want",[11,337,338],{},"The result object carries more than you need. Pull the five enrichment columns into a flat record so you can see them land:",[99,340,342],{"className":144,"code":341,"language":146,"meta":107,"style":107},"jq '{\n  handle: .username,\n  name: .fullName,\n  bio: .biography,\n  followers: .followersCount,\n  verified: .verified,\n  external_url: .externalUrl\n}' humansofny.json\n",[47,343,344,353,358,363,369,375,381,387],{"__ignoreMap":107},[150,345,346,348,350],{"class":152,"line":153},[150,347,62],{"class":156},[150,349,260],{"class":259},[150,351,352],{"class":160},"{\n",[150,354,355],{"class":152,"line":253},[150,356,357],{"class":160},"  handle: .username,\n",[150,359,360],{"class":152,"line":271},[150,361,362],{"class":160},"  name: .fullName,\n",[150,364,366],{"class":152,"line":365},4,[150,367,368],{"class":160},"  bio: .biography,\n",[150,370,372],{"class":152,"line":371},5,[150,373,374],{"class":160},"  followers: .followersCount,\n",[150,376,378],{"class":152,"line":377},6,[150,379,380],{"class":160},"  verified: .verified,\n",[150,382,384],{"class":152,"line":383},7,[150,385,386],{"class":160},"  external_url: .externalUrl\n",[150,388,390,393,395],{"class":152,"line":389},8,[150,391,392],{"class":160},"}",[150,394,266],{"class":259},[150,396,280],{"class":160},[11,398,399,400,403,404,406],{},"If a field comes back ",[47,401,402],{},"null",", that usually means the account left it blank (plenty of profiles have no external URL), not that the pull failed. ",[47,405,202],{}," is a real boolean straight from Instagram, so you can filter your enriched list on it without a second lookup. If any key name here does not resolve, the inspect output from Step 1 is your source of truth, not this snippet.",[35,408,410],{"id":409},"step-4-loop-your-username-list","Step 4: loop your username list",[11,412,413],{},"One handle proves the shape. Your real input is a list. Put the handles in a plain text file, one per line, and run each on its own so a private or misspelled account fails alone instead of taking the batch down.",[99,415,417],{"className":144,"code":416,"language":146,"meta":107,"style":107},"# handles.txt: one username per line\nwhile read -r h; do\n  monid run -p apify -e \u002Fapify\u002Finstagram-profile-scraper \\\n    -i \"{\\\"usernames\\\":[\\\"$h\\\"]}\" \\\n    -w -o \"raw_$h.json\"\ndone \u003C handles.txt\n",[47,418,419,425,446,463,495,516],{"__ignoreMap":107},[150,420,421],{"class":152,"line":153},[150,422,424],{"class":423},"sHwdD","# handles.txt: one username per line\n",[150,426,427,431,435,437,440,443],{"class":152,"line":253},[150,428,430],{"class":429},"s7zQu","while",[150,432,434],{"class":433},"s2Zo4"," read",[150,436,301],{"class":160},[150,438,439],{"class":160}," h",[150,441,442],{"class":259},";",[150,444,445],{"class":429}," do\n",[150,447,448,451,453,455,457,459,461],{"class":152,"line":271},[150,449,450],{"class":156},"  monid",[150,452,237],{"class":160},[150,454,164],{"class":160},[150,456,167],{"class":160},[150,458,170],{"class":160},[150,460,246],{"class":160},[150,462,250],{"class":249},[150,464,465,468,471,474,477,479,481,484,487,490,493],{"class":152,"line":365},[150,466,467],{"class":160},"    -i",[150,469,470],{"class":259}," \"",[150,472,473],{"class":160},"{",[150,475,476],{"class":249},"\\\"",[150,478,53],{"class":160},[150,480,476],{"class":249},[150,482,483],{"class":160},":[",[150,485,486],{"class":249},"\\\"$h\\\"",[150,488,489],{"class":160},"]}",[150,491,492],{"class":259},"\"",[150,494,250],{"class":249},[150,496,497,500,502,504,507,510,513],{"class":152,"line":371},[150,498,499],{"class":160},"    -w",[150,501,277],{"class":160},[150,503,470],{"class":259},[150,505,506],{"class":160},"raw_",[150,508,509],{"class":249},"$h",[150,511,512],{"class":160},".json",[150,514,515],{"class":259},"\"\n",[150,517,518,521,523],{"class":152,"line":377},[150,519,520],{"class":429},"done",[150,522,304],{"class":259},[150,524,525],{"class":249}," handles.txt\n",[11,527,528,529,532,533,535],{},"Each handle writes its own ",[47,530,531],{},"raw_\u003Chandle>.json",". You could pass the whole list inside a single ",[47,534,53],{}," array in one call, and that is fine for a small trusted list, but per-handle files keep failures isolated and make re-running a single bad row trivial. Keep your test list to a handful of handles until the CSV columns are exactly right.",[35,537,539],{"id":538},"step-5-write-it-all-to-csv","Step 5: write it all to CSV",[11,541,542],{},"Emit the header once, then append one flattened row per profile across every file.",[99,544,546],{"className":144,"code":545,"language":146,"meta":107,"style":107},"echo \"handle,name,bio,followers,verified,external_url\" > profiles.csv\n\nfor f in raw_*.json; do\n  jq -r '[\n    .username, .fullName, .biography,\n    .followersCount, .verified, .externalUrl\n  ] | @csv' \"$f\" >> profiles.csv\ndone\n",[47,547,548,566,572,590,602,607,612,631],{"__ignoreMap":107},[150,549,550,553,555,558,560,563],{"class":152,"line":153},[150,551,552],{"class":433},"echo",[150,554,470],{"class":259},[150,556,557],{"class":160},"handle,name,bio,followers,verified,external_url",[150,559,492],{"class":259},[150,561,562],{"class":259}," >",[150,564,565],{"class":160}," profiles.csv\n",[150,567,568],{"class":152,"line":253},[150,569,571],{"emptyLinePlaceholder":570},true,"\n",[150,573,574,577,580,583,586,588],{"class":152,"line":271},[150,575,576],{"class":429},"for",[150,578,579],{"class":249}," f ",[150,581,582],{"class":429},"in",[150,584,585],{"class":160}," raw_*.json",[150,587,442],{"class":259},[150,589,445],{"class":429},[150,591,592,595,597,599],{"class":152,"line":365},[150,593,594],{"class":156},"  jq",[150,596,301],{"class":160},[150,598,260],{"class":259},[150,600,601],{"class":160},"[\n",[150,603,604],{"class":152,"line":371},[150,605,606],{"class":160},"    .username, .fullName, .biography,\n",[150,608,609],{"class":152,"line":377},[150,610,611],{"class":160},"    .followersCount, .verified, .externalUrl\n",[150,613,614,617,619,621,624,626,629],{"class":152,"line":383},[150,615,616],{"class":160},"  ] | @csv",[150,618,266],{"class":259},[150,620,470],{"class":259},[150,622,623],{"class":249},"$f",[150,625,492],{"class":259},[150,627,628],{"class":259}," >>",[150,630,565],{"class":160},[150,632,633],{"class":152,"line":389},[150,634,635],{"class":429},"done\n",[11,637,638,640,641,644],{},[47,639,66],{}," quotes and escapes every field, so a bio full of commas, quotes, or emoji will not shift your columns. Open ",[47,642,643],{},"profiles.csv"," in any spreadsheet and you have a finished enrichment table: sort by followers, filter to verified only, or drop the rows with no external URL. That is the deliverable.",[35,646,648],{"id":647},"why-not-the-instagram-graph-api","Why not the Instagram Graph API",[11,650,651,652,657],{},"The reflex is to reach for Meta's official ",[18,653,656],{"href":654,"rel":655},"https:\u002F\u002Fdevelopers.facebook.com\u002Fdocs\u002Finstagram-platform",[22],"Instagram Platform APIs",". For this task they are the wrong tool, and it is worth knowing why before you sink an afternoon into app configuration.",[11,659,660],{},"The Graph API reads accounts you own or that a business explicitly grants you access to through a connected Facebook Page. You cannot hand it an arbitrary list of public usernames and get profiles back. There is a Business Discovery feature, but it only surfaces business and creator accounts, not personal ones, and you still need a reviewed app plus a token tied to an account you control. Getting there means creating a Meta app, requesting permissions, and passing App Review before a single call works. For enriching a cold list of handles you did not create, that path does not lead anywhere.",[11,662,663],{},"The Apify actor reads the same public profile pages a logged-out visitor sees, so a list of public usernames is exactly the input it expects. Monid is the layer that lets you call it without an Apify account or a stored token.",[11,665,666],{},[328,667],{"alt":668,"src":669},"The Instagram Graph API path (create a Meta app, request permissions, wait for App Review, and still reach only accounts you own) versus the Monid path: a list of handles, one run, profiles.csv","\u002Fimg\u002Fblog\u002Fship-an-instagram-profile-enricher-fig-vs.png",[35,671,673],{"id":672},"cost-tally","Cost tally",[11,675,676,677,680,681,683,684,687],{},"Everything before the run was free. Discover and inspect cost nothing, so you shape the whole pipeline and confirm the field names without touching your wallet. Billing kicks in only at ",[47,678,679],{},"monid run",", and it is per result: one row returned, one unit billed. That means a test of a few handles lands in the single-digit-cents range, and enriching a full list of a few hundred usernames stays in the low few-dollars range. Turning on ",[47,682,182],{}," adds a per-result surcharge, so leave it off unless you need the country or join-date panel. Check current per-result pricing on ",[18,685,75],{"href":73,"rel":686},[22]," before you widen the list.",[35,689,691],{"id":690},"faq","FAQ",[11,693,694,698,699,701],{},[695,696,697],"strong",{},"What exactly counts as one billable result?","\nOne profile returned for one username. A list of 200 handles that all resolve bills as roughly 200 results. Inspect is always free, so reading the schema and testing your ",[47,700,62],{}," costs nothing.",[11,703,704,707],{},[695,705,706],{},"Can I pull posts too, not just the profile?","\nThis endpoint is profile-level enrichment, one row per handle. If you want recent posts and their engagement, that is a different Apify actor for post-level data, reachable through the same Monid interface without a new signup.",[11,709,710,713],{},[695,711,712],{},"What happens to a private or nonexistent handle?","\nThat single run returns an empty or error result while the rest of your loop keeps going. That is the reason Step 4 writes one file per handle instead of batching the whole list into one call.",[11,715,716,719,720,722,723,725],{},[695,717,718],{},"How current is the data?","\nThe actor reads the live public profile at run time, so ",[47,721,196],{}," and ",[47,724,202],{}," reflect the account as it stands when you call it. Re-run the list on a schedule if you want the enrichment to stay fresh.",[11,727,728,731,732,737],{},[695,729,730],{},"Is the Instagram Graph API ever the right choice?","\nYes, for reading insights on accounts you own or manage: your own audience metrics, media performance, and inbox. For enriching a list of handles you do not control, it cannot help, which is the whole reason this recipe uses ",[18,733,736],{"href":734,"rel":735},"https:\u002F\u002Fapify.com",[22],"Apify"," through Monid instead.",[739,740,741],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":107,"searchDepth":253,"depth":253,"links":743},[744,745,749,750,751,752,753,754,755,756],{"id":37,"depth":253,"text":38},{"id":82,"depth":253,"text":83,"children":746},[747,748],{"id":87,"depth":271,"text":88},{"id":119,"depth":271,"text":120},{"id":137,"depth":253,"text":138},{"id":213,"depth":253,"text":214},{"id":334,"depth":253,"text":335},{"id":409,"depth":253,"text":410},{"id":538,"depth":253,"text":539},{"id":647,"depth":253,"text":648},{"id":672,"depth":253,"text":673},{"id":690,"depth":253,"text":691},null,"\u002Fimg\u002Fblog\u002Fship-an-instagram-profile-enricher.png","Turn a list of Instagram usernames into a structured CSV of name, bio, followers, verified, and external URL with one Monid script over Apify.",false,"md",{},"\u002Fblog\u002Fship-an-instagram-profile-enricher","2026-07-23",{"title":5,"description":759},"blog\u002Fship-an-instagram-profile-enricher",[768,769,770,771],"instagram scraping","apify","data enrichment","csv export","b763IwFIPVcaGBwLhEpDPezME_ON46wpIQm8lCKf7N8",[774,836,907,973],{"id":775,"title":776,"author":757,"body":777,"category":757,"cover":821,"description":107,"draft":760,"extension":761,"image":757,"launchCta":822,"listingCover":757,"meta":825,"navigation":570,"ogImage":757,"path":826,"publishedAt":827,"readTime":757,"seo":828,"stem":829,"tags":830,"toolCategory":757,"updatedAt":757,"__hash__":835},"blog\u002Fblog\u002Fakta-pro-is-now-available-on-monid.md","Introducing private markets\ndata for agents",{"type":8,"value":778,"toc":817},[779,783,791,794,798,804,811,814],[35,780,782],{"id":781},"what-is-aktapro","What is akta.pro",[11,784,785,790],{},[18,786,789],{"href":787,"rel":788},"https:\u002F\u002Fwww.akta.pro\u002F",[22],"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,792,793],{},"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.",[35,795,797],{"id":796},"what-is-monid","What is Monid",[11,799,800,803],{},[18,801,29],{"href":27,"rel":802},[22]," 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,805,806,807,116],{},"Today, Monid provides tools for social media scraping, web search, image and\nmusic generation, people data search, weather APIs, ",[18,808,810],{"href":73,"rel":809},[22],"and more",[812,813],"hr",{},[11,815,816],{},"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":107,"searchDepth":253,"depth":253,"links":818},[819,820],{"id":781,"depth":253,"text":782},{"id":796,"depth":253,"text":797},"\u002Fimg\u002Fblog\u002Fakta-pro-is-now-available-on-monid-v2.png",{"label":823,"command":824},"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":776,"description":107},"blog\u002Fakta-pro-is-now-available-on-monid",[831,832,833,834],"agents","partner-tools","private-markets","data","05ST9oH9qSQ4_vNxcczvHDEyev2JDIqBwMiM-zelWJo",{"id":837,"title":838,"author":757,"body":839,"category":757,"cover":896,"description":897,"draft":760,"extension":761,"image":757,"launchCta":757,"listingCover":757,"meta":898,"navigation":570,"ogImage":757,"path":899,"publishedAt":900,"readTime":757,"seo":901,"stem":902,"tags":903,"toolCategory":757,"updatedAt":757,"__hash__":906},"blog\u002Fblog\u002Fyour-claude-code-can-now-make-phone-calls.md","Your Claude Code can now make phone calls",{"type":8,"value":840,"toc":892},[841,845,856,860,868,871,873,878,884,886,889],[11,842,844],{"style":843},"font-size:18px !important;line-height:1.65 !important;margin:0 0 24px;color:inherit;","Copy this line to your agent to make your first phone call.",[99,846,850],{"className":847,"code":848,"language":849,"meta":107,"style":107},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and use Saperly to call my phone number to confirm the connection works\n","sh",[47,851,852],{"__ignoreMap":107},[150,853,854],{"class":152,"line":153},[150,855,848],{},[35,857,859],{"id":858},"what-is-saperly","What is Saperly",[11,861,862,867],{},[18,863,866],{"href":864,"rel":865},"https:\u002F\u002Fsaperly.com\u002F",[22],"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,869,870],{},"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.",[35,872,797],{"id":796},[11,874,875,803],{},[18,876,29],{"href":27,"rel":877},[22],[11,879,880,881,116],{},"Today, Monid provides tools for social media scraping, web search, image \u002F\nmusic \u002F 3d model generation, people data search, weather APIs, ",[18,882,810],{"href":73,"rel":883},[22],[812,885],{},[11,887,888],{},"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.",[739,890,891],{},"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":107,"searchDepth":253,"depth":253,"links":893},[894,895],{"id":858,"depth":253,"text":859},{"id":796,"depth":253,"text":797},"\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":838,"description":897},"blog\u002Fyour-claude-code-can-now-make-phone-calls",[831,832,904,905],"voice","phone","Wp96EVH5j2eyHDSu2f5Rtv0RYmyWX7frAhalel9fOus",{"id":908,"title":909,"author":757,"body":910,"category":757,"cover":962,"description":963,"draft":760,"extension":761,"image":757,"launchCta":757,"listingCover":757,"meta":964,"navigation":570,"ogImage":757,"path":965,"publishedAt":966,"readTime":757,"seo":967,"stem":968,"tags":969,"toolCategory":757,"updatedAt":757,"__hash__":972},"blog\u002Fblog\u002Fintroducing-suzanne-chatgpt-for-3d-models.md","Introducing\nClaude for 3D models",{"type":8,"value":911,"toc":958},[912,915,924,928,936,939,941,946,951,953,956],[11,913,914],{"style":843},"Copy this line to your agent to generate your 3D model.",[99,916,918],{"className":847,"code":917,"language":849,"meta":107,"style":107},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a 3D model for a rabbit\n",[47,919,920],{"__ignoreMap":107},[150,921,922],{"class":152,"line":153},[150,923,917],{},[35,925,927],{"id":926},"what-is-suzanne","What is Suzanne",[11,929,930,935],{},[18,931,934],{"href":932,"rel":933},"https:\u002F\u002Fwww.suzanne3d.com",[22],"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,937,938],{},"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.",[35,940,797],{"id":796},[11,942,943,803],{},[18,944,29],{"href":27,"rel":945},[22],[11,947,806,948,116],{},[18,949,810],{"href":73,"rel":950},[22],[812,952],{},[11,954,955],{},"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.",[739,957,891],{},{"title":107,"searchDepth":253,"depth":253,"links":959},[960,961],{"id":926,"depth":253,"text":927},{"id":796,"depth":253,"text":797},"\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":909,"description":963},"blog\u002Fintroducing-suzanne-chatgpt-for-3d-models",[970,831,971],"3d","creative-tools","Mz475YlhLBgR80gyiTlL2MhfALZKYwbl4Rfwy96HZG0",{"id":974,"title":975,"author":757,"body":976,"category":757,"cover":1035,"description":1036,"draft":760,"extension":761,"image":757,"launchCta":757,"listingCover":757,"meta":1037,"navigation":570,"ogImage":757,"path":1038,"publishedAt":1039,"readTime":757,"seo":1040,"stem":1041,"tags":1042,"toolCategory":757,"updatedAt":757,"__hash__":1045},"blog\u002Fblog\u002Fminimax-is-now-available-on-monid.md","MiniMax is now available on Monid",{"type":8,"value":977,"toc":1030},[978,981,990,994,1002,1006,1009,1011,1017,1023,1025,1028],[11,979,980],{"style":843},"Copy this line to your agent to create music.",[99,982,984],{"className":847,"code":983,"language":849,"meta":107,"style":107},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a song with MiniMax Music 2.6\n",[47,985,986],{"__ignoreMap":107},[150,987,988],{"class":152,"line":153},[150,989,983],{},[35,991,993],{"id":992},"minimax-music-26","MiniMax Music 2.6",[11,995,996,1001],{},[18,997,1000],{"href":998,"rel":999},"https:\u002F\u002Fwww.minimax.io",[22],"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.",[35,1003,1005],{"id":1004},"minimax-text-to-image-image-01","MiniMax Text-to-Image image-01",[11,1007,1008],{},"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.",[35,1010,797],{"id":796},[11,1012,1013,1016],{},[18,1014,29],{"href":27,"rel":1015},[22]," 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,1018,1019,1020,116],{},"Today, Monid provides tools for social media scraping, web search, image and music generation, people data search, weather APIs, ",[18,1021,810],{"href":73,"rel":1022},[22],[812,1024],{},[11,1026,1027],{},"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.",[739,1029,891],{},{"title":107,"searchDepth":253,"depth":253,"links":1031},[1032,1033,1034],{"id":992,"depth":253,"text":993},{"id":1004,"depth":253,"text":1005},{"id":796,"depth":253,"text":797},"\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":975,"description":1036},"blog\u002Fminimax-is-now-available-on-monid",[831,971,1043,1044],"image-generation","music-generation","B3dZqIjNJNK7Y9ysAenI0XzKobOZMlEP87FRWrW19Vc",1786670266464]