{"id":132,"date":"2026-07-22T15:10:15","date_gmt":"2026-07-22T15:10:15","guid":{"rendered":"https:\/\/www.ivanjurina.com\/?p=132"},"modified":"2026-07-22T15:10:16","modified_gmt":"2026-07-22T15:10:16","slug":"the-state-of-net-sdks-for-ai-apis-official-autogenerated-or-missing","status":"publish","type":"post","link":"https:\/\/www.ivanjurina.com\/index.php\/2026\/07\/22\/the-state-of-net-sdks-for-ai-apis-official-autogenerated-or-missing\/","title":{"rendered":"the state of .net sdks for ai apis: official, autogenerated, or missing"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">i build .net clients for ai apis, so i keep a running map of which providers actually support .net developers and which leave them hand-rolling http. the short version: &#8220;no .net sdk&#8221; is no longer the main problem. the main problem now is <strong>autogenerated .net sdks that technically exist but nobody enjoys using.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">here&#8217;s the field, in three buckets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">bucket 1: official, hand-maintained (the good ones)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">these vendors treat .net as a first-class citizen. if you&#8217;re on one of these, you&#8217;re fine.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OpenAI<\/strong> \u2014 official .net sdk, microsoft-backed. first-class.<\/li>\n\n\n\n<li><strong>Anthropic<\/strong> \u2014 official c# sdk (anthropic on nuget). recent, real.<\/li>\n\n\n\n<li><strong>Azure OpenAI<\/strong> \u2014 microsoft&#8217;s own, obviously excellent.<\/li>\n\n\n\n<li><strong>Deepgram<\/strong> \u2014 official deepgram-dotnet-sdk, targets net6\/7\/8. voice ai done right for .net.<\/li>\n\n\n\n<li><strong>Qdrant<\/strong> \u2014 official .net client for the vector db.<\/li>\n\n\n\n<li><strong>Pinecone<\/strong> \u2014 official .net sdk, microsoft-announced, wired into semantic kernel.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">takeaway: the biggest names have closed the gap. good for developers, not a market for me.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">bucket 2: autogenerated or experimental (the real opportunity)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">these have <em>a<\/em> .net client, but it&#8217;s machine-generated from an openapi spec (often by the community\ntryagi project) or, increasingly, ai-generated by the vendor themselves. they compile. they&#8217;re also\nnot idiomatic, thinly tested, and rough where the api gets interesting (agents, streaming, wire-format\nquirks). enterprise .net teams feel the difference immediately.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cohere<\/strong> \u2014 .net via tryagi autogen; no hand-crafted company client.<\/li>\n\n\n\n<li><strong>Tavily<\/strong> \u2014 tryagi autogen.<\/li>\n\n\n\n<li><strong>Groq<\/strong> \u2014 tryagi autogen (and openai-compatible, so most people just use the openai sdk).<\/li>\n\n\n\n<li><strong>Mistral<\/strong> \u2014 community + tryagi for chat; nothing official, and nothing covered the agents api until<br>  i built <a href=\"https:\/\/www.nuget.org\/packages\/Mistral.Agents.Net\">Mistral.Agents.Net<\/a>.<\/li>\n\n\n\n<li><strong>Apify<\/strong> \u2014 an <em>official<\/em> .net client that the vendor openly labels &#8220;experimental, ai-generated and<br>  ai-maintained.&#8221; decent, but the label says it all.<\/li>\n\n\n\n<li><strong>ElevenLabs<\/strong> \u2014 official sdks for python, ts, kotlin, swift; .net is community only, and the realtime<br>  agents layer wasn&#8217;t covered until <a href=\"https:\/\/www.nuget.org\/packages\/ElevenAgents.Net\">ElevenAgents.Net<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">takeaway: this is the new gap. the sdk exists, but it&#8217;s autogen. &#8220;you have a .net sdk&#8221; and &#8220;your .net\nsdk is good&#8221; are different sentences, and enterprise buyers notice.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">bucket 3: missing or community-only<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">no official .net at all \u2014 just a community package of varying quality, or nothing.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Together AI<\/strong> \u2014 no official .net.<\/li>\n\n\n\n<li><strong>Cartesia<\/strong> \u2014 no .net.<\/li>\n\n\n\n<li><strong>Firecrawl<\/strong> \u2014 community \/ autogen only.<\/li>\n\n\n\n<li><strong>Plaid<\/strong> \u2014 node\/python\/ruby\/java\/go official; no official .net (community Going.Plaid). and this is<br>  fintech, where the .net enterprise audience is huge.<\/li>\n\n\n\n<li><strong>Polygon.io<\/strong> \u2014 market data; no official .net.<\/li>\n\n\n\n<li><strong>Vapi \/ Retell \/ Hume \/ Browserbase<\/strong> \u2014 mostly missing.<\/li>\n\n\n\n<li><strong>AssemblyAI<\/strong> \u2014 special case: shipped an official c# sdk, then <em>discontinued<\/em> it in april 2025. .net<br>  users who adopted it are now on an unmaintained client. the clearest signal of all that .net gets<br>  treated as an afterthought.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">takeaway: still real gaps, especially in fintech and the newer voice\/agent startups whose enterprise\ncustomers are exactly the .net crowd \u2014 and vendors who shipped a .net sdk and then walked away.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">the thing nobody&#8217;s saying<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">the industry quietly decided that &#8220;generate a .net sdk from the openapi spec&#8221; equals &#8220;support .net.&#8221;\nit doesn&#8217;t. autogenerated clients handle the boring 80% and fall apart on the 20% that matters \u2014 the\nagentic surfaces, the streaming, the wire-format quirks you only find by running against the live api.\n(mistral&#8217;s agents api returns function-call arguments as a json <em>string<\/em>, not an object. no generator\ncatches that. you find it on the first real call, in production.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if you&#8217;re a vendor with a python-first api and an autogenerated .net client, your enterprise .net users\nare the ones paying for that gap \u2014 in time, in bugs, in a worse first impression than your python users\nget. that&#8217;s fixable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>i hand-craft production .net clients and mcp servers for ai apis \u2014 idiomatic, live-verified, documented.\nif your .net story is a bucket-2 or bucket-3 entry, <a href=\"https:\/\/www.ivanjurina.com\">let&#8217;s talk<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>i build .net clients for ai apis, so i keep a running map of which providers actually support .net developers [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-132","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.ivanjurina.com\/index.php\/wp-json\/wp\/v2\/posts\/132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ivanjurina.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ivanjurina.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ivanjurina.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ivanjurina.com\/index.php\/wp-json\/wp\/v2\/comments?post=132"}],"version-history":[{"count":1,"href":"https:\/\/www.ivanjurina.com\/index.php\/wp-json\/wp\/v2\/posts\/132\/revisions"}],"predecessor-version":[{"id":133,"href":"https:\/\/www.ivanjurina.com\/index.php\/wp-json\/wp\/v2\/posts\/132\/revisions\/133"}],"wp:attachment":[{"href":"https:\/\/www.ivanjurina.com\/index.php\/wp-json\/wp\/v2\/media?parent=132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ivanjurina.com\/index.php\/wp-json\/wp\/v2\/categories?post=132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ivanjurina.com\/index.php\/wp-json\/wp\/v2\/tags?post=132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}