Bot Connector REST API

Send and receive messages across multiple channels including Teams, Slack, and web chat.

OpenAPI Specification

microsoft-bot-framework-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Microsoft Bot Framework Connector REST API
  description: >-
    Minimal OpenAPI definition for the Bot Framework Connector REST API used
    by bots to send and receive activities, manage conversations, members,
    and attachments.
  version: v3
  x-generated-from: https://learn.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-api-reference
  x-generated-by: claude-crawl-2026-05-08
servers:
  - url: https://api.botframework.com
    description: Bot Framework public service URL
  - url: https://smba.trafficmanager.net/{channel}
    description: Channel-specific service URL (Teams, etc.)
    variables:
      channel:
        default: teams
security:
  - bearerAuth: []
tags:
  - name: Conversations
  - name: Activities
  - name: Members
  - name: Attachments
paths:
  /v3/conversations:
    get:
      tags: [Conversations]
      summary: Get Conversations
      operationId: getConversations
      parameters:
        - in: query
          name: continuationToken
          schema: { type: string }
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
    post:
      tags: [Conversations]
      summary: Create Conversation
      operationId: createConversation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: OK
        '201':
          description: Created
  /v3/conversations/{conversationId}/activities:
    parameters:
      - $ref: '#/components/parameters/ConversationId'
    post:
      tags: [Activities]
      summary: Send To Conversation
      operationId: sendToConversation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: OK
  /v3/conversations/{conversationId}/activities/history:
    parameters:
      - $ref: '#/components/parameters/ConversationId'
    post:
      tags: [Activities]
      summary: Send Conversation History
      operationId: sendConversationHistory
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: OK
  /v3/conversations/{conversationId}/activities/{activityId}:
    parameters:
      - $ref: '#/components/parameters/ConversationId'
      - $ref: '#/components/parameters/ActivityId'
    post:
      tags: [Activities]
      summary: Reply To Activity
      operationId: replyToActivity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: OK
    put:
      tags: [Activities]
      summary: Update Activity
      operationId: updateActivity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: OK
    delete:
      tags: [Activities]
      summary: Delete Activity
      operationId: deleteActivity
      responses:
        '200':
          description: OK
  /v3/conversations/{conversationId}/activities/{activityId}/members:
    parameters:
      - $ref: '#/components/parameters/ConversationId'
      - $ref: '#/components/parameters/ActivityId'
    get:
      tags: [Members]
      summary: Get Activity Members
      operationId: getActivityMembers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
  /v3/conversations/{conversationId}/members:
    parameters:
      - $ref: '#/components/parameters/ConversationId'
    get:
      tags: [Members]
      summary: Get Conversation Members
      operationId: getConversationMembers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
  /v3/conversations/{conversationId}/pagedmembers:
    parameters:
      - $ref: '#/components/parameters/ConversationId'
      - in: query
        name: pageSize
        schema: { type: integer }
      - in: query
        name: continuationToken
        schema: { type: string }
    get:
      tags: [Members]
      summary: Get Conversation Paged Members
      operationId: getConversationPagedMembers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /v3/conversations/{conversationId}/members/{memberId}:
    parameters:
      - $ref: '#/components/parameters/ConversationId'
      - in: path
        name: memberId
        required: true
        schema: { type: string }
    get:
      tags: [Members]
      summary: Get Conversation Member
      operationId: getConversationMember
      responses:
        '200':
          description: OK
    delete:
      tags: [Members]
      summary: Delete Conversation Member
      operationId: deleteConversationMember
      responses:
        '200':
          description: OK
  /v3/conversations/{conversationId}/attachments:
    parameters:
      - $ref: '#/components/parameters/ConversationId'
    post:
      tags: [Attachments]
      summary: Upload Attachment
      operationId: uploadAttachment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: OK
  /v3/attachments/{attachmentId}:
    parameters:
      - in: path
        name: attachmentId
        required: true
        schema: { type: string }
    get:
      tags: [Attachments]
      summary: Get Attachment Info
      operationId: getAttachmentInfo
      responses:
        '200':
          description: OK
  /v3/attachments/{attachmentId}/views/{viewId}:
    parameters:
      - in: path
        name: attachmentId
        required: true
        schema: { type: string }
      - in: path
        name: viewId
        required: true
        schema: { type: string }
    get:
      tags: [Attachments]
      summary: Get Attachment
      operationId: getAttachment
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  parameters:
    ConversationId:
      in: path
      name: conversationId
      required: true
      schema: { type: string }
    ActivityId:
      in: path
      name: activityId
      required: true
      schema: { type: string }
  schemas:
    GenericObject:
      type: object
      additionalProperties: true
    GenericList:
      type: array
      items:
        $ref: '#/components/schemas/GenericObject'