Structify teams API

The teams API from Structify — 2 operation(s) for teams.

OpenAPI Specification

structify-teams-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  contact:
    email: team@structify.ai
    name: Structify Team
  description: Every enterprise's data team.
  license:
    name: Discuss directly with founders for license.
    url: https://structify.ai
  title: Structify account teams API
  version: 0.1.0
servers:
- description: Production server
  url: https://api.structify.ai
- description: Local server
  url: http://localhost:8080
security:
- api_key: []
- session_token: []
tags:
- name: teams
paths:
  /teams/files/{token}:
    get:
      operationId: download_teams_file
      parameters:
      - description: Signed download token for a Teams file.
        in: path
        name: token
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: Download Teams file.
        '404':
          description: File not found or token expired.
      tags:
      - teams
  /teams/messages:
    post:
      description: 'This endpoint receives activities from Teams when users message the bot.

        It handles message activities and invoke activities (for Adaptive Card actions).'
      operationId: teams_messages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamsActivity'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamsEventResponse'
          description: Activity processed successfully
      summary: Handles Microsoft Teams Bot Framework webhook messages
      tags:
      - teams
components:
  schemas:
    TeamsEventResponse:
      properties:
        message:
          nullable: true
          type: string
        ok:
          type: boolean
      required:
      - ok
      type: object
    TeamsConversationAccount:
      properties:
        conversationType:
          nullable: true
          type: string
        id:
          type: string
        isGroup:
          nullable: true
          type: boolean
        name:
          nullable: true
          type: string
        tenantId:
          nullable: true
          type: string
      required:
      - id
      type: object
    TeamsActivityType:
      enum:
      - message
      - invoke
      - conversationUpdate
      - other
      type: string
    TeamsActivity:
      properties:
        attachments:
          items:
            $ref: '#/components/schemas/TeamsAttachment'
          nullable: true
          type: array
        channelId:
          nullable: true
          type: string
        conversation:
          allOf:
          - $ref: '#/components/schemas/TeamsConversationAccount'
          nullable: true
        from:
          allOf:
          - $ref: '#/components/schemas/TeamsChannelAccount'
          nullable: true
        id:
          nullable: true
          type: string
        membersAdded:
          items:
            $ref: '#/components/schemas/TeamsChannelAccount'
          nullable: true
          type: array
        recipient:
          allOf:
          - $ref: '#/components/schemas/TeamsChannelAccount'
          nullable: true
        replyToId:
          nullable: true
          type: string
        serviceUrl:
          nullable: true
          type: string
        text:
          nullable: true
          type: string
        timestamp:
          nullable: true
          type: string
        type:
          $ref: '#/components/schemas/TeamsActivityType'
        value:
          nullable: true
      required:
      - type
      type: object
    TeamsChannelAccount:
      properties:
        aadObjectId:
          nullable: true
          type: string
        id:
          type: string
        name:
          nullable: true
          type: string
      required:
      - id
      type: object
    TeamsAttachment:
      properties:
        content:
          nullable: true
        contentType:
          type: string
        contentUrl:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
      required:
      - contentType
      type: object
  securitySchemes:
    api_key:
      in: header
      name: api_key
      type: apiKey
    session_token:
      scheme: bearer
      type: http