{"id":"src_8tt50oaCp5HlX5LowU2Cb","slug":"openai-net-sdk","name":".NET SDK","type":"github","url":"https://github.com/openai/openai-dotnet","orgId":"org_XCtsUSrelarAybkAnBD3g","org":{"slug":"openai","name":"OpenAI"},"isPrimary":false,"metadata":"{\"evaluatedMethod\":\"github\",\"evaluatedAt\":\"2026-04-07T17:18:47.261Z\",\"changelogUrl\":\"https://github.com/openai/openai-dotnet/blob/HEAD/CHANGELOG.md\",\"changelogDetectedAt\":\"2026-04-07T17:28:01.171Z\"}","releaseCount":31,"releasesLast30Days":1,"avgReleasesPerWeek":0.2,"latestVersion":"OpenAI_2.10.0","latestDate":"2026-04-04T00:04:49.000Z","changelogUrl":"https://github.com/openai/openai-dotnet/blob/HEAD/CHANGELOG.md","hasChangelogFile":true,"lastFetchedAt":"2026-04-18T14:04:23.189Z","trackingSince":"2024-06-06T19:05:14.000Z","releases":[{"id":"rel_nzTFFtzPVKF_bJLtbmQ0F","version":"OpenAI_2.10.0","title":"OpenAI_2.10.0","summary":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.10.0/CHANGELOG.md","content":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.10.0/CHANGELOG.md","publishedAt":"2026-04-04T00:04:49.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.10.0","media":[]},{"id":"rel_VvxKBAmnrQh2rBKrfwk87","version":"OpenAI_2.9.1","title":"OpenAI_2.9.1","summary":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.9.1/CHANGELOG.md","content":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.9.1/CHANGELOG.md","publishedAt":"2026-03-02T23:43:24.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.9.1","media":[]},{"id":"rel_hmcnIbn3pbBbA5IXbkd7v","version":"OpenAI_2.9.0","title":"OpenAI_2.9.0","summary":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.9.0/CHANGELOG.md","content":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.9.0/CHANGELOG.md","publishedAt":"2026-02-27T23:51:28.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.9.0","media":[]},{"id":"rel_Sgn2TOgVsfdU-eXB28xco","version":"OpenAI_2.8.0","title":"OpenAI_2.8.0","summary":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.8.0/CHANGELOG.md","content":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.8.0/CHANGELOG.md","publishedAt":"2025-12-11T21:20:46.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.8.0","media":[]},{"id":"rel_k3M24T6QGREw9ay4BzmOz","version":"OpenAI_2.7.0","title":"OpenAI_2.7.0","summary":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.7.0/CHANGELOG.md","content":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.7.0/CHANGELOG.md","publishedAt":"2025-11-13T22:37:39.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.7.0","media":[]},{"id":"rel_Tz-4dWAjvuJ_1sLl3VGtU","version":"OpenAI_2.6.0","title":"OpenAI_2.6.0","summary":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.6.0/CHANGELOG.md","content":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.6.0/CHANGELOG.md","publishedAt":"2025-10-31T22:16:14.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.6.0","media":[]},{"id":"rel_4tOrOVlm6Be5GnLZctysO","version":"OpenAI_2.5.0","title":"OpenAI_2.5.0","summary":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.5.0/CHANGELOG.md","content":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.5.0/CHANGELOG.md","publishedAt":"2025-09-24T01:42:47.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.5.0","media":[]},{"id":"rel_b4-e_s7eYE_ezOhv8yL1o","version":"OpenAI_2.4.0","title":"OpenAI_2.4.0","summary":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.4.0/CHANGELOG.md","content":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.4.0/CHANGELOG.md","publishedAt":"2025-09-06T00:23:01.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.4.0","media":[]},{"id":"rel_9McqjBBQF6Y3dyL3p2xPC","version":"OpenAI_2.3.0","title":"OpenAI_2.3.0","summary":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.3.0/CHANGELOG.md","content":"See full changelog: https://github.com/openai/openai-dotnet/blob/OpenAI_2.3.0/CHANGELOG.md","publishedAt":"2025-08-04T16:11:40.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.3.0","media":[]},{"id":"rel_44BkeRvJZkzs4UEkpWpPs","version":"OpenAI_2.2.0","title":"OpenAI_2.2.0","summary":"## What's Changed\r\n* Add ChatTools and ResponseTools helper classes by @christothes in https://github.com/openai/openai-dotnet/pull/422\r\n* Add string ...","content":"## What's Changed\r\n* Add ChatTools and ResponseTools helper classes by @christothes in https://github.com/openai/openai-dotnet/pull/422\r\n* Add string batchId overloads to CreateBatchOperation.Rehydrate methods by @KrzysztofCwalina in https://github.com/openai/openai-dotnet/pull/464\r\n* #348 optimise dependencies by @thompson-tomo in https://github.com/openai/openai-dotnet/pull/443\r\n* Fixed some code formatting in the Structured Output section of README by @gromer in https://github.com/openai/openai-dotnet/pull/359\r\n* Fix call id argument validation by @stephentoub in https://github.com/openai/openai-dotnet/pull/429\r\n* Add CONTRIBUTING.md by @joseharriaga in https://github.com/openai/openai-dotnet/pull/468\r\n* Add instructions for using a custom base URL and API key in README.md by @Petermarcu in https://github.com/openai/openai-dotnet/pull/467\r\n* Return shared ArrayPool by @shargon in https://github.com/openai/openai-dotnet/pull/459\r\n* Fix bool types by @shargon in https://github.com/openai/openai-dotnet/pull/437\r\n* Updating issue templates and configuration by @jsquire in https://github.com/openai/openai-dotnet/pull/477\r\n* Improve disposal logic in AsyncWebsocketMessageResultEnumerator to prevent multiple disposals by @christothes in https://github.com/openai/openai-dotnet/pull/476\r\n* [Wofkflow] Add \"needs-triage\" to new issues by @jsquire in https://github.com/openai/openai-dotnet/pull/481\r\n* Added override of ChatMessageContent.ToString by @KrzysztofCwalina in https://github.com/openai/openai-dotnet/pull/485\r\n* initial samples by @KrzysztofCwalina in https://github.com/openai/openai-dotnet/pull/489\r\n* Fix .NET 10 property directive format in sample files by @achandmsft in https://github.com/openai/openai-dotnet/pull/497\r\n* mcp usage sample by @KrzysztofCwalina in https://github.com/openai/openai-dotnet/pull/490\r\n* Prepare 2.2.0 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/502\r\n* Prepare 2.2.0 release (Part 2) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/503\r\n* Prepare release 2.2.0 (Part 3) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/504\r\n\r\n## New Contributors\r\n* @christothes made their first contribution in https://github.com/openai/openai-dotnet/pull/422\r\n* @thompson-tomo made their first contribution in https://github.com/openai/openai-dotnet/pull/443\r\n* @Petermarcu made their first contribution in https://github.com/openai/openai-dotnet/pull/467\r\n* @shargon made their first contribution in https://github.com/openai/openai-dotnet/pull/459\r\n* @jsquire made their first contribution in https://github.com/openai/openai-dotnet/pull/477\r\n* @achandmsft made their first contribution in https://github.com/openai/openai-dotnet/pull/497\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.2.0-beta.4...OpenAI_2.2.0","publishedAt":"2025-07-03T00:06:15.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.2.0","media":[]},{"id":"rel_zC3Yd0T_FUp8_Y5bccxiL","version":"OpenAI_2.2.0-beta.4","title":"OpenAI_2.2.0-beta.4","summary":"## What's Changed\r\n* Add a few quick readme examples for new responses support by @trrwilson in https://github.com/openai/openai-dotnet/pull/371\r\n* Pr...","content":"## What's Changed\r\n* Add a few quick readme examples for new responses support by @trrwilson in https://github.com/openai/openai-dotnet/pull/371\r\n* Prepare 2.2.0-beta.4 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/378\r\n* Prepare 2.2.0-beta.4 release (Part 2) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/379\r\n* Prepare 2.2.0-beta.4 release (Part 3) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/380\r\n\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.2.0-beta.3...OpenAI_2.2.0-beta.4","publishedAt":"2025-03-19T01:30:36.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.2.0-beta.4","media":[]},{"id":"rel_-VaJ8GJJVkzCYniJa9NW0","version":"OpenAI_2.2.0-beta.3","title":"OpenAI_2.2.0-beta.3","summary":"## What's Changed\r\n* chore: set license in nuget package by @e-i-n-s in https://github.com/openai/openai-dotnet/pull/333\r\n* Fixed misspelling of insta...","content":"## What's Changed\r\n* chore: set license in nuget package by @e-i-n-s in https://github.com/openai/openai-dotnet/pull/333\r\n* Fixed misspelling of instantiates. by @gromer in https://github.com/openai/openai-dotnet/pull/321\r\n* * GenericActionPipelinePolicy - ConfigureAwait(false) for ProcessAsync method by @vanek021 in https://github.com/openai/openai-dotnet/pull/353\r\n* Prepare 2.2.0-beta.3 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/368\r\n* Fix for FilePurpose by @joseharriaga in https://github.com/openai/openai-dotnet/pull/369\r\n* Prepare 2.2.0-beta.3 release (Part 2) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/370\r\n\r\n## New Contributors\r\n* @e-i-n-s made their first contribution in https://github.com/openai/openai-dotnet/pull/333\r\n* @gromer made their first contribution in https://github.com/openai/openai-dotnet/pull/321\r\n* @vanek021 made their first contribution in https://github.com/openai/openai-dotnet/pull/353\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.2.0-beta.2...OpenAI_2.2.0-beta.3","publishedAt":"2025-03-12T02:29:16.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.2.0-beta.3","media":[]},{"id":"rel_sPRmqROvNPrwItlFyKc1v","version":"OpenAI_2.2.0-beta.2","title":"OpenAI_2.2.0-beta.2","summary":"## What's Changed\r\n* Prepare 2.2.0-beta.2 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/349\r\n* Prepare 2.2.0-beta....","content":"## What's Changed\r\n* Prepare 2.2.0-beta.2 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/349\r\n* Prepare 2.2.0-beta.2 release (Part 2) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/351\r\n\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.2.0-beta.1...OpenAI_2.2.0-beta.2","publishedAt":"2025-02-18T22:02:56.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.2.0-beta.2","media":[]},{"id":"rel_FkdUsHqOBeHU7KWbXnBAo","version":"OpenAI_2.2.0-beta.1","title":"OpenAI_2.2.0-beta.1","summary":"## What's Changed\r\n* Update and refactor generated code by @joseharriaga in https://github.com/openai/openai-dotnet/pull/326\r\n* Added net8.0 as a supp...","content":"## What's Changed\r\n* Update and refactor generated code by @joseharriaga in https://github.com/openai/openai-dotnet/pull/326\r\n* Added net8.0 as a supported target framework for OpenAI #272 by @armanossiloko in https://github.com/openai/openai-dotnet/pull/277\r\n* feat: Added Trimming/NativeAOT support. by @HavenDV in https://github.com/openai/openai-dotnet/pull/21\r\n* Prepare 2.2.0-beta.1 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/337\r\n* Prepare 2.2.0-beta.1 release (Part 2) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/339\r\n\r\n## New Contributors\r\n* @armanossiloko made their first contribution in https://github.com/openai/openai-dotnet/pull/277\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.1.0...OpenAI_2.2.0-beta.1","publishedAt":"2025-02-07T22:15:47.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.2.0-beta.1","media":[]},{"id":"rel_uPwI9q-7FI_i-TP27hUqY","version":"OpenAI_2.1.0","title":"OpenAI_2.1.0","summary":"## What's Changed\r\n* Assistant - Fix null-reference exception when accessing `RunStepDetailsUpdate.FunctionName` by @crickman in https://github.com/op...","content":"## What's Changed\r\n* Assistant - Fix null-reference exception when accessing `RunStepDetailsUpdate.FunctionName` by @crickman in https://github.com/openai/openai-dotnet/pull/293\r\n* Add support for retrieving File Search result content in Run Steps and other fixes by @joseharriaga in https://github.com/openai/openai-dotnet/pull/294\r\n* Prepare 2.1.0 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/303\r\n* Prepare 2.1.0 release (Part 2) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/302\r\n\r\n## New Contributors\r\n* @crickman made their first contribution in https://github.com/openai/openai-dotnet/pull/293\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.1.0-beta.2...OpenAI_2.1.0","publishedAt":"2024-12-04T21:32:59.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.1.0","media":[]},{"id":"rel_SgSQU1QBrMnZ73ldYE6Qg","version":"OpenAI_2.1.0-beta.2","title":"OpenAI_2.1.0-beta.2","summary":"## What's Changed\r\n* Add CODEOWNERS file by @scottaddie in https://github.com/openai/openai-dotnet/pull/253\r\n* Simplify structured outputs sample code...","content":"## What's Changed\r\n* Add CODEOWNERS file by @scottaddie in https://github.com/openai/openai-dotnet/pull/253\r\n* Simplify structured outputs sample code by @scottaddie in https://github.com/openai/openai-dotnet/pull/236\r\n* Prepare 2.1.0-beta.2 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/278\r\n* fix：Fix parameter spelling errors by @ZhaoYis in https://github.com/openai/openai-dotnet/pull/247\r\n* docs: update nuget badge by @WeihanLi in https://github.com/openai/openai-dotnet/pull/241\r\n* [realtime] Address serialization issue with ConversationToolChoice by @trrwilson in https://github.com/openai/openai-dotnet/pull/282\r\n* Prepare 2.1.0-beta.2 release (Part 2) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/283\r\n\r\n## New Contributors\r\n* @scottaddie made their first contribution in https://github.com/openai/openai-dotnet/pull/253\r\n* @ZhaoYis made their first contribution in https://github.com/openai/openai-dotnet/pull/247\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.1.0-beta.1...OpenAI_2.1.0-beta.2","publishedAt":"2024-11-04T21:53:23.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.1.0-beta.2","media":[]},{"id":"rel_srWVROm47YyIgyj0lAA-e","version":"OpenAI_2.1.0-beta.1","title":"OpenAI_2.1.0-beta.1","summary":"## What's Changed\r\n* Remove prerelease switch from NuGet instructions by @joseharriaga in https://github.com/openai/openai-dotnet/pull/235\r\n* 2.1.0-be...","content":"## What's Changed\r\n* Remove prerelease switch from NuGet instructions by @joseharriaga in https://github.com/openai/openai-dotnet/pull/235\r\n* 2.1.0-beta.1 staging: RealtimeConversationClient by @trrwilson in https://github.com/openai/openai-dotnet/pull/238\r\n* 2.1.0-beta.1: CHANGELOG and release snap by @trrwilson in https://github.com/openai/openai-dotnet/pull/239\r\n\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.0.0...OpenAI_2.1.0-beta.1","publishedAt":"2024-10-01T21:24:33.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.1.0-beta.1","media":[]},{"id":"rel_lc-8c_1XK6oTzlyjV5PiN","version":"OpenAI_2.0.0","title":"OpenAI_2.0.0","summary":"## What's Changed\r\n* Prepare 2.0.0 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/233\r\n* Prepare 2.0.0 release (Par...","content":"## What's Changed\r\n* Prepare 2.0.0 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/233\r\n* Prepare 2.0.0 release (Part 2) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/234\r\n\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.0.0-beta.13...OpenAI_2.0.0","publishedAt":"2024-09-30T23:07:00.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.0.0","media":[]},{"id":"rel_KrdHKEmjW4O-W5R051loL","version":"OpenAI_2.0.0-beta.13","title":"OpenAI_2.0.0-beta.13","summary":"## What's Changed\r\n* Add serialization/deserialization example with chat completions by @joseharriaga in https://github.com/openai/openai-dotnet/pull/...","content":"## What's Changed\r\n* Add serialization/deserialization example with chat completions by @joseharriaga in https://github.com/openai/openai-dotnet/pull/124\r\n* Refactor and rename types and properties for consistency and clarity by @ShivangiReja in https://github.com/openai/openai-dotnet/pull/225\r\n* Remove the virtual keyword from the Pipeline property across all clients by @ShivangiReja in https://github.com/openai/openai-dotnet/pull/227\r\n* Prepare 2.0.0-beta.13 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/229\r\n* [Examples] Updating orange picture links by @kinelski in https://github.com/openai/openai-dotnet/pull/231\r\n* Prepare 2.0.0-beta.13 release (Part 2) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/230\r\n\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.0.0-beta.12...OpenAI_2.0.0-beta.13","publishedAt":"2024-09-27T22:37:58.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.0.0-beta.13","media":[]},{"id":"rel_g_hnZZcIvwBysysCGSCC7","version":"OpenAI_2.0.0-beta.12","title":"OpenAI_2.0.0-beta.12","summary":"## What's Changed\r\n* Added the NuGet tags openai-dotnet, ChatGPT, and Dall-E by @AngelosP in https://github.com/openai/openai-dotnet/pull/173\r\n* Prepa...","content":"## What's Changed\r\n* Added the NuGet tags openai-dotnet, ChatGPT, and Dall-E by @AngelosP in https://github.com/openai/openai-dotnet/pull/173\r\n* Prepare 2.0.0-beta.12 release (Part 1) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/216\r\n* Prepare 2.0.0-beta.12 release (Part 2) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/220\r\n* Prepare 2.0.0-beta.12 release (Part 3) by @joseharriaga in https://github.com/openai/openai-dotnet/pull/221\r\n\r\n\r\n**Full Changelog**: https://github.com/openai/openai-dotnet/compare/OpenAI_2.0.0-beta.11...OpenAI_2.0.0-beta.12","publishedAt":"2024-09-20T20:33:26.000Z","url":"https://github.com/openai/openai-dotnet/releases/tag/OpenAI_2.0.0-beta.12","media":[]}],"pagination":{"page":1,"pageSize":20,"totalPages":2,"totalItems":31},"summaries":{"rolling":{"windowDays":90,"summary":"The SDK moved through three releases in steady increments. Version 2.9.0 landed in late February, followed by a patch release 2.9.1 in early March, and then 2.10.0 shipped in April. The minor version bump suggests feature additions alongside the patch work, though the release notes point to the full changelogs for specifics.","releaseCount":3,"generatedAt":"2026-04-07T17:28:03.107Z"},"monthly":[{"year":2026,"month":3,"summary":"The OpenAI .NET SDK shipped a single patch release on March 2nd with targeted fixes documented in the changelog.","releaseCount":1,"generatedAt":"2026-04-07T17:28:04.412Z"}]}}