[{"data":1,"prerenderedAt":905},["ShallowReactive",2],{"blog-\u002Fblog\u002Fbatch-youtube-transcripts-into-your-rag-store":3,"blog-related-\u002Fblog\u002Fbatch-youtube-transcripts-into-your-rag-store":632},{"id":4,"title":5,"author":6,"body":7,"category":615,"cover":616,"description":617,"draft":618,"extension":619,"image":615,"launchCta":615,"listingCover":615,"meta":620,"navigation":621,"ogImage":615,"path":622,"publishedAt":623,"readTime":615,"seo":624,"stem":625,"tags":626,"toolCategory":615,"updatedAt":615,"__hash__":631},"blogUnlisted\u002Fblog\u002Fbatch-youtube-transcripts-into-your-rag-store.md","YouTube Transcript API for RAG: Cite the Exact Moment","The Monid Team",{"type":8,"value":9,"toc":598},"minimark",[10,27,37,42,85,89,104,108,119,123,128,137,147,155,159,165,173,176,208,222,226,229,280,287,326,344,351,355,358,371,374,378,394,398,409,415,419,425,429,439,443,536,546,550,564,579,588,594],[11,12,13,14,18,19,22,23,26],"p",{},"Batch a whole YouTube channel into your RAG store from one run, keep each chunk's timestamp as metadata, and your agent can answer questions with a link straight to the second the speaker said it. The trick is to treat timestamps as citations, not decoration: a chunk tagged with ",[15,16,17],"code",{},"video_id"," and a start time becomes a ",[15,20,21],{},"watch?v=...&t=NNNs"," deep link in the answer, and one ",[15,24,25],{},"channel_url"," run replaces the N separate per-video calls you would otherwise loop.",[11,28,29,36],{},[30,31,35],"a",{"href":32,"rel":33},"https:\u002F\u002Fmonid.ai",[34],"nofollow","Monid is a pay-per-call data API marketplace"," that reaches hundreds of external data endpoints from one key and one wallet, and you pay only when a run succeeds. This post is a build recipe: pick a channel, pull its recent uploads with timestamped transcripts in a single run, chunk on the timestamps, embed, store, then query with citations. Follow the steps in order and you will have a citeable knowledge base by the end.",[38,39,41],"h2",{"id":40},"tldr","TL;DR",[43,44,45,60,66,73,76],"ul",{},[46,47,48,49,51,52,59],"li",{},"One ",[15,50,25],{}," run on the Apify ",[30,53,56],{"href":54,"rel":55},"https:\u002F\u002Fapify.com\u002Fstarvibe\u002Fyoutube-video-transcript",[34],[15,57,58],{},"starvibe\u002Fyoutube-video-transcript"," actor returns timestamped transcript segments plus metadata for a channel's recent uploads, so you skip looping one call per video.",[46,61,62,63,65],{},"Chunk on the transcript segments, not on character counts, and carry ",[15,64,17],{}," and the segment start time as metadata on every chunk.",[46,67,68,69,72],{},"At query time, retrieval hands back those two fields, and your prompt renders them as ",[15,70,71],{},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID&t=NNNs",". That is a real citation your reader can click.",[46,74,75],{},"The free scraping route breaks on IP blocks, returns no metadata, and cannot batch a channel. See the caveats below.",[46,77,78,79,84],{},"Cost is per result, a fraction of a cent per video, so a channel's worth of transcripts lands in single-digit dollars. Magnitude only at ",[30,80,83],{"href":81,"rel":82},"https:\u002F\u002Fmonid.ai\u002Ftools",[34],"monid.ai\u002Ftools",".",[38,86,88],{"id":87},"why-not-just-call-the-official-youtube-api","Why not just call the official YouTube API?",[11,90,91,92,97,98,103],{},"Because it will not give you a transcript for a video you do not own. The ",[30,93,96],{"href":94,"rel":95},"https:\u002F\u002Fdevelopers.google.com\u002Fyoutube\u002Fv3\u002Fdocs\u002Fcaptions",[34],"YouTube Data API captions resource"," gates its download method behind the channel owner's OAuth, so pointing it at someone else's uploads returns an authorization error at every tier. For a RAG store built on other people's talks, the sanctioned door is closed before you start. A maintained scraper actor on ",[30,99,102],{"href":100,"rel":101},"https:\u002F\u002Fapify.com",[34],"Apify"," is the route that actually returns the words, and running it through Monid means no per-vendor signup and no OAuth consent screen.",[38,105,107],{"id":106},"step-1-pick-a-channel-and-a-date-window","Step 1: Pick a channel and a date window",[11,109,110,111,114,115,118],{},"Decide the scope before you spend anything. You want a channel whose recent uploads are the knowledge you plan to answer questions about, plus a start date that bounds \"recent\" for your use case. For a docs or research agent, the newest few dozen uploads since the start of the quarter is a sensible first pull. Note the channel handle URL (for example ",[15,112,113],{},"https:\u002F\u002Fwww.youtube.com\u002F@taostats",") and a ",[15,116,117],{},"start_date"," in ISO format. You will pass both in one run in Step 3.",[38,120,122],{"id":121},"step-2-set-up-monid-then-inspect-the-endpoint","Step 2: Set up Monid, then inspect the endpoint",[124,125,127],"h3",{"id":126},"for-agents","For agents",[11,129,130,131,136],{},"Grab an API key at ",[30,132,135],{"href":133,"rel":134},"https:\u002F\u002Fapp.monid.ai\u002F",[34],"app.monid.ai",", then paste this to your agent and hand it the key:",[138,139,144],"pre",{"className":140,"code":142,"language":143},[141],"language-text","set up https:\u002F\u002Fmonid.ai\u002FSKILL.md\n","text",[15,145,142],{"__ignoreMap":146},"",[11,148,149,150,84],{},"It learns the whole discover, inspect, run workflow itself. More details in the ",[30,151,154],{"href":152,"rel":153},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-skill",[34],"agent quickstart",[124,156,158],{"id":157},"for-humans","For humans",[138,160,163],{"className":161,"code":162,"language":143},[141],"npm install -g @monid-ai\u002Fcli\nmonid keys add --label main --key \u003Cyour-api-key>\n",[15,164,162],{"__ignoreMap":146},[11,166,167,168,84],{},"More details in the ",[30,169,172],{"href":170,"rel":171},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-cli",[34],"CLI quickstart",[11,174,175],{},"Inspect first. This step is free and it shows you the full input schema and the exact per-result price before a single cent moves:",[138,177,181],{"className":178,"code":179,"language":180,"meta":146,"style":146},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","monid inspect -p apify -e \u002Fstarvibe\u002Fyoutube-video-transcript\n","bash",[15,182,183],{"__ignoreMap":146},[184,185,188,192,196,199,202,205],"span",{"class":186,"line":187},"line",1,[184,189,191],{"class":190},"sBMFI","monid",[184,193,195],{"class":194},"sfazB"," inspect",[184,197,198],{"class":194}," -p",[184,200,201],{"class":194}," apify",[184,203,204],{"class":194}," -e",[184,206,207],{"class":194}," \u002Fstarvibe\u002Fyoutube-video-transcript\n",[11,209,210,211,214,215,217,218,221],{},"Read the schema and confirm two things: the actor takes exactly one of ",[15,212,213],{},"youtube_url"," or ",[15,216,25],{},", and ",[15,219,220],{},"include_transcript_text"," adds a plain concatenated transcript alongside the timestamped segments.",[38,223,225],{"id":224},"step-3-pull-the-channel-in-one-run","Step 3: Pull the channel in one run",[11,227,228],{},"Prove the shape on a single video first so you trust the timestamps against real playback:",[138,230,232],{"className":178,"code":231,"language":180,"meta":146,"style":146},"# one video, plain-text transcript\nmonid run -p apify -e \u002Fstarvibe\u002Fyoutube-video-transcript \\\n  -i '{\"youtube_url\":\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gN07gbipMoY\",\"include_transcript_text\":true}' -w\n",[15,233,234,240,261],{"__ignoreMap":146},[184,235,236],{"class":186,"line":187},[184,237,239],{"class":238},"sHwdD","# one video, plain-text transcript\n",[184,241,243,245,248,250,252,254,257],{"class":186,"line":242},2,[184,244,191],{"class":190},[184,246,247],{"class":194}," run",[184,249,198],{"class":194},[184,251,201],{"class":194},[184,253,204],{"class":194},[184,255,256],{"class":194}," \u002Fstarvibe\u002Fyoutube-video-transcript",[184,258,260],{"class":259},"sTEyZ"," \\\n",[184,262,264,267,271,274,277],{"class":186,"line":263},3,[184,265,266],{"class":194},"  -i",[184,268,270],{"class":269},"sMK4o"," '",[184,272,273],{"class":194},"{\"youtube_url\":\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gN07gbipMoY\",\"include_transcript_text\":true}",[184,275,276],{"class":269},"'",[184,278,279],{"class":194}," -w\n",[11,281,282,283,286],{},"The ",[15,284,285],{},"-w"," flag waits inline and hands you the result in the same call. When the segments line up with what you hear, switch to the channel form. This single run returns transcripts for the newest uploads since your date, and it is the call that replaces looping N times:",[138,288,290],{"className":178,"code":289,"language":180,"meta":146,"style":146},"# a whole channel: newest 50 uploads since a date, transcripts included\nmonid run -p apify -e \u002Fstarvibe\u002Fyoutube-video-transcript \\\n  -i '{\"channel_url\":\"https:\u002F\u002Fwww.youtube.com\u002F@taostats\",\"max_videos\":50,\"start_date\":\"2026-01-01\",\"include_transcript_text\":true}' -w\n",[15,291,292,297,313],{"__ignoreMap":146},[184,293,294],{"class":186,"line":187},[184,295,296],{"class":238},"# a whole channel: newest 50 uploads since a date, transcripts included\n",[184,298,299,301,303,305,307,309,311],{"class":186,"line":242},[184,300,191],{"class":190},[184,302,247],{"class":194},[184,304,198],{"class":194},[184,306,201],{"class":194},[184,308,204],{"class":194},[184,310,256],{"class":194},[184,312,260],{"class":259},[184,314,315,317,319,322,324],{"class":186,"line":263},[184,316,266],{"class":194},[184,318,270],{"class":269},[184,320,321],{"class":194},"{\"channel_url\":\"https:\u002F\u002Fwww.youtube.com\u002F@taostats\",\"max_videos\":50,\"start_date\":\"2026-01-01\",\"include_transcript_text\":true}",[184,323,276],{"class":269},[184,325,279],{"class":194},[11,327,328,331,332,335,336,339,340,343],{},[15,329,330],{},"max_videos"," accepts 1 to 200 and is your spend cap, since billing is per result. Add ",[15,333,334],{},"end_date"," to close the window, or ",[15,337,338],{},"language"," with an ISO 639-1 code to pin the caption language. Each returned record carries the timestamped segments, the optional concatenated text, and metadata: title, description, ",[15,341,342],{},"publishedAt",", duration, view, like, and comment counts, and the available caption languages.",[11,345,346],{},[347,348],"img",{"alt":349,"src":350},"One channel_url run returns 50 video records with timestamped transcripts and metadata, replacing 50 separate per-video calls","\u002Fimg\u002Fblog\u002Fbatch-youtube-transcripts-into-your-rag-store-fig-one-run-fanout.png",[38,352,354],{"id":353},"step-4-chunk-on-the-timestamps-keep-the-source-moment","Step 4: Chunk on the timestamps, keep the source moment",[11,356,357],{},"Here is where most transcript pipelines throw away the value. Do not split the concatenated text on a fixed character count. Chunk on the transcript segments themselves, grouping a handful of consecutive segments into a window of roughly a paragraph. For each chunk you build, attach two fields as metadata:",[43,359,360,365],{},[46,361,362,364],{},[15,363,17],{},", taken from the record's metadata.",[46,366,367,370],{},[15,368,369],{},"start",", the start time in seconds of the first segment in that chunk.",[11,372,373],{},"Those two fields are the whole point. They travel with the chunk into the vector store and come back at retrieval time, which is what lets an answer point at a moment instead of a whole video. Group segments until a window reaches your target token size, then start a new chunk at the next segment boundary so no chunk straddles an awkward mid-sentence cut.",[38,375,377],{"id":376},"step-5-embed-and-store","Step 5: Embed and store",[11,379,380,381,383,384,386,387,390,391,393],{},"Run each chunk's text through your embedding model and upsert it into your vector store, carrying the ",[15,382,17],{}," and ",[15,385,369],{}," metadata on every vector. The concatenated ",[15,388,389],{},"transcript_text"," field is there when you would rather hand a full video to a long-context model in one block, but for retrieval you want the segment-windowed chunks, because a tight chunk retrieves more precisely than a whole transcript. Store the video title and ",[15,392,342],{}," alongside too, so your agent can name and date its source.",[38,395,397],{"id":396},"step-6-answer-with-a-citation-back-to-the-exact-second","Step 6: Answer with a citation back to the exact second",[11,399,400,401,383,403,405,406,408],{},"At query time your retriever returns the top chunks, each with its ",[15,402,17],{},[15,404,369],{},". Instruct your generation prompt to render the source of every claim as a link built from those fields: ",[15,407,71],{},". The reader clicks it and the YouTube player opens at that second. A summarizer gives an opinion; a RAG answer with a timecode link gives a receipt.",[11,410,411],{},[347,412],{"alt":413,"src":414},"A chunk tagged with video_id and a start time flows into the vector store, retrieval returns it, and the answer renders a clickable watch link that opens at that exact second","\u002Fimg\u002Fblog\u002Fbatch-youtube-transcripts-into-your-rag-store-fig-citation-loop.png",[38,416,418],{"id":417},"how-do-you-keep-the-store-fresh","How do you keep the store fresh?",[11,420,421,422,424],{},"Re-run the same channel call with a later ",[15,423,117],{}," set to the day after your last pull. The actor returns only uploads inside the new window, you chunk and embed those, and you upsert them into the same store. New uploads flow in, old vectors stay put, and you never re-pay for transcripts you already hold. A scheduled agent can run this loop unattended because Monid ships as an MCP server it can drive directly.",[38,426,428],{"id":427},"what-breaks-on-the-free-scraping-route","What breaks on the free scraping route?",[11,430,431,432,435,436,438],{},"The free path costs nothing until it costs you an afternoon. The common ",[15,433,434],{},"youtube-transcript-api"," library pulls a single transcript in a few lines, but a loop over a channel's worth of IDs from one server trips YouTube's per-IP rate limits, and cloud IP ranges get blocked fastest. It returns text only: no title, no ",[15,437,342],{},", no view counts, so the metadata your agent cites is simply absent. It has no channel-level batch, so you first need a second tool just to list a channel's video IDs. And when only auto-generated captions exist, you branch and handle the fallback by hand. The actor handles the batch, the fallback, and the metadata inside one billed call.",[38,440,442],{"id":441},"approximate-cost-tally","Approximate cost tally",[444,445,446,465],"table",{},[447,448,449],"thead",{},[450,451,452,456,459,462],"tr",{},[453,454,455],"th",{},"Step",[453,457,458],{},"Call",[453,460,461],{},"Bills?",[453,463,464],{},"Rough cost",[466,467,468,485,501,519],"tbody",{},[450,469,470,474,479,482],{},[471,472,473],"td",{},"Inspect the schema",[471,475,476],{},[15,477,478],{},"monid inspect",[471,480,481],{},"No",[471,483,484],{},"Free",[450,486,487,490,495,498],{},[471,488,489],{},"Spot-check one video",[471,491,492,493,247],{},"one ",[15,494,213],{},[471,496,497],{},"Yes",[471,499,500],{},"A fraction of a cent",[450,502,503,506,514,516],{},[471,504,505],{},"Pull 50 uploads",[471,507,492,508,510,511,513],{},[15,509,25],{}," run, ",[15,512,330],{}," 50",[471,515,497],{},[471,517,518],{},"Single-digit dollars",[450,520,521,524,531,533],{},[471,522,523],{},"Weekly refresh",[471,525,492,526,528,529],{},[15,527,25],{}," run, new ",[15,530,117],{},[471,532,497],{},[471,534,535],{},"A few cents for a handful of new videos",[11,537,538,539,542,543,84],{},"Discovery and inspection are always free, only ",[15,540,541],{},"run"," bills, and the per-result price shows on the inspect step before anything moves. Live magnitude is at ",[30,544,83],{"href":81,"rel":545},[34],[38,547,549],{"id":548},"faq","FAQ",[11,551,552,556,557,559,560,563],{},[553,554,555],"strong",{},"How do timestamps become citations in a RAG answer?","\nYou store the first segment's start time and the ",[15,558,17],{}," as metadata on each chunk. Retrieval returns them, and your prompt renders them as ",[15,561,562],{},"watch?v=VIDEO_ID&t=NNNs",", a link that opens the player at the exact second the chunk was spoken.",[11,565,566,569,570,572,573,575,576,578],{},[553,567,568],{},"Does one run really replace many per-video calls?","\nYes. Pass ",[15,571,25],{}," with ",[15,574,330],{}," and a ",[15,577,117],{},", and the single run returns transcripts for every upload in that window. You do not list video IDs first or loop one call per video.",[11,580,581,584,585,84],{},[553,582,583],{},"How much does it cost to build the store?","\nPer result, a fraction of a cent per video, so a 50-video channel lands in single-digit dollars and a weekly refresh is a few cents. Inspecting is free and the exact price is shown before you run. See ",[30,586,83],{"href":81,"rel":587},[34],[11,589,590,593],{},[553,591,592],{},"Can an agent run the whole pipeline?","\nYes. Because Monid ships as an MCP server, you hand your agent the key, point it at the channel, and it inspects, runs the channel pull, chunks on the timestamps, and embeds, all through the same interface.",[595,596,597],"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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":146,"searchDepth":242,"depth":242,"links":599},[600,601,602,603,607,608,609,610,611,612,613,614],{"id":40,"depth":242,"text":41},{"id":87,"depth":242,"text":88},{"id":106,"depth":242,"text":107},{"id":121,"depth":242,"text":122,"children":604},[605,606],{"id":126,"depth":263,"text":127},{"id":157,"depth":263,"text":158},{"id":224,"depth":242,"text":225},{"id":353,"depth":242,"text":354},{"id":376,"depth":242,"text":377},{"id":396,"depth":242,"text":397},{"id":417,"depth":242,"text":418},{"id":427,"depth":242,"text":428},{"id":441,"depth":242,"text":442},{"id":548,"depth":242,"text":549},null,"\u002Fimg\u002Fblog\u002Fbatch-youtube-transcripts-into-your-rag-store.png","Batch a whole YouTube channel's timestamped transcripts into your vector store in one run, so your RAG agent cites the exact video moment it answered from.",false,"md",{},true,"\u002Fblog\u002Fbatch-youtube-transcripts-into-your-rag-store","2026-08-05",{"title":5,"description":617},"blog\u002Fbatch-youtube-transcripts-into-your-rag-store",[627,628,629,630],"youtube","transcripts","rag","agents","WjXjU8NKm0g4JfifdIl6i2KbfZjf3cqTPTpgYJEMHkY",[633,695,766,832],{"id":634,"title":635,"author":615,"body":636,"category":615,"cover":681,"description":146,"draft":618,"extension":619,"image":615,"launchCta":682,"listingCover":615,"meta":685,"navigation":621,"ogImage":615,"path":686,"publishedAt":687,"readTime":615,"seo":688,"stem":689,"tags":690,"toolCategory":615,"updatedAt":615,"__hash__":694},"blog\u002Fblog\u002Fakta-pro-is-now-available-on-monid.md","Introducing private markets\ndata for agents",{"type":8,"value":637,"toc":677},[638,642,650,653,657,664,671,674],[38,639,641],{"id":640},"what-is-aktapro","What is akta.pro",[11,643,644,649],{},[30,645,648],{"href":646,"rel":647},"https:\u002F\u002Fwww.akta.pro\u002F",[34],"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,651,652],{},"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.",[38,654,656],{"id":655},"what-is-monid","What is Monid",[11,658,659,663],{},[30,660,662],{"href":32,"rel":661},[34],"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,665,666,667,84],{},"Today, Monid provides tools for social media scraping, web search, image and\nmusic generation, people data search, weather APIs, ",[30,668,670],{"href":81,"rel":669},[34],"and more",[672,673],"hr",{},[11,675,676],{},"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":146,"searchDepth":242,"depth":242,"links":678},[679,680],{"id":640,"depth":242,"text":641},{"id":655,"depth":242,"text":656},"\u002Fimg\u002Fblog\u002Fakta-pro-is-now-available-on-monid-v2.png",{"label":683,"command":684},"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":635,"description":146},"blog\u002Fakta-pro-is-now-available-on-monid",[630,691,692,693],"partner-tools","private-markets","data","05ST9oH9qSQ4_vNxcczvHDEyev2JDIqBwMiM-zelWJo",{"id":696,"title":697,"author":615,"body":698,"category":615,"cover":755,"description":756,"draft":618,"extension":619,"image":615,"launchCta":615,"listingCover":615,"meta":757,"navigation":621,"ogImage":615,"path":758,"publishedAt":759,"readTime":615,"seo":760,"stem":761,"tags":762,"toolCategory":615,"updatedAt":615,"__hash__":765},"blog\u002Fblog\u002Fyour-claude-code-can-now-make-phone-calls.md","Your Claude Code can now make phone calls",{"type":8,"value":699,"toc":751},[700,704,715,719,727,730,732,737,743,745,748],[11,701,703],{"style":702},"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.",[138,705,709],{"className":706,"code":707,"language":708,"meta":146,"style":146},"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",[15,710,711],{"__ignoreMap":146},[184,712,713],{"class":186,"line":187},[184,714,707],{},[38,716,718],{"id":717},"what-is-saperly","What is Saperly",[11,720,721,726],{},[30,722,725],{"href":723,"rel":724},"https:\u002F\u002Fsaperly.com\u002F",[34],"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,728,729],{},"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.",[38,731,656],{"id":655},[11,733,734,663],{},[30,735,662],{"href":32,"rel":736},[34],[11,738,739,740,84],{},"Today, Monid provides tools for social media scraping, web search, image \u002F\nmusic \u002F 3d model generation, people data search, weather APIs, ",[30,741,670],{"href":81,"rel":742},[34],[672,744],{},[11,746,747],{},"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.",[595,749,750],{},"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":146,"searchDepth":242,"depth":242,"links":752},[753,754],{"id":717,"depth":242,"text":718},{"id":655,"depth":242,"text":656},"\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":697,"description":756},"blog\u002Fyour-claude-code-can-now-make-phone-calls",[630,691,763,764],"voice","phone","Wp96EVH5j2eyHDSu2f5Rtv0RYmyWX7frAhalel9fOus",{"id":767,"title":768,"author":615,"body":769,"category":615,"cover":821,"description":822,"draft":618,"extension":619,"image":615,"launchCta":615,"listingCover":615,"meta":823,"navigation":621,"ogImage":615,"path":824,"publishedAt":825,"readTime":615,"seo":826,"stem":827,"tags":828,"toolCategory":615,"updatedAt":615,"__hash__":831},"blog\u002Fblog\u002Fintroducing-suzanne-chatgpt-for-3d-models.md","Introducing\nClaude for 3D models",{"type":8,"value":770,"toc":817},[771,774,783,787,795,798,800,805,810,812,815],[11,772,773],{"style":702},"Copy this line to your agent to generate your 3D model.",[138,775,777],{"className":706,"code":776,"language":708,"meta":146,"style":146},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a 3D model for a rabbit\n",[15,778,779],{"__ignoreMap":146},[184,780,781],{"class":186,"line":187},[184,782,776],{},[38,784,786],{"id":785},"what-is-suzanne","What is Suzanne",[11,788,789,794],{},[30,790,793],{"href":791,"rel":792},"https:\u002F\u002Fwww.suzanne3d.com",[34],"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,796,797],{},"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.",[38,799,656],{"id":655},[11,801,802,663],{},[30,803,662],{"href":32,"rel":804},[34],[11,806,666,807,84],{},[30,808,670],{"href":81,"rel":809},[34],[672,811],{},[11,813,814],{},"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.",[595,816,750],{},{"title":146,"searchDepth":242,"depth":242,"links":818},[819,820],{"id":785,"depth":242,"text":786},{"id":655,"depth":242,"text":656},"\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":768,"description":822},"blog\u002Fintroducing-suzanne-chatgpt-for-3d-models",[829,630,830],"3d","creative-tools","Mz475YlhLBgR80gyiTlL2MhfALZKYwbl4Rfwy96HZG0",{"id":833,"title":834,"author":615,"body":835,"category":615,"cover":894,"description":895,"draft":618,"extension":619,"image":615,"launchCta":615,"listingCover":615,"meta":896,"navigation":621,"ogImage":615,"path":897,"publishedAt":898,"readTime":615,"seo":899,"stem":900,"tags":901,"toolCategory":615,"updatedAt":615,"__hash__":904},"blog\u002Fblog\u002Fminimax-is-now-available-on-monid.md","MiniMax is now available on Monid",{"type":8,"value":836,"toc":889},[837,840,849,853,861,865,868,870,876,882,884,887],[11,838,839],{"style":702},"Copy this line to your agent to create music.",[138,841,843],{"className":706,"code":842,"language":708,"meta":146,"style":146},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a song with MiniMax Music 2.6\n",[15,844,845],{"__ignoreMap":146},[184,846,847],{"class":186,"line":187},[184,848,842],{},[38,850,852],{"id":851},"minimax-music-26","MiniMax Music 2.6",[11,854,855,860],{},[30,856,859],{"href":857,"rel":858},"https:\u002F\u002Fwww.minimax.io",[34],"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.",[38,862,864],{"id":863},"minimax-text-to-image-image-01","MiniMax Text-to-Image image-01",[11,866,867],{},"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.",[38,869,656],{"id":655},[11,871,872,875],{},[30,873,662],{"href":32,"rel":874},[34]," 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,877,878,879,84],{},"Today, Monid provides tools for social media scraping, web search, image and music generation, people data search, weather APIs, ",[30,880,670],{"href":81,"rel":881},[34],[672,883],{},[11,885,886],{},"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.",[595,888,750],{},{"title":146,"searchDepth":242,"depth":242,"links":890},[891,892,893],{"id":851,"depth":242,"text":852},{"id":863,"depth":242,"text":864},{"id":655,"depth":242,"text":656},"\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":834,"description":895},"blog\u002Fminimax-is-now-available-on-monid",[630,830,902,903],"image-generation","music-generation","B3dZqIjNJNK7Y9ysAenI0XzKobOZMlEP87FRWrW19Vc",1786670264721]