Microsoft Dynamics 365 Sales Contacts API

Contact (person) records

Business capability
Customer Data Management BC-420.10

Operations 5

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /contacts Search and list contacts · Query contacts #
Ask an LLM
“How do I get a list of the people in my CRM contacts?”
“Can I filter contacts by last name or email and limit how many come back?”
Tell an agent
List contacts matching {filter}.
Show the first {top} contacts with only {select}.
POST /contacts Add a new contact · Create a contact #
Ask an LLM
“How do I add a new person as a contact in Dynamics 365 Sales?”
“Can I create a contact record through the API?”
Tell an agent
Create a new contact in the CRM.
Add this person as a new contact record.
GET /contacts({contactid}) Look up a single contact by ID · Get a contact #
Ask an LLM
“Where can I see everything stored on one contact?”
“What does a specific contact record contain?”
Tell an agent
Get contact {contactid}.
Show me the details for contact {contactid}.
PATCH /contacts({contactid}) Update an existing contact · Update a contact #
Ask an LLM
“What's the way to correct details on a contact that already exists?”
“Can I edit a contact's record after it has been created?”
Tell an agent
Update contact {contactid} with the new details.
Edit the existing contact {contactid}.
DELETE /contacts({contactid}) Delete a contact · Delete a contact #
Ask an LLM
“How do I permanently remove a contact from the CRM?”
“Can I delete a contact who asked to be removed?”
Tell an agent destructive · confirm first
Delete contact {contactid}.
Remove contact {contactid} from Dynamics.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/microsoft-dynamics-365-sales:microsoft-dynamics-365-sales-contacts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

microsoft-dynamics-365-sales-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Microsoft Dataverse Web API (Dynamics 365 Sales) Contacts…
  description: 'OData v4 RESTful Web API for Microsoft Dataverse, the platform behind

    Dynamics 365 Sales. Used to create, read, update, and delete Dynamics

    365 Sales records (accounts, contacts, leads, opportunities, quotes,

    orders, invoices, products, tasks) and to invoke bound and unbound

    actions and functions. Authentication uses OAuth 2.0 bearer tokens

    issued by Microsoft Entra ID; the endpoint is per-environment, for

    example https://{org}.api.crm.dynamics.com/api/data/v9.2/.'
  version: v9.2
  contact:
    name: Kin Lane
    email: kin@apievangelist.com
  license:
    name: Microsoft Terms of Use
    url: https://www.microsoft.com/en-us/legal/terms-of-use
servers:
- url: https://{org}.api.crm.dynamics.com/api/data/v9.2
  description: Dataverse environment endpoint
  variables:
    org:
      default: contoso
      description: Dataverse organization (environment) prefix
security:
- oauth2: []
tags:
- name: Contacts
  description: Contact (person) records
paths:
  /contacts:
    get:
      tags:
      - Contacts
      summary: Query contacts
      operationId: contacts_list
      parameters:
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/top'
      responses:
        '200':
          description: OK
    post:
      tags:
      - Contacts
      summary: Create a contact
      operationId: contacts_create
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '204':
          description: No Content
  /contacts({contactid}):
    get:
      tags:
      - Contacts
      summary: Get a contact
      operationId: contacts_get
      parameters:
      - name: contactid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
    patch:
      tags:
      - Contacts
      summary: Update a contact
      operationId: contacts_update
      parameters:
      - name: contactid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '204':
          description: No Content
    delete:
      tags:
      - Contacts
      summary: Delete a contact
      operationId: contacts_delete
      parameters:
      - name: contactid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No Content
components:
  parameters:
    select:
      name: $select
      in: query
      schema:
        type: string
    filter:
      name: $filter
      in: query
      schema:
        type: string
    top:
      name: $top
      in: query
      schema:
        type: integer
  securitySchemes:
    oauth2:
      type: oauth2
      description: Microsoft Entra ID OAuth 2.0 bearer token
      flows:
        authorizationCode:
          authorizationUrl: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
          tokenUrl: https://login.microsoftonline.com/common/oauth2/v2.0/token
          scopes:
            https://{org}.api.crm.dynamics.com/.default: Dataverse environment access
        clientCredentials:
          tokenUrl: https://login.microsoftonline.com/common/oauth2/v2.0/token
          scopes:
            https://{org}.api.crm.dynamics.com/.default: Service-to-service access