Microsoft 365 App Catalogs.teams App API
The appCatalogs.teamsApp API from Microsoft 365 — 7 operation(s) for appcatalogs.teamsapp.
The appCatalogs.teamsApp API from Microsoft 365 — 7 operation(s) for appcatalogs.teamsapp.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/microsoft-365:microsoft-365-appcatalogs-teamsapp-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 3.2.0
info:
title: App Catalogs.teams App API
version: v1.0
servers:
- url: https://graph.microsoft.com/v1.0/
description: Core
security:
- azureaadv2: []
tags:
- name: appCatalogs.teamsApp
paths:
/appCatalogs/teamsApps:
get:
tags:
- appCatalogs.teamsApp
summary: 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.
externalDocs:
description: Find more info here
url: https://learn.microsoft.com/graph/api/appcatalogs-list-teamsapps?view=graph-rest-1.0
operationId: appCatalog_ListTeamsApp
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/microsoft.graph.teamsAppCollectionResponse'
default:
$ref: '#/components/responses/error'
x-ms-pageable:
nextLinkName: '@odata.nextLink'
operationName: listMore
x-ms-docs-operation-type: operation
post:
tags:
- appCatalogs.teamsApp
summary: Publish teamsApp
description: 'Publish an app to the Microsoft Teams app catalog.
Specifically, this API publishes the app to your organization''s catalog (the tenant app catalog);
the 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.'
externalDocs:
description: Find more info here
url: https://learn.microsoft.com/graph/api/teamsapp-publish?view=graph-rest-1.0
operationId: appCatalog_CreateTeamsApp
requestBody:
description: New navigation property
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamsApp'
required: true
responses:
2XX:
description: Created navigation property.
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamsApp'
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
/appCatalogs/teamsApps/{teamsApp-id}:
get:
tags:
- appCatalogs.teamsApp
summary: Get teamsApps from appCatalogs
operationId: appCatalog_GetTeamsApp
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
- 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/microsoft.graph.teamsApp'
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
patch:
tags:
- appCatalogs.teamsApp
summary: Update the navigation property teamsApps in appCatalogs
operationId: appCatalog_UpdateTeamsApp
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
requestBody:
description: New navigation property values
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamsApp'
required: true
responses:
2XX:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamsApp'
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
delete:
tags:
- appCatalogs.teamsApp
summary: 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.
externalDocs:
description: Find more info here
url: https://learn.microsoft.com/graph/api/teamsapp-delete?view=graph-rest-1.0
operationId: appCatalog_DeleteTeamsApp
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
- name: If-Match
in: header
description: ETag
style: simple
schema:
type: string
responses:
2XX:
description: Success
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
/appCatalogs/teamsApps/{teamsApp-id}/appDefinitions:
get:
tags:
- appCatalogs.teamsApp
summary: Get appDefinitions from appCatalogs
description: The details for each version of the app.
operationId: appCatalog.teamsApp_ListAppDefinition
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
- $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/microsoft.graph.teamsAppDefinitionCollectionResponse'
default:
$ref: '#/components/responses/error'
x-ms-pageable:
nextLinkName: '@odata.nextLink'
operationName: listMore
x-ms-docs-operation-type: operation
post:
tags:
- appCatalogs.teamsApp
summary: 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).
externalDocs:
description: Find more info here
url: https://learn.microsoft.com/graph/api/teamsapp-update?view=graph-rest-1.0
operationId: appCatalog.teamsApp_CreateAppDefinition
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
requestBody:
description: New navigation property
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamsAppDefinition'
required: true
responses:
2XX:
description: Created navigation property.
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamsAppDefinition'
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
/appCatalogs/teamsApps/{teamsApp-id}/appDefinitions/{teamsAppDefinition-id}:
get:
tags:
- appCatalogs.teamsApp
summary: Get appDefinitions from appCatalogs
description: The details for each version of the app.
operationId: appCatalog.teamsApp_GetAppDefinition
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
- name: teamsAppDefinition-id
in: path
description: The unique identifier of teamsAppDefinition
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsAppDefinition
- 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/microsoft.graph.teamsAppDefinition'
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
patch:
tags:
- appCatalogs.teamsApp
summary: Publish teamsApp
description: 'Publish an app to the Microsoft Teams app catalog.
Specifically, this API publishes the app to your organization''s catalog (the tenant app catalog);
the 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.'
externalDocs:
description: Find more info here
url: https://learn.microsoft.com/graph/api/teamsapp-publish?view=graph-rest-1.0
operationId: appCatalog.teamsApp_UpdateAppDefinition
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
- name: teamsAppDefinition-id
in: path
description: The unique identifier of teamsAppDefinition
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsAppDefinition
requestBody:
description: New navigation property values
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamsAppDefinition'
required: true
responses:
2XX:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamsAppDefinition'
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
delete:
tags:
- appCatalogs.teamsApp
summary: Delete navigation property appDefinitions for appCatalogs
operationId: appCatalog.teamsApp_DeleteAppDefinition
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
- name: teamsAppDefinition-id
in: path
description: The unique identifier of teamsAppDefinition
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsAppDefinition
- name: If-Match
in: header
description: ETag
style: simple
schema:
type: string
responses:
2XX:
description: Success
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
/appCatalogs/teamsApps/{teamsApp-id}/appDefinitions/{teamsAppDefinition-id}/bot:
get:
tags:
- appCatalogs.teamsApp
summary: Get teamworkBot
description: Get the bot associated with a specific definition of the TeamsApp.
externalDocs:
description: Find more info here
url: https://learn.microsoft.com/graph/api/teamworkbot-get?view=graph-rest-1.0
operationId: appCatalog.teamsApp.appDefinition_GetBot
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
- name: teamsAppDefinition-id
in: path
description: The unique identifier of teamsAppDefinition
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsAppDefinition
- 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/microsoft.graph.teamworkBot'
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
patch:
tags:
- appCatalogs.teamsApp
summary: Update the navigation property bot in appCatalogs
operationId: appCatalog.teamsApp.appDefinition_UpdateBot
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
- name: teamsAppDefinition-id
in: path
description: The unique identifier of teamsAppDefinition
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsAppDefinition
requestBody:
description: New navigation property values
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamworkBot'
required: true
responses:
2XX:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamworkBot'
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
delete:
tags:
- appCatalogs.teamsApp
summary: Delete navigation property bot for appCatalogs
operationId: appCatalog.teamsApp.appDefinition_DeleteBot
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
- name: teamsAppDefinition-id
in: path
description: The unique identifier of teamsAppDefinition
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsAppDefinition
- name: If-Match
in: header
description: ETag
style: simple
schema:
type: string
responses:
2XX:
description: Success
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
/appCatalogs/teamsApps/{teamsApp-id}/appDefinitions/$count:
get:
tags:
- appCatalogs.teamsApp
summary: Get the number of the resource
operationId: appCatalog.teamsApp.appDefinition_GetCount
parameters:
- name: teamsApp-id
in: path
description: The unique identifier of teamsApp
required: true
style: simple
schema:
type: string
x-ms-docs-key-type: teamsApp
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/filter'
responses:
2XX:
$ref: '#/components/responses/ODataCountResponse'
default:
$ref: '#/components/responses/error'
/appCatalogs/teamsApps/$count:
get:
tags:
- appCatalogs.teamsApp
summary: Get the number of the resource
operationId: appCatalog.teamsApp_GetCount
parameters:
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/filter'
responses:
2XX:
$ref: '#/components/responses/ODataCountResponse'
default:
$ref: '#/components/responses/error'
components:
responses:
microsoft.graph.teamsAppDefinitionCollectionResponse:
description: Retrieved collection
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamsAppDefinitionCollectionResponse'
microsoft.graph.teamsAppCollectionResponse:
description: Retrieved collection
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.teamsAppCollectionResponse'
ODataCountResponse:
description: The count of the resource
content:
text/plain:
schema:
$ref: '#/components/schemas/ODataCountResponse'
error:
description: error
content:
application/json:
schema:
$ref: '#/components/schemas/microsoft.graph.ODataErrors.ODataError'
schemas:
microsoft.graph.identitySet:
title: identitySet
type: object
properties:
application:
$ref: '#/components/schemas/microsoft.graph.identity'
device:
$ref: '#/components/schemas/microsoft.graph.identity'
user:
$ref: '#/components/schemas/microsoft.graph.identity'
additionalProperties:
type: object
microsoft.graph.identity:
title: identity
type: object
properties:
displayName:
type:
- string
- 'null'
description: The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.
id:
type:
- string
- 'null'
description: Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.
additionalProperties:
type: object
microsoft.graph.teamsAppDefinitionCollectionResponse:
title: Collection of teamsAppDefinition
type: object
properties:
value:
type: array
items:
$ref: '#/components/schemas/microsoft.graph.teamsAppDefinition'
'@odata.nextLink':
type:
- string
- 'null'
additionalProperties:
type: object
microsoft.graph.ODataErrors.MainError:
required:
- code
- message
type: object
properties:
code:
type: string
message:
type: string
x-ms-primary-error-message: true
target:
type:
- string
- 'null'
details:
type: array
items:
$ref: '#/components/schemas/microsoft.graph.ODataErrors.ErrorDetails'
innerError:
$ref: '#/components/schemas/microsoft.graph.ODataErrors.InnerError'
additionalProperties:
type: object
microsoft.graph.ODataErrors.ODataError:
required:
- error
type: object
properties:
error:
$ref: '#/components/schemas/microsoft.graph.ODataErrors.MainError'
additionalProperties:
type: object
microsoft.graph.teamsAppPermissionSet:
title: teamsAppPermissionSet
type: object
properties:
resourceSpecificPermissions:
type: array
items:
$ref: '#/components/schemas/microsoft.graph.teamsAppResourceSpecificPermission'
description: A collection of resource-specific permissions.
additionalProperties:
type: object
microsoft.graph.ODataErrors.ErrorDetails:
required:
- code
- message
type: object
properties:
code:
type: string
message:
type: string
target:
type:
- string
- 'null'
additionalProperties:
type: object
microsoft.graph.teamsAppResourceSpecificPermission:
title: teamsAppResourceSpecificPermission
type: object
properties:
permissionType:
$ref: '#/components/schemas/microsoft.graph.teamsAppResourceSpecificPermissionType'
permissionValue:
type:
- string
- 'null'
description: The name of the resource-specific permission.
additionalProperties:
type: object
microsoft.graph.ODataErrors.InnerError:
type: object
additionalProperties:
type: object
description: The structure of this object is service-specific
microsoft.graph.teamsAppCollectionResponse:
title: Collection of teamsApp
type: object
properties:
value:
type: array
items:
$ref: '#/components/schemas/microsoft.graph.teamsApp'
'@odata.nextLink':
type:
- string
- 'null'
additionalProperties:
type: object
microsoft.graph.teamsApp:
allOf:
- $ref: '#/components/schemas/microsoft.graph.entity'
- title: teamsApp
type: object
properties:
displayName:
type:
- string
- 'null'
description: The name of the catalog app provided by the app developer in the Microsoft Teams zip app package.
distributionMethod:
$ref: '#/components/schemas/microsoft.graph.teamsAppDistributionMethod'
externalId:
type:
- string
- 'null'
description: The ID of the catalog provided by the app developer in the Microsoft Teams zip app package.
appDefinitions:
type: array
items:
$ref: '#/components/schemas/microsoft.graph.teamsAppDefinition'
description: The details for each version of the app.
x-ms-navigationProperty: true
additionalProperties:
type: object
microsoft.graph.teamsAppResourceSpecificPermissionType:
title: teamsAppResourceSpecificPermissionType
enum:
- delegated
- application
- unknownFutureValue
type: string
microsoft.graph.teamworkBot:
allOf:
- $ref: '#/components/schemas/microsoft.graph.entity'
- title: teamworkBot
type: object
additionalProperties:
type: object
microsoft.graph.teamsAppDefinition:
allOf:
- $ref: '#/components/schemas/microsoft.graph.entity'
- title: teamsAppDefinition
type: object
properties:
authorization:
$ref: '#/components/schemas/microsoft.graph.teamsAppAuthorization'
createdBy:
$ref: '#/components/schemas/microsoft.graph.identitySet'
description:
type:
- string
- 'null'
description: Verbose description of the application.
displayName:
type:
- string
- 'null'
description: The name of the app provided by the app developer.
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
- 'null'
format: date-time
publishingState:
$ref: '#/components/schemas/microsoft.graph.teamsAppPublishingState'
shortDescription:
type:
- string
- 'null'
description: Short description of the application.
teamsAppId:
type:
- string
- 'null'
description: The ID from the Teams app manifest.
version:
type:
- string
- 'null'
description: The version number of the application.
bot:
$ref: '#/components/schemas/microsoft.graph.teamworkBot'
additionalProperties:
type: object
microsoft.graph.teamsAppPublishingState:
title: teamsAppPublishingState
enum:
- submitted
- rejected
- published
- unknownFutureValue
type: string
microsoft.graph.teamsAppDistributionMethod:
title: teamsAppDistributionMethod
enum:
- store
- organization
- sideloaded
- unknownFutureValue
type: string
ODataCountResponse:
type: integer
format: int32
microsoft.graph.entity:
title: entity
type: object
properties:
id:
type: string
description: The unique identifier for an entity. Read-only.
additionalProperties:
type: object
microsoft.graph.teamsAppAuthorization:
title: teamsAppAuthorization
type: object
properties:
clientAppId:
type:
- string
- 'null'
description: The registration ID of the Microsoft Entra app ID associated with the teamsApp.
requiredPermissionSet:
$ref: '#/components/schemas/microsoft.graph.teamsAppPermissionSet'
additionalProperties:
type: object
parameters:
top:
name: $top
in: query
description: Show only the first n items
style: form
explode: false
schema:
minimum: 0
type: integer
example: 50
search:
name: $search
in: query
description: Search items by search phrases
style: form
explode: false
schema:
type: string
skip:
name: $skip
in: query
description: Skip the first n items
style: form
explode: false
schema:
minimum: 0
type: integer
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
securitySchemes:
azureaadv2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
tokenUrl: https://login.microsoftonline.com/common/oauth2/v2.0/token
scopes: {}