[{"data":1,"prerenderedAt":902},["ShallowReactive",2],{"blog-\u002Fblog\u002Fautomate-spf-dkim-dmarc-checks":3,"blog-related-\u002Fblog\u002Fautomate-spf-dkim-dmarc-checks":629},{"id":4,"title":5,"author":6,"body":7,"category":612,"cover":613,"description":614,"draft":615,"extension":616,"image":612,"launchCta":612,"listingCover":612,"meta":617,"navigation":618,"ogImage":612,"path":619,"publishedAt":620,"readTime":612,"seo":621,"stem":622,"tags":623,"toolCategory":612,"updatedAt":612,"__hash__":628},"blogUnlisted\u002Fblog\u002Fautomate-spf-dkim-dmarc-checks.md","Check SPF, DKIM, and DMARC Across Domains in One Call","The Monid Team",{"type":8,"value":9,"toc":596},"minimark",[10,19,24,73,77,80,101,104,108,113,122,132,140,144,150,158,170,174,181,213,219,223,230,281,292,296,299,342,349,353,356,442,445,449,455,459,462,518,527,531,534,538,547,563,575,581,592],[11,12,13,14,18],"p",{},"One API call returns every DNS authentication signal for a sending domain: SPF, DKIM, DMARC, MX, blacklist status, and a 0 to 100 deliverability score, so you stop stitching together separate ",[15,16,17],"code",{},"dig"," lookups. This recipe wires that call into a standing audit: list the domains you send from, check each one, gate on the score and the DMARC policy, and re-run on a schedule so a broken record or a downgraded policy gets caught before it tanks your inbox placement.",[20,21,23],"h2",{"id":22},"tldr","TL;DR",[25,26,27,51,58,61,70],"ul",{},[28,29,30,31,40,41,46,47,50],"li",{},"One ",[32,33,37],"a",{"href":34,"rel":35},"https:\u002F\u002Fapi.strale.io\u002Fx402\u002Femail-deliverability-check",[36],"nofollow",[15,38,39],{},"\u002Fx402\u002Femail-deliverability-check"," call from ",[32,42,45],{"href":43,"rel":44},"https:\u002F\u002Fstrale.io",[36],"Strale"," takes a ",[15,48,49],{},"domain"," and returns SPF, DKIM, DMARC, MX, blacklist status, and a 0 to 100 score in a single response.",[28,52,53,54,57],{},"Build a gate, not a report: fail if SPF or DMARC is missing, warn if the DMARC policy is ",[15,55,56],{},"p=none",", and alert if the domain is blacklisted or the score falls below your threshold.",[28,59,60],{},"Loop over your domain list on a schedule. A scheduled agent can drive the loop because Monid ships as an MCP server.",[28,62,63,64,69],{},"Cost is a few cents per domain, so a fleet of a dozen sending domains checked daily is a single-digit-dollar habit. Live magnitudes sit at ",[32,65,68],{"href":66,"rel":67},"https:\u002F\u002Fmonid.ai\u002Ftools",[36],"monid.ai\u002Ftools",".",[28,71,72],{},"A clean DNS setup is necessary but not sufficient for inbox placement. Treat the score as a floor you must clear, not a guarantee.",[20,74,76],{"id":75},"why-check-all-three-records-at-once","Why check all three records at once",[11,78,79],{},"Each record answers a different question a receiving mail server asks, and a gap in any one of them quietly hurts you.",[25,81,82,89,95],{},[28,83,84,88],{},[85,86,87],"strong",{},"SPF"," lists which servers are allowed to send mail for your domain. Without it, a receiver has no authorized-sender list to check against.",[28,90,91,94],{},[85,92,93],{},"DKIM"," cryptographically signs each message, so a receiver can confirm the body was not altered in transit and really came from you.",[28,96,97,100],{},[85,98,99],{},"DMARC"," tells receivers what to do when SPF or DKIM fails, and where to send the aggregate failure reports. It is the policy layer that turns the other two into enforcement.",[11,102,103],{},"Checking them one at a time with raw DNS queries means writing a parser that counts SPF's lookup limit, guesses DKIM selectors, and reads the DMARC policy string instead of just confirming a record exists. The endpoint below encodes all of that and hands back a verdict. If you only want the raw DNS records for a domain without the scoring, Strale's sibling mx-lookup endpoint returns those directly, but for an audit you want the interpreted result.",[20,105,107],{"id":106},"set-up-the-check","Set up the check",[109,110,112],"h3",{"id":111},"for-agents","For agents",[11,114,115,116,121],{},"Grab an API key at ",[32,117,120],{"href":118,"rel":119},"https:\u002F\u002Fapp.monid.ai\u002F",[36],"app.monid.ai",", then paste this to your agent and hand it the key:",[123,124,129],"pre",{"className":125,"code":127,"language":128},[126],"language-text","set up https:\u002F\u002Fmonid.ai\u002FSKILL.md\n","text",[15,130,127],{"__ignoreMap":131},"",[11,133,134,135,69],{},"It learns the whole discover, inspect, run workflow itself. More details in the ",[32,136,139],{"href":137,"rel":138},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-skill",[36],"agent quickstart",[109,141,143],{"id":142},"for-humans","For humans",[123,145,148],{"className":146,"code":147,"language":128},[126],"npm install -g @monid-ai\u002Fcli\nmonid keys add --label main --key \u003Cyour-api-key>\n",[15,149,147],{"__ignoreMap":131},[11,151,152,153,69],{},"More details in the ",[32,154,157],{"href":155,"rel":156},"https:\u002F\u002Fmonid.ai\u002Fdocs\u002Fguide\u002Fquickstart-cli",[36],"CLI quickstart",[11,159,160,165,166,169],{},[32,161,164],{"href":162,"rel":163},"https:\u002F\u002Fmonid.ai",[36],"Monid is a pay-per-call data API marketplace"," that lets you reach hundreds of external data endpoints from one key and one wallet, paying only when a run succeeds. Discovering and inspecting endpoints are free. Only ",[15,167,168],{},"monid run"," bills.",[20,171,173],{"id":172},"step-1-inspect-the-endpoint-for-free","Step 1: Inspect the endpoint for free",[11,175,176,177,180],{},"Before you spend anything, read the schema and the exact price. ",[15,178,179],{},"monid inspect"," costs nothing.",[123,182,186],{"className":183,"code":184,"language":185,"meta":131,"style":131},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","monid inspect -p api.strale.io -e \u002Fx402\u002Femail-deliverability-check\n","bash",[15,187,188],{"__ignoreMap":131},[189,190,193,197,201,204,207,210],"span",{"class":191,"line":192},"line",1,[189,194,196],{"class":195},"sBMFI","monid",[189,198,200],{"class":199},"sfazB"," inspect",[189,202,203],{"class":199}," -p",[189,205,206],{"class":199}," api.strale.io",[189,208,209],{"class":199}," -e",[189,211,212],{"class":199}," \u002Fx402\u002Femail-deliverability-check\n",[11,214,215,216,218],{},"This prints the query parameters (",[15,217,49],{}," is the only required one), the shape of the response, and the per-call price so you know the number before a cent moves.",[20,220,222],{"id":221},"step-2-check-one-domain","Step 2: Check one domain",[11,224,225,226,229],{},"Run the check against a single domain to see the full payload. The ",[15,227,228],{},"-w"," flag waits inline and hands the verdict straight back, which is what an audit loop wants.",[123,231,233],{"className":183,"code":232,"language":185,"meta":131,"style":131},"# one domain: SPF, DKIM, DMARC, MX, blacklist, and a 0-100 score\nmonid run -p api.strale.io -e \u002Fx402\u002Femail-deliverability-check \\\n  --query '{\"domain\":\"example.com\"}' -w\n",[15,234,235,241,262],{"__ignoreMap":131},[189,236,237],{"class":191,"line":192},[189,238,240],{"class":239},"sHwdD","# one domain: SPF, DKIM, DMARC, MX, blacklist, and a 0-100 score\n",[189,242,244,246,249,251,253,255,258],{"class":191,"line":243},2,[189,245,196],{"class":195},[189,247,248],{"class":199}," run",[189,250,203],{"class":199},[189,252,206],{"class":199},[189,254,209],{"class":199},[189,256,257],{"class":199}," \u002Fx402\u002Femail-deliverability-check",[189,259,261],{"class":260},"sTEyZ"," \\\n",[189,263,265,268,272,275,278],{"class":191,"line":264},3,[189,266,267],{"class":199},"  --query",[189,269,271],{"class":270},"sMK4o"," '",[189,273,274],{"class":199},"{\"domain\":\"example.com\"}",[189,276,277],{"class":270},"'",[189,279,280],{"class":199}," -w\n",[11,282,283,284,287,288,291],{},"Because the endpoint takes query parameters, you pass ",[15,285,286],{},"--query"," rather than ",[15,289,290],{},"-i",". The response carries each record's presence and validity, the DMARC policy value, the MX records, whether the domain shows on any blacklist, and the netted 0 to 100 score.",[20,293,295],{"id":294},"step-3-turn-the-response-into-a-gate","Step 3: Turn the response into a gate",[11,297,298],{},"A raw score is not an audit. An audit is a decision. Read four signals off the response and branch on them:",[300,301,302,308,330,336],"ol",{},[28,303,304,307],{},[85,305,306],{},"Missing SPF or DMARC:"," fail the check. A sending domain without both is unauthenticated and will get filtered.",[28,309,310,316,317,320,321,324,325,69],{},[85,311,312,313,315],{},"DMARC policy is ",[15,314,56],{},":"," warn, do not fail. The record exists and monitors, but it never quarantines or rejects a spoof, so it is a starting line, not enforcement. Push toward ",[15,318,319],{},"p=quarantine"," or ",[15,322,323],{},"p=reject",". The policy levels are documented at ",[32,326,329],{"href":327,"rel":328},"https:\u002F\u002Fdmarc.org",[36],"DMARC.org",[28,331,332,335],{},[85,333,334],{},"Blacklisted:"," alert immediately. A listed domain is actively hurting placement right now.",[28,337,338,341],{},[85,339,340],{},"Score below your threshold:"," alert. Pick a floor (say 80) and treat anything under it as a regression to investigate.",[11,343,344],{},[345,346],"img",{"alt":347,"src":348},"A domain runs through one deliverability check, and the SPF, DKIM, DMARC, and score signals branch into three outcomes: block, warn on a p=none policy, or pass","\u002Fimg\u002Fblog\u002Fautomate-spf-dkim-dmarc-checks-fig-audit-gate.png",[20,350,352],{"id":351},"step-4-loop-over-your-sending-domains","Step 4: Loop over your sending domains",[11,354,355],{},"Put every domain you send from into a list and run the check across all of them. Here the loop is a shell fragment, but the same shape works inside an agent step.",[123,357,359],{"className":183,"code":358,"language":185,"meta":131,"style":131},"for domain in monid.ai mail.example.com news.example.com; do\n  monid run -p api.strale.io -e \u002Fx402\u002Femail-deliverability-check \\\n    --query \"{\\\"domain\\\":\\\"$domain\\\"}\" -w\ndone\n",[15,360,361,388,405,436],{"__ignoreMap":131},[189,362,363,367,370,373,376,379,382,385],{"class":191,"line":192},[189,364,366],{"class":365},"s7zQu","for",[189,368,369],{"class":260}," domain ",[189,371,372],{"class":365},"in",[189,374,375],{"class":199}," monid.ai",[189,377,378],{"class":199}," mail.example.com",[189,380,381],{"class":199}," news.example.com",[189,383,384],{"class":270},";",[189,386,387],{"class":365}," do\n",[189,389,390,393,395,397,399,401,403],{"class":191,"line":243},[189,391,392],{"class":195},"  monid",[189,394,248],{"class":199},[189,396,203],{"class":199},[189,398,206],{"class":199},[189,400,209],{"class":199},[189,402,257],{"class":199},[189,404,261],{"class":260},[189,406,407,410,413,416,419,421,423,425,428,431,434],{"class":191,"line":264},[189,408,409],{"class":199},"    --query",[189,411,412],{"class":270}," \"",[189,414,415],{"class":199},"{",[189,417,418],{"class":260},"\\\"",[189,420,49],{"class":199},[189,422,418],{"class":260},[189,424,315],{"class":199},[189,426,427],{"class":260},"\\\"$domain\\\"",[189,429,430],{"class":199},"}",[189,432,433],{"class":270},"\"",[189,435,280],{"class":199},[189,437,439],{"class":191,"line":438},4,[189,440,441],{"class":365},"done\n",[11,443,444],{},"Each iteration is one metered call. Feed the results into whatever your team already reads: a Slack message, a row in a sheet, or an alert channel. The point is that one pass covers your whole fleet and flags only the domains that broke a rule.",[20,446,448],{"id":447},"step-5-put-it-on-a-schedule","Step 5: Put it on a schedule",[11,450,451,452,454],{},"DNS drifts. Someone edits an SPF include, a provider rotates a DKIM selector, or a well-meaning cleanup downgrades a DMARC policy back to ",[15,453,56],{},". A one-time audit misses all of that. Because Monid ships as an MCP server, a scheduled agent can drive the loop on a cadence and only ping you when a domain crosses a gate. Run the fleet every morning, and a record that broke overnight surfaces before your first campaign of the day goes out.",[20,456,458],{"id":457},"what-it-costs","What it costs",[11,460,461],{},"Pricing is per call at a few cents per domain, and it drops to zero when the schedule is idle. Reason about it as magnitude, not sticker:",[463,464,465,481],"table",{},[466,467,468],"thead",{},[469,470,471,475,478],"tr",{},[472,473,474],"th",{},"Scenario",[472,476,477],{},"Calls",[472,479,480],{},"Rough magnitude",[482,483,484,496,507],"tbody",{},[469,485,486,490,493],{},[487,488,489],"td",{},"Spot-check one domain",[487,491,492],{},"1",[487,494,495],{},"A few cents",[469,497,498,501,504],{},[487,499,500],{},"Audit a 12-domain fleet once",[487,502,503],{},"12",[487,505,506],{},"Well under a dollar",[469,508,509,512,515],{},[487,510,511],{},"Same fleet, daily for a month",[487,513,514],{},"~360",[487,516,517],{},"Single-digit dollars",[11,519,520,521,523,524,69],{},"Every one of those calls prints its price during ",[15,522,179],{}," before it runs, and it draws from the same wallet as the rest of your data stack, so a deliverability audit is a line item, not a new vendor. Current per-endpoint magnitudes live at ",[32,525,68],{"href":66,"rel":526},[36],[20,528,530],{"id":529},"the-honest-caveat","The honest caveat",[11,532,533],{},"A passing DNS setup is necessary for good deliverability, not sufficient. SPF, DKIM, and DMARC being correct means your domain is configured to land, but content, list hygiene, subscriber engagement, and IP reputation also decide the inbox. Read a high score as \"the domain cleared the floor,\" then still warm your sending and keep your list clean. This check also reads public DNS only, so it audits configuration, not the contents of your outbound mail.",[20,535,537],{"id":536},"faq","FAQ",[11,539,540,543,544,546],{},[85,541,542],{},"What does the email deliverability check API return?","\nFor one ",[15,545,49],{},", a single call returns SPF, DKIM, DMARC, MX records, blacklist status, and a 0 to 100 deliverability score. That covers presence, validity, the DMARC policy, and the common misconfigurations in one response, so you do not run separate lookups per record.",[11,548,549,552,553,556,557,559,560,69],{},[85,550,551],{},"How do I catch a DMARC policy that got downgraded to p=none?","\nRead the DMARC policy value off the response and warn whenever it equals ",[15,554,555],{},"none",". A ",[15,558,56],{}," record passes a presence check but never enforces, so a gate that only confirms \"DMARC exists\" will miss the downgrade. Branch on the policy string, not just the record's existence. The levels are explained at ",[32,561,329],{"href":327,"rel":562},[36],[11,564,565,568,569,571,572,69],{},[85,566,567],{},"How much does auditing a fleet of domains cost?","\nA few cents per domain per call, shown before it runs by a free ",[15,570,179],{},". A dozen domains checked daily lands in single-digit dollars a month, and nothing accrues when the schedule is idle. Live magnitudes are at ",[32,573,68],{"href":66,"rel":574},[36],[11,576,577,580],{},[85,578,579],{},"Does a good score guarantee my email reaches the inbox?","\nNo. Correct SPF, DKIM, and DMARC are necessary, not sufficient. Content, engagement, list hygiene, and IP reputation also decide placement. Treat the score as a floor you must clear, then handle sending reputation separately.",[11,582,583,584,587,588,69],{},"Grab a key at ",[32,585,120],{"href":118,"rel":586},[36],", inspect the endpoint for free, and start with a single domain you already trust. Once the verdict matches what you expect, wrap the loop in a schedule and let it watch your whole sending fleet. Start at ",[32,589,591],{"href":162,"rel":590},[36],"monid.ai",[593,594,595],"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}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}",{"title":131,"searchDepth":243,"depth":243,"links":597},[598,599,600,604,605,606,607,608,609,610,611],{"id":22,"depth":243,"text":23},{"id":75,"depth":243,"text":76},{"id":106,"depth":243,"text":107,"children":601},[602,603],{"id":111,"depth":264,"text":112},{"id":142,"depth":264,"text":143},{"id":172,"depth":243,"text":173},{"id":221,"depth":243,"text":222},{"id":294,"depth":243,"text":295},{"id":351,"depth":243,"text":352},{"id":447,"depth":243,"text":448},{"id":457,"depth":243,"text":458},{"id":529,"depth":243,"text":530},{"id":536,"depth":243,"text":537},null,"\u002Fimg\u002Fblog\u002Fautomate-spf-dkim-dmarc-checks.png","A build recipe for a standing deliverability audit: check SPF, DKIM, DMARC, MX, and blacklist status per domain in one call, then gate and schedule it.",false,"md",{},true,"\u002Fblog\u002Fautomate-spf-dkim-dmarc-checks","2026-08-05",{"title":5,"description":614},"blog\u002Fautomate-spf-dkim-dmarc-checks",[624,625,626,627],"email","deliverability","dns","agents","_pJl1nxS386xr1LDtXWzewsOaS-eOFHOGXczxVnyYy8",[630,692,763,829],{"id":631,"title":632,"author":612,"body":633,"category":612,"cover":678,"description":131,"draft":615,"extension":616,"image":612,"launchCta":679,"listingCover":612,"meta":682,"navigation":618,"ogImage":612,"path":683,"publishedAt":684,"readTime":612,"seo":685,"stem":686,"tags":687,"toolCategory":612,"updatedAt":612,"__hash__":691},"blog\u002Fblog\u002Fakta-pro-is-now-available-on-monid.md","Introducing private markets\ndata for agents",{"type":8,"value":634,"toc":674},[635,639,647,650,654,661,668,671],[20,636,638],{"id":637},"what-is-aktapro","What is akta.pro",[11,640,641,646],{},[32,642,645],{"href":643,"rel":644},"https:\u002F\u002Fwww.akta.pro\u002F",[36],"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,648,649],{},"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.",[20,651,653],{"id":652},"what-is-monid","What is Monid",[11,655,656,660],{},[32,657,659],{"href":162,"rel":658},[36],"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,662,663,664,69],{},"Today, Monid provides tools for social media scraping, web search, image and\nmusic generation, people data search, weather APIs, ",[32,665,667],{"href":66,"rel":666},[36],"and more",[669,670],"hr",{},[11,672,673],{},"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":131,"searchDepth":243,"depth":243,"links":675},[676,677],{"id":637,"depth":243,"text":638},{"id":652,"depth":243,"text":653},"\u002Fimg\u002Fblog\u002Fakta-pro-is-now-available-on-monid-v2.png",{"label":680,"command":681},"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":632,"description":131},"blog\u002Fakta-pro-is-now-available-on-monid",[627,688,689,690],"partner-tools","private-markets","data","05ST9oH9qSQ4_vNxcczvHDEyev2JDIqBwMiM-zelWJo",{"id":693,"title":694,"author":612,"body":695,"category":612,"cover":752,"description":753,"draft":615,"extension":616,"image":612,"launchCta":612,"listingCover":612,"meta":754,"navigation":618,"ogImage":612,"path":755,"publishedAt":756,"readTime":612,"seo":757,"stem":758,"tags":759,"toolCategory":612,"updatedAt":612,"__hash__":762},"blog\u002Fblog\u002Fyour-claude-code-can-now-make-phone-calls.md","Your Claude Code can now make phone calls",{"type":8,"value":696,"toc":748},[697,701,712,716,724,727,729,734,740,742,745],[11,698,700],{"style":699},"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.",[123,702,706],{"className":703,"code":704,"language":705,"meta":131,"style":131},"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,707,708],{"__ignoreMap":131},[189,709,710],{"class":191,"line":192},[189,711,704],{},[20,713,715],{"id":714},"what-is-saperly","What is Saperly",[11,717,718,723],{},[32,719,722],{"href":720,"rel":721},"https:\u002F\u002Fsaperly.com\u002F",[36],"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,725,726],{},"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.",[20,728,653],{"id":652},[11,730,731,660],{},[32,732,659],{"href":162,"rel":733},[36],[11,735,736,737,69],{},"Today, Monid provides tools for social media scraping, web search, image \u002F\nmusic \u002F 3d model generation, people data search, weather APIs, ",[32,738,667],{"href":66,"rel":739},[36],[669,741],{},[11,743,744],{},"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.",[593,746,747],{},"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":131,"searchDepth":243,"depth":243,"links":749},[750,751],{"id":714,"depth":243,"text":715},{"id":652,"depth":243,"text":653},"\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":694,"description":753},"blog\u002Fyour-claude-code-can-now-make-phone-calls",[627,688,760,761],"voice","phone","Wp96EVH5j2eyHDSu2f5Rtv0RYmyWX7frAhalel9fOus",{"id":764,"title":765,"author":612,"body":766,"category":612,"cover":818,"description":819,"draft":615,"extension":616,"image":612,"launchCta":612,"listingCover":612,"meta":820,"navigation":618,"ogImage":612,"path":821,"publishedAt":822,"readTime":612,"seo":823,"stem":824,"tags":825,"toolCategory":612,"updatedAt":612,"__hash__":828},"blog\u002Fblog\u002Fintroducing-suzanne-chatgpt-for-3d-models.md","Introducing\nClaude for 3D models",{"type":8,"value":767,"toc":814},[768,771,780,784,792,795,797,802,807,809,812],[11,769,770],{"style":699},"Copy this line to your agent to generate your 3D model.",[123,772,774],{"className":703,"code":773,"language":705,"meta":131,"style":131},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a 3D model for a rabbit\n",[15,775,776],{"__ignoreMap":131},[189,777,778],{"class":191,"line":192},[189,779,773],{},[20,781,783],{"id":782},"what-is-suzanne","What is Suzanne",[11,785,786,791],{},[32,787,790],{"href":788,"rel":789},"https:\u002F\u002Fwww.suzanne3d.com",[36],"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,793,794],{},"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.",[20,796,653],{"id":652},[11,798,799,660],{},[32,800,659],{"href":162,"rel":801},[36],[11,803,663,804,69],{},[32,805,667],{"href":66,"rel":806},[36],[669,808],{},[11,810,811],{},"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.",[593,813,747],{},{"title":131,"searchDepth":243,"depth":243,"links":815},[816,817],{"id":782,"depth":243,"text":783},{"id":652,"depth":243,"text":653},"\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":765,"description":819},"blog\u002Fintroducing-suzanne-chatgpt-for-3d-models",[826,627,827],"3d","creative-tools","Mz475YlhLBgR80gyiTlL2MhfALZKYwbl4Rfwy96HZG0",{"id":830,"title":831,"author":612,"body":832,"category":612,"cover":891,"description":892,"draft":615,"extension":616,"image":612,"launchCta":612,"listingCover":612,"meta":893,"navigation":618,"ogImage":612,"path":894,"publishedAt":895,"readTime":612,"seo":896,"stem":897,"tags":898,"toolCategory":612,"updatedAt":612,"__hash__":901},"blog\u002Fblog\u002Fminimax-is-now-available-on-monid.md","MiniMax is now available on Monid",{"type":8,"value":833,"toc":886},[834,837,846,850,858,862,865,867,873,879,881,884],[11,835,836],{"style":699},"Copy this line to your agent to create music.",[123,838,840],{"className":703,"code":839,"language":705,"meta":131,"style":131},"set up https:\u002F\u002Fmonid.ai\u002FSKILL.md and create a song with MiniMax Music 2.6\n",[15,841,842],{"__ignoreMap":131},[189,843,844],{"class":191,"line":192},[189,845,839],{},[20,847,849],{"id":848},"minimax-music-26","MiniMax Music 2.6",[11,851,852,857],{},[32,853,856],{"href":854,"rel":855},"https:\u002F\u002Fwww.minimax.io",[36],"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.",[20,859,861],{"id":860},"minimax-text-to-image-image-01","MiniMax Text-to-Image image-01",[11,863,864],{},"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.",[20,866,653],{"id":652},[11,868,869,872],{},[32,870,659],{"href":162,"rel":871},[36]," 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,874,875,876,69],{},"Today, Monid provides tools for social media scraping, web search, image and music generation, people data search, weather APIs, ",[32,877,667],{"href":66,"rel":878},[36],[669,880],{},[11,882,883],{},"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.",[593,885,747],{},{"title":131,"searchDepth":243,"depth":243,"links":887},[888,889,890],{"id":848,"depth":243,"text":849},{"id":860,"depth":243,"text":861},{"id":652,"depth":243,"text":653},"\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":831,"description":892},"blog\u002Fminimax-is-now-available-on-monid",[627,827,899,900],"image-generation","music-generation","B3dZqIjNJNK7Y9ysAenI0XzKobOZMlEP87FRWrW19Vc",1786670264709]