https://github.com/microsoft/kiota Skip to content Navigation Menu Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + GitHub Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions By size + Enterprise + Teams + Startups By industry + Healthcare + Financial services + Manufacturing By use case + CI/CD & Automation + DevOps + DevSecOps * Resources Topics + AI + DevOps + Security + Software Development Explore + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up Reseting focus You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} microsoft / kiota Public * Notifications You must be signed in to change notification settings * Fork 182 * Star 2.6k OpenAPI based HTTP Client code generator aka.ms/kiota/docs License MIT license 2.6k stars 182 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 152 * Pull requests 15 * Discussions * Actions * Projects 1 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights microsoft/kiota This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 12,942 Commits .azure-pipelines .azure-pipelines .devcontainer .devcontainer .github .github .vscode .vscode abstractions abstractions authentication authentication docs docs guardian/SDL/common guardian/SDL/ common http http intellij intellij it it resources resources scripts scripts serialization serialization specs specs src src tests tests vscode/ vscode/ microsoft-kiota microsoft-kiota .editorconfig .editorconfig .gitignore .gitignore CHANGELOG.md CHANGELOG.md CODE_OF_CONDUCT.md CODE_OF_CONDUCT.md CONTRIBUTING.md CONTRIBUTING.md Dockerfile Dockerfile LICENSE LICENSE README.md README.md SECURITY.md SECURITY.md SUPPORT.md SUPPORT.md global.json global.json kiota.sln kiota.sln View all files Repository files navigation * README * Code of conduct * MIT license * Security Project Dotnet CodeQL Coverage Sonarcloud Status Kiota is a command line tool for generating an API client to call any OpenAPI described API you are interested in. The goal is to eliminate the need to take a dependency on a different API SDK for every API that you need to call. Kiota API clients provide a strongly typed experience with all the features you expect from a high quality API SDK, but without having to learn a new library for every HTTP API. This library builds on top of the Microsoft.OpenAPI.NET library to ensure comprehensive support for APIs that use OpenAPI descriptions. One of the goals of the project is to provide the best code generator support possible for OpenAPI and JSON Schema features. The conceptual documentation describes how kiota works and the high level concepts, this readme documents how to get started with Kiota. Getting started Generating SDKs 1. Install required tools and dependencies. (refer to the Supported Languages table under the Required tools & dependencies column) 2. Get Kiota using one of the available options. 3. Generate your API client, checkout the Parameters reference for the different options. 4. Start calling your API using your fluent API Client. Supported languages The following table provides an overview of the languages supported by Kiota and the progress in the implementation of the different components. Required Language Generation Abstractions Serialization Authentication HTTP tools & dependencies FORM, JSON, Anonymous, API CSharp MULTIPART, Key, Azure link TEXT FORM, JSON, Anonymous, API Go MULTIPART, Key, Azure link TEXT FORM, JSON, Anonymous, API Java MULTIPART, Key, Azure link TEXT JSON, FORM, Anonymous, [?] PHP MULTIPART, PHP League link TEXT FORM, JSON, Anonymous, Python MULTIPART, Azure link TEXT FORM, JSON, Anonymous, Ruby [?] [?] MULTIPART, OAuth2 [?] TEXT CLI [?] (see CSharp) (see CSharp) (see CSharp) (see link + [?] CSharp) FORM, Anonymous, Swift [?] JSON, FORM, Azure TEXT TypeScript FORM, JSON, Anonymous, API / [?] [?] MULTIPART, Key, Azure, [?] link JavaScript TEXT SPFx Legend: -> stable, [?] -> in preview, -> not started, > -> in progress. Parameters reference Parameters are documented here. Debugging Make sure you install the pre-requisites first. If you are using Visual Studio Code as your IDE, the launch.json file already contains the configuration to run Kiota. By default this configuration will use the openApiDocs/v1.0/Mail.yml under the PowerShell repository as the OpenAPI to generate an SDK for. By default this configuration will output the generated files in a graphdotnetv4|graphjavav4| graphtypescriptv4 folder located in the parent folder this repository is cloned in. Selecting the language you want to generate an API client for in the Visual Studio Debug tab and hitting F5 will automatically build, start, and attach the debugging process to Kiota. Samples You can find samples of clients generated with Kiota in the Kiota samples repository. An example of an application that is calling multiple API can be found in the KiotaApp repo Contributing This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https:// cla.opensource.microsoft.com. When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA. This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments. Trademarks This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. About OpenAPI based HTTP Client code generator aka.ms/kiota/docs Topics ruby python java api golang php http typescript csharp dotnet openapi hacktoberfest openapi-specification openapi3 openapi-codegen kiota Resources Readme License MIT license Code of conduct Code of conduct Security policy Security policy Activity Custom properties Stars 2.6k stars Watchers 44 watching Forks 182 forks Report repository Releases 116 v1.17.0 Latest Aug 9, 2024 + 115 releases Contributors 89 * @baywet * @dependabot[bot] * @andrueastman * @github-actions[bot] * @samwelkanda * @SilasKenneth * @Ndiritu * @calebkiage * @andreaTP * @ramsessanchez * @jasonjoh * @darrelmiller * @nikithauc * @maisarissi + 75 contributors Languages * C# 95.8% * TypeScript 2.0% * PowerShell 0.9% * Java 0.8% * JavaScript 0.2% * Go 0.1% * Other 0.2% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.