# Microsoft Dynamics CRM — CRM API: overview

> Canonical URL: https://developers.apideck.com/apis/crm/microsoft-dynamics/overview

Dynamics CRM is a leading customer resource management and enterprise resource planning software.
- Status: live
- Authentication: oauth2

- **partnership required:** false
- **difficulty reason:** Self-Service OAuth + Publisher Verification Required for Cross-Tenant Consent
- **costs:** None. App registration, publisher verification and Dataverse Web API calls are free.
- **sandbox available:** true
- **account type required:** Dynamics 365 Sales or Customer Engagement environment (online) with a full user licence
- **responsibility matrix:**   - **area:** Register a multitenant app in Microsoft Entra ID
  - **customer:** ✓ (or use Apideck credentials)
  - **apideck:** Docs provided
  - **area:** Complete publisher verification
  - **customer:** ✓
  - **area:** Add Client ID and Client Secret in the Apideck Dashboard
  - **customer:** ✓
  - **consumer:** ✓ (tenant admin, if the consent policy requires it)
  - **area:** Grant admin consent for the organisation
  - **consumer:** ✓
  - **area:** Enter the organisation URL and authorize in Vault
  - **area:** Token refresh and credential storage
  - **apideck:** ✓
  - **area:** Maintain the connector and the unified CRM and Lead APIs
  - **apideck:** ✓
- **authentication note:** Authorization Code flow through Microsoft Entra ID; the consumer enters their Dynamics 365 organisation URL when connecting.
- **partnership url:** https://learn.microsoft.com/en-us/entra/identity-platform/publisher-verification-overview
- **difficulty:** moderate
- **sandbox note:** 30-day Dynamics 365 Sales trial; sign-up needs a work account and card details.
- **important to know:** Publisher verification is the hidden gate: since November 2020 Microsoft blocks users in other tenants from consenting to a new multitenant app that is not publisher verified. Plan for it before onboarding, including a publisher domain you own.
A connection covers exactly one Dynamics 365 environment (for example https://yourorg.crm.dynamics.com), so a consumer running several environments needs a separate connection, and a separate authorization, for each one.
There is no free long-lived test environment: Power Apps developer environments cannot install Dynamics 365 apps and the Microsoft 365 developer sandbox is gated to Visual Studio subscribers, partners and support customers. Plan testing around the 30-day trial.
Refresh tokens expire after 90 days without use, so a consumer whose integration sits idle for three months has to re-authorize the connection.
- **partnership portal name:** Microsoft Entra publisher verification
- **apideck credentials available:** true
- **external guides:**   - **title:** Use OAuth authentication with Microsoft Dataverse
  - **url:** https://learn.microsoft.com/en-us/power-apps/developer/data-platform/authenticate-oauth
  - **source:** Microsoft
  - **source:** Microsoft
  - **title:** Service protection API limits
  - **url:** https://learn.microsoft.com/en-us/power-apps/developer/data-platform/api-limits
  - **url:** https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/compose-http-requests-handle-errors
  - **source:** Microsoft
  - **title:** Compose HTTP requests (find your Web API URL)
- **supported resource categories:**   - **resources:** companies
contacts
users
  - **name:** Companies & Contacts
  - **resources:** leads
opportunities
  - **name:** Sales Pipeline
  - **resources:** activities
appointments
calls
emails
letters
tasks
notes
  - **name:** Activities & Notes
- **consumer access level:** Any licensed user with access to the records; the tenant's consent policy may require an admin to approve the app
- **sandbox url:** https://learn.microsoft.com/en-us/dynamics365/sales/sign-up-for-sales-trial
- **partnership note:** No partnership contract; publisher verification requires a Microsoft AI Cloud Partner Program account.
- **webhooks:** No webhooks — Dynamics 365 changes are not surfaced as Apideck events; sync by polling the CRM and Lead APIs
- **environment notes:**   - **description:** Dynamics 365 has no separate API host for testing: the same Entra app and endpoints serve every environment, and the organisation URL entered at connection time (a production environment or a consumer's own sandbox environment) is what separates them. For your own testing, start a 30-day Dynamics 365 Sales trial, or use a sandbox environment in a tenant you already have. Apideck's temporary shared test credentials are an alternative for early evaluation (request access via https://help.apideck.com/en/articles/7774658). Take care when testing against a production environment.
  - **environment:** Testing and production
- **apideck credentials note:** For testing: the Microsoft consent screen shows "Apideck". Use your own Microsoft Entra app in production.
- **rate limits:** 6,000 requests per 5 minutes per user (plus 20 minutes execution time and 52 concurrent requests); HTTP 429 with Retry-After.

## Supported resources

- **name:** Companies
- **downstream name:** Accounts
- **id:** companies
- **status:** live
- **custom field support:** true
- **downstream id:** accounts
- **custom field support:** true
- **status:** live
- **name:** Opportunities
- **downstream id:** opportunities
- **downstream name:** Opportunities
- **id:** opportunities
- **downstream id:** leads
- **name:** Leads
- **downstream name:** Leads
- **status:** live
- **id:** leads
- **custom field support:** true
- **id:** contacts
- **downstream id:** contacts
- **downstream name:** Contacts
- **name:** Contacts
- **custom field support:** true
- **status:** live
- **status:** live
- **downstream id:** activities
- **custom field support:** false
- **id:** activities
- **name:** Activities
- **downstream name:** Activities
- **id:** notes
- **name:** Notes
- **status:** live
- **custom field support:** false
- **downstream name:** Annotations
- **downstream id:** annotations
- **downstream name:** Systemusers
- **name:** Users
- **downstream id:** systemusers
- **id:** users
- **status:** live
- **custom field support:** false

An omitted operation list does not establish operation support. Verify the selected operation in the coverage matrix.

[API reference](https://developers.apideck.com/apis/crm/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/crm/coverage)
