Microsoft Graph People API

Retrieve people most relevant to a user based on communication and collaboration patterns, business relationships, and contacts. Useful for people-picking scenarios and social intelligence features.

OpenAPI Specification

microsoft-exchange-graph-people-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Microsoft Exchange Microsoft Graph People API
  description: >-
    Retrieve people most relevant to a user based on communication and
    collaboration patterns, business relationships, and contacts. The People
    API returns person objects ordered by their relevance to the user, which
    is determined by the user's communication and collaboration patterns.
    Useful for people-picking scenarios and social intelligence features.
  version: 1.0.0
  contact:
    name: Microsoft Support
    url: https://support.microsoft.com
    email: [email protected]
  license:
    name: Microsoft API License
    url: https://www.microsoft.com/en-us/legal/terms-of-use
  x-date-modified: '2026-03-04'
servers:
  - url: https://graph.microsoft.com/v1.0
    description: Microsoft Graph v1.0 production endpoint
security:
  - oauth2: []
tags:
  - name: People
    description: Operations for retrieving relevant people
paths:
  /me/people:
    get:
      operationId: listPeople
      summary: Microsoft Exchange List people
      description: >-
        Retrieve a collection of person objects ordered by their relevance to
        the signed-in user, which is determined by the user's communication
        and collaboration patterns, and business relationships. People can be
        local contacts, contacts from social networking or the organization's
        directory, and people from recent communications such as email.
      tags:
        - People
      parameters:
        - $ref: '#/components/parameters/TopParam'
        - $ref: '#/components/parameters/SkipParam'
        - $ref: '#/components/parameters/SelectParam'
        - $ref: '#/components/parameters/FilterParam'
        - $ref: '#/components/parameters/OrderByParam'
        - name: $search
          in: query
          description: >-
            Search for people by name or alias. Supports fuzzy matching and
            the topic keyword to find people based on topics extracted from
            email conversations.
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved people
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonCollectionResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /users/{user-id}/people:
    get:
      operationId: listUserPeople
      summary: Microsoft Exchange List user's people
      description: >-
        Retrieve a collection of person objects ordered by their relevance
        to the specified user. Requires People.Read.All permission. Useful
        for scenarios where an application needs to retrieve relevant people
        for a user other than the signed-in user.
      tags:
        - People
      parameters:
        - name: user-id
          in: path
          required: true
          description: The unique identifier or user principal name of the user
          schema:
            type: string
        - $ref: '#/components/parameters/TopParam'
        - $ref: '#/components/parameters/SkipParam'
        - $ref: '#/components/parameters/SelectParam'
        - $ref: '#/components/parameters/FilterParam'
      responses:
        '200':
          description: Successfully retrieved people for user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonCollectionResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authorization with Microsoft identity platform
      flows:
        authorizationCode:
          authorizationUrl: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
          tokenUrl: https://login.microsoftonline.com/common/oauth2/v2.0/token
          scopes:
            People.Read: Read user's relevant people list
            People.Read.All: Read all users' relevant people lists
  parameters:
    TopParam:
      name: $top
      in: query
      description: Maximum number of results to return
      schema:
        type: integer
        minimum: 1
    SkipParam:
      name: $skip
      in: query
      description: Number of results to skip (not supported with $search)
      schema:
        type: integer
        minimum: 0
    SelectParam:
      name: $select
      in: query
      description: Comma-separated list of properties to include
      schema:
        type: string
    FilterParam:
      name: $filter
      in: query
      description: OData filter expression
      schema:
        type: string
    OrderByParam:
      name: $orderby
      in: query
      description: Property to sort by (default is relevance)
      schema:
        type: string
  schemas:
    Person:
      type: object
      description: >-
        Represents an aggregation of information about a person from across
        mail, contacts, and social networks. People can be local contacts,
        contacts from social networking, the organization's directory, and
        people from recent communications.
      properties:
        id:
          type: string
          readOnly: true
          description: The person's unique identifier
        displayName:
          type: string
          description: The person's display name
        givenName:
          type: string
          description: The person's given name
        surname:
          type: string
          description: The person's surname
        birthday:
          type: string
          description: The person's birthday
        personNotes:
          type: string
          description: Free-form notes about this person
        isFavorite:
          type: boolean
          description: Whether the user has flagged this person as a favorite
        jobTitle:
          type: string
          description: The person's job title
        companyName:
          type: string
          description: The name of the person's company
        department:
          type: string
          description: The person's department
        officeLocation:
          type: string
          description: The location of the person's office
        profession:
          type: string
          description: The person's profession
        userPrincipalName:
          type: string
          description: >-
            The user principal name (UPN) of the person based on RFC 822
            in the format alias@domain
        imAddress:
          type: string
          readOnly: true
          description: The SIP address for VOIP instant messaging
        scoredEmailAddresses:
          type: array
          items:
            $ref: '#/components/schemas/ScoredEmailAddress'
          description: The person's email addresses with relevance scores
        phones:
          type: array
          items:
            $ref: '#/components/schemas/Phone'
          description: The person's phone numbers
        postalAddresses:
          type: array
          items:
            $ref: '#/components/schemas/Location'
          description: The person's addresses
        websites:
          type: array
          items:
            $ref: '#/components/schemas/Website'
          description: The person's websites
        personType:
          $ref: '#/components/schemas/PersonType'
        yomiCompany:
          type: string
          description: Phonetic Japanese company name
    ScoredEmailAddress:
      type: object
      description: An email address with a relevance score
      properties:
        address:
          type: string
          format: email
          description: The email address
        relevanceScore:
          type: number
          format: double
          description: The relevance score of the email address (0.0 to 100.0)
        selectionLikelihood:
          type: string
          enum:
            - notSpecified
            - high
          description: The likelihood that the email address would be selected
    Phone:
      type: object
      description: A phone number
      properties:
        type:
          type: string
          enum:
            - home
            - business
            - mobile
            - other
            - assistant
            - homeFax
            - businessFax
            - otherFax
            - pager
            - radio
          description: The type of phone number
        number:
          type: string
          description: The phone number
    Location:
      type: object
      description: Location information
      properties:
        displayName:
          type: string
          description: The name of the location
        locationType:
          type: string
          description: The type of location
        locationUri:
          type: string
          description: URI for the location
        address:
          $ref: '#/components/schemas/PhysicalAddress'
    PhysicalAddress:
      type: object
      description: Physical street address
      properties:
        street:
          type: string
        city:
          type: string
        state:
          type: string
        countryOrRegion:
          type: string
        postalCode:
          type: string
    Website:
      type: object
      description: A website
      properties:
        type:
          type: string
          enum:
            - other
            - home
            - work
            - blog
            - profile
          description: The type of website
        address:
          type: string
          format: uri
          description: The URL of the website
        displayName:
          type: string
          description: The display name of the website
    PersonType:
      type: object
      description: The type of person
      properties:
        class:
          type: string
          description: >-
            The type of data source such as Person (for directory data) or
            Group (for unified groups)
        subclass:
          type: string
          description: >-
            The sub-type such as OrganizationUser, PersonalContact,
            ExternalContact, or UnifiedGroup
    PersonCollectionResponse:
      type: object
      description: Collection of person objects
      properties:
        '@odata.context':
          type: string
        '@odata.nextLink':
          type: string
          format: uri
        value:
          type: array
          items:
            $ref: '#/components/schemas/Person'
    ODataError:
      type: object
      description: OData error response
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            innerError:
              type: object
              properties:
                request-id:
                  type: string
                date:
                  type: string
                  format: date-time
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
    Forbidden:
      description: Forbidden - insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
    NotFound:
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'