Microsoft Graph Applicaiton Catalogs

Microsoft Graph App Catalogs is the API surface that lets you programmatically manage Microsoft Teams apps in both the public Teams Store and your organization’s private app catalog. Through the appCatalogs/teamsApps resources, you can discover apps and their versions, retrieve metadata and app definitions, publish and update your own line‑of‑business Teams apps, and remove them when needed.

OpenAPI Specification

appcatalogs-openapi-original.yml Raw ↑
openapi: 3.1.0
info:
  title: Microsoft Graph App Catalogs API
  description: The Microsoft Graph App Catalogs API provides operations to manage the app catalog in Microsoft Teams. This includes listing, publishing, updating, and deleting Teams apps, as well as managing app definitions and associated bots.
  version: 1.0.0
  contact:
    name: Microsoft Graph Support
    url: https://developer.microsoft.com/graph
  license:
    name: Microsoft API License
    url: https://docs.microsoft.com/legal/microsoft-apis/terms-of-use
servers:
  - url: https://graph.microsoft.com/v1.0
    description: Microsoft Graph v1.0 endpoint
paths:
  /appCatalogs:
    description: Provides operations to manage the appCatalogs singleton.
    get:
      tags:
        - App Catalogs
      summary: Microsoft Graph Get appCatalogs
      description: Performs GET operation on /appCatalogs
      operationId: listAppCatalogs
      parameters:
        - name: $select
          in: query
          description: Select properties to be returned
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
        - name: $expand
          in: query
          description: Expand related entities
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
      responses:
        2XX:
          description: Retrieved entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppCatalogs'
              examples:
                AppCatalogsExample:
                  $ref: '#/components/examples/AppCatalogsExample'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-docs-operation-type: operation
    patch:
      tags:
        - App Catalogs
      summary: Microsoft Graph Update appCatalogs
      description: Performs PATCH operation on /appCatalogs
      operationId: updateAppCatalogs
      requestBody:
        description: New property values
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppCatalogs'
            examples:
              AppCatalogsRequestExample:
                $ref: '#/components/examples/AppCatalogsRequestExample'
        required: true
      responses:
        2XX:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppCatalogs'
              examples:
                AppCatalogsExample:
                  $ref: '#/components/examples/AppCatalogsExample'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-docs-operation-type: operation
  /appCatalogs/teamsApps:
    description: Provides operations to manage the teamsApps property of the microsoft.graph.appCatalogs entity.
    get:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph List teamsApp
      description: List apps from the Microsoft Teams app catalog, including apps from the Microsoft Teams store and apps from your organization's app catalog (the tenant app catalog). To get apps from your organization's app catalog only, specify organization as the distributionMethod in the request.
      operationId: listAppCatalogsTeamsApps
      externalDocs:
        description: Find more info here
        url: https://learn.microsoft.com/graph/api/appcatalogs-list-teamsapps?view=graph-rest-1.0
      parameters:
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/Search'
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Count'
        - name: $orderby
          in: query
          description: Order items by property values
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
        - name: $select
          in: query
          description: Select properties to be returned
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
        - name: $expand
          in: query
          description: Expand related entities
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
      responses:
        2XX:
          $ref: '#/components/responses/TeamsAppCollectionResponse'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-pageable:
        nextLinkName: '@odata.nextLink'
        operationName: listMore
      x-ms-docs-operation-type: operation
    post:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Publish teamsApp
      description: "Publish an app to the Microsoft Teams app catalog.\r\nSpecifically, this API publishes the app to your organization's catalog (the tenant app catalog);\r\nthe created resource has a distributionMethod property value of organization. The requiresReview property allows any user to submit an app for review by an administrator. Admins can approve or reject these apps via this API or the Microsoft Teams admin center."
      operationId: createAppCatalogsTeamsApps
      externalDocs:
        description: Find more info here
        url: https://learn.microsoft.com/graph/api/teamsapp-publish?view=graph-rest-1.0
      requestBody:
        description: New navigation property
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamsApp'
            examples:
              TeamsAppRequestExample:
                $ref: '#/components/examples/TeamsAppRequestExample'
        required: true
      responses:
        2XX:
          description: Created navigation property.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamsApp'
              examples:
                TeamsAppExample:
                  $ref: '#/components/examples/TeamsAppExample'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-docs-operation-type: operation
  /appCatalogs/teamsApps/{teamsApp-id}:
    description: Provides operations to manage the teamsApps property of the microsoft.graph.appCatalogs entity.
    get:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Get teamsApps from appCatalogs
      description: Performs GET operation on /appCatalogs/teamsApps/{teamsApp-id}
      operationId: getAppCatalogsTeamsApps
      parameters:
        - name: $select
          in: query
          description: Select properties to be returned
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
        - name: $expand
          in: query
          description: Expand related entities
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
      responses:
        2XX:
          description: Retrieved navigation property
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamsApp'
              examples:
                TeamsAppExample:
                  $ref: '#/components/examples/TeamsAppExample'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-docs-operation-type: operation
    patch:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Update Teams Apps
      description: Performs PATCH operation on /appCatalogs/teamsApps/{teamsApp-id}
      operationId: updateAppCatalogsTeamsApps
      requestBody:
        description: New navigation property values
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamsApp'
            examples:
              TeamsAppRequestExample:
                $ref: '#/components/examples/TeamsAppRequestExample'
        required: true
      responses:
        2XX:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamsApp'
              examples:
                TeamsAppExample:
                  $ref: '#/components/examples/TeamsAppExample'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-docs-operation-type: operation
    delete:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Delete teamsApp
      description: Delete an app from an organization's app catalog (the tenant app catalog). To delete an app, the distributionMethod property for the app must be set to organization. You can also use this API to remove a submitted app from the review process.
      operationId: deleteAppCatalogsTeamsApps
      externalDocs:
        description: Find more info here
        url: https://learn.microsoft.com/graph/api/teamsapp-delete?view=graph-rest-1.0
      parameters:
        - name: If-Match
          in: header
          description: ETag
          schema:
            type: string
      responses:
        '204':
          description: Success
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: '204'
      x-ms-docs-operation-type: operation
    parameters:
      - name: teamsApp-id
        in: path
        description: The unique identifier of teamsApp
        required: true
        schema:
          type: string
        x-ms-docs-key-type: teamsApp
  /appCatalogs/teamsApps/{teamsApp-id}/appDefinitions:
    description: Provides operations to manage the appDefinitions property of the microsoft.graph.teamsApp entity.
    get:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Get appDefinitions from appCatalogs
      description: The details for each version of the app.
      operationId: getAppCatalogsTeamsAppsAppDefinitions
      parameters:
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/Search'
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Count'
        - name: $orderby
          in: query
          description: Order items by property values
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
        - name: $select
          in: query
          description: Select properties to be returned
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
        - name: $expand
          in: query
          description: Expand related entities
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
      responses:
        2XX:
          $ref: '#/components/responses/TeamsAppDefinitionCollectionResponse'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-pageable:
        nextLinkName: '@odata.nextLink'
        operationName: listMore
      x-ms-docs-operation-type: operation
    post:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Update teamsApp
      description: Update an app previously published to the Microsoft Teams app catalog. To update an app, the distributionMethod property for the app must be set to organization. This API specifically updates an app published to your organization's app catalog (the tenant app catalog).
      operationId: createAppCatalogsTeamsAppsAppDefinitions
      externalDocs:
        description: Find more info here
        url: https://learn.microsoft.com/graph/api/teamsapp-update?view=graph-rest-1.0
      requestBody:
        description: New navigation property
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamsAppDefinition'
            examples:
              TeamsAppDefinitionRequestExample:
                $ref: '#/components/examples/TeamsAppDefinitionRequestExample'
        required: true
      responses:
        2XX:
          description: Created navigation property.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamsAppDefinition'
              examples:
                TeamsAppDefinitionExample:
                  $ref: '#/components/examples/TeamsAppDefinitionExample'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-docs-operation-type: operation
    parameters:
      - name: teamsApp-id
        in: path
        description: The unique identifier of teamsApp
        required: true
        schema:
          type: string
        x-ms-docs-key-type: teamsApp
  /appCatalogs/teamsApps/{teamsApp-id}/appDefinitions/{teamsAppDefinition-id}:
    description: Provides operations to manage the appDefinitions property of the microsoft.graph.teamsApp entity.
    get:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Get appDefinitions from appCatalogs
      description: The details for each version of the app.
      operationId: getAppCatalogsTeamsAppsAppDefinitions1
      parameters:
        - name: $select
          in: query
          description: Select properties to be returned
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
        - name: $expand
          in: query
          description: Expand related entities
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
      responses:
        2XX:
          description: Retrieved navigation property
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamsAppDefinition'
              examples:
                TeamsAppDefinitionExample:
                  $ref: '#/components/examples/TeamsAppDefinitionExample'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-docs-operation-type: operation
    patch:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Publish teamsApp
      description: "Publish an app to the Microsoft Teams app catalog.\r\nSpecifically, this API publishes the app to your organization's catalog (the tenant app catalog);\r\nthe created resource has a distributionMethod property value of organization. The requiresReview property allows any user to submit an app for review by an administrator. Admins can approve or reject these apps via this API or the Microsoft Teams admin center."
      operationId: updateAppCatalogsTeamsAppsAppDefinitions
      externalDocs:
        description: Find more info here
        url: https://learn.microsoft.com/graph/api/teamsapp-publish?view=graph-rest-1.0
      requestBody:
        description: New navigation property values
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamsAppDefinition'
            examples:
              TeamsAppDefinitionRequestExample:
                $ref: '#/components/examples/TeamsAppDefinitionRequestExample'
        required: true
      responses:
        2XX:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamsAppDefinition'
              examples:
                TeamsAppDefinitionExample:
                  $ref: '#/components/examples/TeamsAppDefinitionExample'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-docs-operation-type: operation
    delete:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Delete App Definitions
      description: Performs DELETE operation on /appCatalogs/teamsApps/{teamsApp-id}/appDefinitions/{teamsAppDefinition-id}
      operationId: deleteAppCatalogsTeamsAppsAppDefinitions
      parameters:
        - name: If-Match
          in: header
          description: ETag
          schema:
            type: string
      responses:
        '204':
          description: Success
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: '204'
      x-ms-docs-operation-type: operation
    parameters:
      - name: teamsApp-id
        in: path
        description: The unique identifier of teamsApp
        required: true
        schema:
          type: string
        x-ms-docs-key-type: teamsApp
      - name: teamsAppDefinition-id
        in: path
        description: The unique identifier of teamsAppDefinition
        required: true
        schema:
          type: string
        x-ms-docs-key-type: teamsAppDefinition
  /appCatalogs/teamsApps/{teamsApp-id}/appDefinitions/{teamsAppDefinition-id}/bot:
    description: Provides operations to manage the bot property of the microsoft.graph.teamsAppDefinition entity.
    get:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Get teamworkBot
      description: Get the bot associated with a specific definition of the  TeamsApp.
      operationId: getAppCatalogsTeamsAppsAppDefinitionsBot
      externalDocs:
        description: Find more info here
        url: https://learn.microsoft.com/graph/api/teamworkbot-get?view=graph-rest-1.0
      parameters:
        - name: $select
          in: query
          description: Select properties to be returned
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
        - name: $expand
          in: query
          description: Expand related entities
          style: form
          explode: false
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
      responses:
        2XX:
          description: Retrieved navigation property
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamworkBot'
              examples:
                TeamworkBotExample:
                  $ref: '#/components/examples/TeamworkBotExample'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-docs-operation-type: operation
    patch:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Update Bot
      description: Performs PATCH operation on /appCatalogs/teamsApps/{teamsApp-id}/appDefinitions/{teamsAppDefinition-id}/bot
      operationId: updateAppCatalogsTeamsAppsAppDefinitionsBot
      requestBody:
        description: New navigation property values
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamworkBot'
            examples:
              TeamworkBotRequestExample:
                $ref: '#/components/examples/TeamworkBotRequestExample'
        required: true
      responses:
        2XX:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamworkBot'
              examples:
                TeamworkBotExample:
                  $ref: '#/components/examples/TeamworkBotExample'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
      x-ms-docs-operation-type: operation
    delete:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Delete Bot
      description: Performs DELETE operation on /appCatalogs/teamsApps/{teamsApp-id}/appDefinitions/{teamsAppDefinition-id}/bot
      operationId: deleteAppCatalogsTeamsAppsAppDefinitionsBot
      parameters:
        - name: If-Match
          in: header
          description: ETag
          schema:
            type: string
      responses:
        '204':
          description: Success
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: '204'
      x-ms-docs-operation-type: operation
    parameters:
      - name: teamsApp-id
        in: path
        description: The unique identifier of teamsApp
        required: true
        schema:
          type: string
        x-ms-docs-key-type: teamsApp
      - name: teamsAppDefinition-id
        in: path
        description: The unique identifier of teamsAppDefinition
        required: true
        schema:
          type: string
        x-ms-docs-key-type: teamsAppDefinition
  /appCatalogs/teamsApps/{teamsApp-id}/appDefinitions/$count:
    description: Provides operations to count the resources in the collection.
    get:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Get the number of the resource
      description: Performs GET operation on /appCatalogs/teamsApps/{teamsApp-id}/appDefinitions/$count
      operationId: countAppCatalogsTeamsAppsAppDefinitions
      parameters:
        - $ref: '#/components/parameters/Search'
        - $ref: '#/components/parameters/Filter'
      responses:
        2XX:
          $ref: '#/components/responses/ODataCountResponse'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
    parameters:
      - name: teamsApp-id
        in: path
        description: The unique identifier of teamsApp
        required: true
        schema:
          type: string
        x-ms-docs-key-type: teamsApp
  /appCatalogs/teamsApps/$count:
    description: Provides operations to count the resources in the collection.
    get:
      tags:
        - App Catalogs Teams Apps
      summary: Microsoft Graph Get the number of the resource
      description: Performs GET operation on /appCatalogs/teamsApps/$count
      operationId: countAppCatalogsTeamsApps
      parameters:
        - $ref: '#/components/parameters/Search'
        - $ref: '#/components/parameters/Filter'
      responses:
        2XX:
          $ref: '#/components/responses/ODataCountResponse'
        4XX:
          $ref: '#/components/responses/error'
        5XX:
          $ref: '#/components/responses/error'
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: 2XX
tags:
  - name: App Catalogs
    description: Operations for managing the Microsoft Teams app catalog
  - name: App Catalogs Teams Apps
    description: Operations for managing the Microsoft Teams app catalog
components:
  schemas:
    AppCatalogs:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - title: appCatalogs
          required:
            - '@odata.type'
          type: object
          properties:
            teamsApps:
              type: array
              items:
                $ref: '#/components/schemas/TeamsApp'
              x-ms-navigationProperty: true
            '@odata.type':
              type: string
      x-ms-discriminator-value: '#microsoft.graph.appCatalogs'
    TeamsApp:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - title: teamsApp
          required:
            - '@odata.type'
          type: object
          properties:
            displayName:
              type: string
              description: The name of the catalog app provided by the app developer in the Microsoft Teams zip app package.
              nullable: true
            distributionMethod:
              anyOf:
                - $ref: '#/components/schemas/TeamsAppDistributionMethod'
                - type: object
                  nullable: true
              description: The method of distribution for the app. Read-only.
            externalId:
              type: string
              description: The ID of the catalog provided by the app developer in the Microsoft Teams zip app package.
              nullable: true
            appDefinitions:
              type: array
              items:
                $ref: '#/components/schemas/TeamsAppDefinition'
              description: The details for each version of the app.
              x-ms-navigationProperty: true
            '@odata.type':
              type: string
      x-ms-discriminator-value: '#microsoft.graph.teamsApp'
    TeamsAppDefinition:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - title: teamsAppDefinition
          required:
            - '@odata.type'
          type: object
          properties:
            authorization:
              anyOf:
                - $ref: '#/components/schemas/TeamsAppAuthorization'
                - type: object
                  nullable: true
              description: Authorization requirements specified in the Teams app manifest.
            createdBy:
              anyOf:
                - $ref: '#/components/schemas/IdentitySet'
                - type: object
                  nullable: true
            description:
              type: string
              description: Verbose description of the application.
              nullable: true
            displayName:
              type: string
              description: The name of the app provided by the app developer.
              nullable: true
            lastModifiedDateTime:
              pattern: ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$
              type: string
              format: date-time
              nullable: true
            publishingState:
              anyOf:
                - $ref: '#/components/schemas/TeamsAppPublishingState'
                - type: object
                  nullable: true
              description: The published status of a specific version of a Teams app. The possible values are:submitted—The specific version of the Teams app was submitted and is under review.published—The request to publish the specific version of the Teams app was approved by the admin and the app is published.rejected—The admin rejected the request to publish the specific version of the Teams app.
            shortDescription:
              type: string
              description: Short description of the application.
              nullable: true
            teamsAppId:
              type: string
              description: The ID from the Teams app manifest.
              nullable: true
            version:
              type: string
              description: The version number of the application.
              nullable: true
            bot:
              anyOf:
                - $ref: '#/components/schemas/TeamworkBot'
                - type: object
                  nullable: true
              description: The details of the bot specified in the Teams app manifest.
              x-ms-navigationProperty: true
            '@odata.type':
              type: string
      x-ms-discriminator-value: '#microsoft.graph.teamsAppDefinition'
    TeamworkBot:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - title: teamworkBot
          required:
            - '@odata.type'
          type: object
          properties:
            '@odata.type':
              type: string
      x-ms-discriminator-value: '#microsoft.graph.teamworkBot'
    Entity:
      title: Entity
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the entity.
    ODataError:
      title: ODataError
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/MainError'
    MainError:
      title: MainError
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        target:
          type: string
          description: Target of the error
          nullable: true
        details:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetail'
        innerError:
          $ref: '#/components/schemas/InnerError'
    ErrorDetail:
      title: ErrorDetail
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
        message:
          type: string
        target:
          type: string
          nullable: true
    InnerError:
      title: InnerError
      type: object
      properties:
        request-id:
          type: string
        date:
          type: string
          format: date-time
        client-request-id:
          type: string
    ODataCountResponse:
      title: ODataCountResponse
      type: integer
      format: int32
      description: The count of entities
  parameters:
    Top:
      name: $top
      in: query
      description: Show only the first n items
      style: form
      explode: false
      schema:
        minimum: 0
        type: integer
      example: 50
    Skip:
      name: $skip
      in: query
      description: Skip the first n items
      style: form
      explode: false
      schema:
        minimum: 0
        type: integer
    Search:
      name: $search
      in: query
      description: Search items by search phrases
      style: form
      explode: false
      schema:
        type: string
    Filter:
      name: $filter
      in: query
      description: Filter items by property values
      style: form
      explode: false
      schema:
        type: string
    Count:
      name: $count
      in: query
      description: Include count of items
      style: form
      explode: false
      schema:
        type: boolean
  examples:
    AppCatalogsExample:
      value:
        id: 00000000-0000-0000-0000-000000000001
        teamsApps:
          - '@odata.type':

# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/microsoft-graph/refs/heads/main/openapi/appcatalogs-openapi-original.yml