The Dataverse SDK for Python lets Python developers access, manage, and manipulate Microsoft Dataverse business data using familiar Python syntax — no .NET knowledge required. It wraps the Dataverse Web API in a single typed client that works with tables and records as native Python dictionaries and pandas DataFrames.
Source code | Package (PyPI) | API reference | Product documentation | Samples
Find complete documentation about how to use this SDK in the Dataverse SDK for Python documentation:
- Overview
- Quick guide to Dataverse
- Getting started
- Work with data
- Query data
- Customize tables and columns
- Manage table relationships
- Asynchronous client operations
- Handle errors and enable HTTP diagnostics
- Python Package Reference
The examples/ directory has complete, runnable scripts for every operation, including advanced scenarios — relationships, batch changesets, file uploads, SQL and FetchXML queries, and DataFrames — plus a full async mirror. Start with the examples guide for a suggested learning progression.
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 Contributor License Agreements.
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.
When contributing new features to this SDK, please follow these guidelines:
- Public methods in operation namespaces - New public methods go in the appropriate namespace module under operations/. Public types and constants live in their own modules (e.g.,
models/metadata.py,common/constants.py) - Add README example for public methods - Add usage examples to this README for public API methods
- Document public APIs - Include Sphinx-style docstrings with parameter descriptions and examples for all public methods
- Update documentation when adding features - Keep README and SKILL files (note that each skill has 2 copies) in sync
- Internal vs public naming - Modules, files, and functions not meant to be part of the public API must use a
_prefix (e.g.,_odata.py,_relationships.py). Files without the prefix (e.g.,constants.py,metadata.py) are public and importable by SDK consumers
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.