$npx skillfedfor your agent

dynamics365crm-python

API wrapper for Dynamics365CRM written in Python

SkipPyPI WWW/HTTPReleased Apr 202379.7K downloads / moMITPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — dynamics365crm_python-1.0.2-py3-none-any.whl
v1.0.2 · released 2023-04-24 · Python >=3.7,<4.0 · 2 runtime deps: msal, requests

No—the project is abandoned and will receive no maintenance, bug fixes, or security patches. While the code may still work with current Dynamics 365 instances, you have no recourse if the API changes, dependencies break, or security issues emerge. For production use, seek an actively maintained alternative or consider building directly against the Dynamics 365 REST API.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Azure AD application credentials (client_id and client_secret) and a valid Dynamics 365 tenant domain to authenticate and connect.
  • Installation is straightforward with low friction—the package depends only on msal and requests.
  • However, the project is abandoned, meaning no bug fixes or security updates will be issued going forward.

License · maintenance · safety

MIT (permissive) — Licensed under MIT (permissive), so you can use, modify, and distribute the package freely with minimal restrictions.

last release 2023-04-24 (1208 days)

0 known vulnerabilities (OSV.dev, 2026-08-14) · 79,668 downloads/mo, #14,343 on PyPI

Verify before relying

pip install dynamics365crm-python

from dynamics365crm.client import Client

client = Client(
    "https://tenant_name.crmX.dynamics.com",
    client_id="CLIENT_ID",
    client_secret="CLIENT_SECRET"
)
contacts = client.get_contacts()
  • Whether the package remains compatible with current Dynamics 365 API versions beyond v9.0 or if breaking changes have occurred.
  • Current state of msal and requests dependencies—whether they have introduced breaking changes since the last release.
  • Whether the OAuth2 flow implementation still aligns with current Microsoft Azure AD authentication best practices.
Same gist for agents: .md · .json

What it is and what it does

dynamics365crm-python is a wrapper around the Microsoft Dynamics 365 CRM Web API that lets you interact with CRM records from Python code. It handles OAuth2 authentication against Azure AD and provides a client object with methods to query, create, update, and delete contacts, accounts, opportunities, leads, and campaigns. The library depends on msal for authentication and requests for HTTP calls.

The package supports both direct access-token authentication and the full OAuth2 code-exchange flow, including token refresh. It abstracts away the underlying REST API details, letting you work with CRM entities through simple method calls like get_contacts(), create_account(), and update_opportunity(). The library targets Dynamics 365 API version v9.0 and supports Python 3.7 through 3.11.

Use it for

  • Automate bulk contact or lead imports into Dynamics 365 from external data sources or ETL pipelines.
  • Build a backend service that syncs opportunity or campaign data between Dynamics 365 and another business system.
  • Create a Python script to query and export CRM records for reporting or analytics without manual portal access.
  • Integrate Dynamics 365 CRM data into a web application or bot that needs read/write access to accounts and contacts.
  • Develop a scheduled job that updates lead or campaign records based on external events or triggers.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Skip

No—the project is abandoned and will receive no maintenance, bug fixes, or security patches.

While the code may still work with current Dynamics 365 instances, you have no recourse if the API changes, dependencies break, or security issues emerge. For production use, seek an actively maintained alternative or consider building directly against the Dynamics 365 REST API.

Install

dynamics365crm-python on PyPI

Before you install

Installation is straightforward with low friction—the package depends only on msal and requests. However, the project is abandoned, meaning no bug fixes or security updates will be issued going forward.

Requires Azure AD application credentials (client_id and client_secret) and a valid Dynamics 365 tenant domain to authenticate and connect.

License in practice

Licensed under MIT (permissive), so you can use, modify, and distribute the package freely with minimal restrictions.

Quickstart

pip install dynamics365crm-python

from dynamics365crm.client import Client

client = Client(
    "https://tenant_name.crmX.dynamics.com",
    client_id="CLIENT_ID",
    client_secret="CLIENT_SECRET"
)
contacts = client.get_contacts()

Verify before relying

  • Whether the package remains compatible with current Dynamics 365 API versions beyond v9.0 or if breaking changes have occurred.
  • Current state of msal and requests dependencies—whether they have introduced breaking changes since the last release.
  • Whether the OAuth2 flow implementation still aligns with current Microsoft Azure AD authentication best practices.

Package facts

LicenseMIT permissive
Python supportSupports the current Python release >=3.7,<4.0
Install frictionLow. Pure-Python wheel
Runtime dependencies
2 packages
msalrequests
MaintenanceAbandoned 1,208 days since the last release
First released
Downloads79,668 / month, #14,343 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Evidence: dynamics365crm_python-1.0.2-py3-none-any.whl

Tags

Capabilities
dynamics 365 crm api clientmicrosoft dynamics 365 pythoncrm contact management apidynamics 365 oauth2 authenticationcrm web api wrapperdynamics 365 lead and opportunity managementazure ad crm integration
Topics
crm-integrationmicrosoft-dynamicsoauth2

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “dynamics 365 crm api client”

Give your agent the search over MCP, or paste the wish link into any chat.

More WWW/HTTP packages

urllib3 Worth it
PyPI · Libraries · released May 2026

urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.

MITpure Python · 3.10+
1.8Bdownloads / mo
requests Worth it
PyPI · Libraries · released May 2026

Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.

Apache-2.0pure Python · 3.10+
1.8Bdownloads / mo
h11 With conditions
PyPI · WWW/HTTP · released Apr 2025

h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.

MITpure Python · 3.8+aging
894.9Mdownloads / mo
httpx Worth it
PyPI · WWW/HTTP · released Dec 2024

HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.

Install it if you are building new projects or modernizing existing ones that rely on HTTP.

BSD-3-Clausepure Python · 3.8+
797.0Mdownloads / mo
httpcore With conditions
PyPI · WWW/HTTP · released Apr 2025

A minimal low-level HTTP client library that sends HTTP requests with thread-safe and task-safe connection pooling, supporting HTTP/1.1, HTTP/2, proxies, and both sync and async interfaces.

BSD-3-Clausepure Python · 3.8+aging
783.6Mdownloads / mo
aiohttp Worth it
PyPI · WWW/HTTP · released Jul 2026

aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.

Install it if you need async HTTP client or server capabilities in asyncio-based applications.

permissive licensecompiled wheel · 3.10+
643.6Mdownloads / mo

See also hubspot-api-client · marketorestpython · pycdc · oauth2-client · microsoftgraph-python · linkedin-api-client · office365-rest-python-client · o365 · PowerPlatform-Dataverse-Client · pinterest-api-sdk