Bird Intent API

Intent recognition and dataset management operations.

OpenAPI Specification

bird-intent-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Bird FAQ Intent API
  description: 'The MessageBird FAQ API enables answering questions from an FAQ dataset. Datasets can be created and managed using the dataset section of the MessageBird Dashboard. FAQ datasets are created by giving multiple variations of questions that correspond to an answer. The API applies machine learning to generalize from the questions and answers so that unseen questions are automatically mapped to the right answer.

    '
  version: 1.0.0
  contact:
    name: Bird Support
    url: https://bird.com/en-us/contact
servers:
- url: https://faq.messagebird.com
security:
- AccessKey: []
tags:
- name: Intent
  description: Intent recognition and dataset management operations.
paths:
  /api/v1/datasets:
    get:
      tags:
      - Intent
      summary: List datasets
      description: 'Lists datasets containing intents and corresponding phrases. You can choose to list only your own datasets, template datasets, or both. Results are paginated.

        '
      operationId: Intent_ListDatasets
      security:
      - AccessKey: []
      parameters:
      - name: listMode
        in: query
        required: false
        description: List mode indicating which datasets to query.
        schema:
          type: string
          enum:
          - ALL
          - ONLY_TEMPLATE
          - ONLY_USER
          default: ALL
      - name: limit
        in: query
        required: false
        description: The maximum number of datasets to return.
        schema:
          type: integer
          default: 20
      - name: cursor
        in: query
        required: false
        description: 'The cursor to view the next paginated collection as provided by nextCursor in the ListDatasetsResponse.

          '
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDatasetsResponse'
        '401':
          description: Returned when the user is not authorized.
        '404':
          description: Returned when the resource does not exist.
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/datasets/{datasetId}:
    get:
      tags:
      - Intent
      summary: Get dataset
      description: 'Retrieves the dataset for the given dataset ID. Only displays metadata corresponding to the dataset.

        '
      operationId: Intent_GetDataset
      security:
      - AccessKey: []
      parameters:
      - name: datasetId
        in: path
        required: true
        description: 'Unique ID for the dataset. Obtainable from the dashboard or by listing datasets.

          '
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '401':
          description: Returned when the user is not authorized.
        '404':
          description: Returned when the resource does not exist.
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/datasets/{datasetId}/predict:
    post:
      tags:
      - Intent
      summary: Predict intent
      description: 'Predicts an intent for a phrase given a dataset ID. The Intent API uses machine learning to infer the intent of the given phrase. Requires the active model for the dataset to be trained (usually takes ~1 minute after dataset creation or update).

        '
      operationId: Intent_PredictIntent
      security:
      - AccessKey: []
      parameters:
      - name: datasetId
        in: path
        required: true
        description: The unique ID that identifies the dataset for prediction.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PredictIntentRequest'
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PredictIntentResponse'
        '401':
          description: Returned when the user is not authorized.
        '404':
          description: Returned when the resource does not exist.
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/supported-languages:
    get:
      tags:
      - Intent
      summary: Get supported languages
      description: Lists the languages supported by the Intent API.
      operationId: Intent_ListSupportedLanguages
      security:
      - AccessKey: []
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LanguageList'
        '401':
          description: Returned when the user is not authorized.
        '404':
          description: Returned when the resource does not exist.
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    PredictIntentResponse:
      type: object
      description: A response for predicting an intent from a phrase and a dataset ID.
      properties:
        intent:
          type: string
          example: order
          description: The intent that is predicted for the given phrase.
        intentPredicted:
          type: boolean
          example: true
          description: 'Boolean indicating an intent was predicted. If false the phrase could not be matched with an intent.

            '
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        details:
          type: array
          items:
            type: object
            additionalProperties: true
    LanguageList:
      type: object
      description: List of recognized languages.
      properties:
        languages:
          type: array
          items:
            $ref: '#/components/schemas/Language'
          description: The collection of languages.
    Language:
      type: object
      description: Language that was detected from the given phrase.
      properties:
        iso6393Code:
          type: string
          example: nld
          description: The ISO-639-3 code of the language.
        name:
          type: string
          example: Dutch
          description: The English name of the language.
        languageCode:
          type: string
          example: NLD
          description: The ISO639-3 language code enum value.
    Dataset:
      type: object
      description: 'A collection of phrases with the corresponding intents. There can be multiple matching phrases per intent.

        '
      properties:
        datasetId:
          type: string
          format: uuid
          example: dde4eeae-7652-4bc8-8be1-1cd6ac898dc7
          description: The unique ID for the dataset.
          readOnly: true
        intents:
          type: array
          items:
            type: string
          example:
          - order
          - reservation
          description: The collection of intents that were added to this dataset.
        isTemplate:
          type: boolean
          example: false
          description: Describes if this dataset is a template dataset or not.
          readOnly: true
        name:
          type: string
          example: My awesome dataset
          description: The name of the dataset.
        createdAt:
          type: string
          format: date-time
          example: '2021-08-24T12:04:32Z'
          description: The timestamp of dataset creation (ISO-8601).
          readOnly: true
        updatedAt:
          type: string
          format: date-time
          example: '2021-08-24T12:04:32Z'
          description: The timestamp of last update (ISO-8601).
          readOnly: true
        description:
          type: string
          example: This dataset is clearly some awesome dataset.
          description: The optional description of the dataset.
        lastTrainedAt:
          type: string
          format: date-time
          example: '2021-08-24T12:04:32Z'
          description: 'The timestamp of last model that completed training (ISO-8601). Not populated if no model has been trained yet.

            '
          readOnly: true
    ListDatasetsResponse:
      type: object
      description: A response containing the Intent datasets that were queried.
      properties:
        datasets:
          type: array
          items:
            $ref: '#/components/schemas/Dataset'
          description: The paginated collection of datasets.
        limit:
          type: integer
          example: 20
          description: The effective limit of the maximum number of datasets returned.
        nextCursor:
          type: string
          example: VGhpcyBpcyBub3QgYSByZWFsIGN1cnNvcg==
          description: The cursor to obtain the next paginated collection of datasets.
    PredictIntentRequest:
      type: object
      description: A request for predicting an intent from a phrase and a dataset ID.
      required:
      - phrase
      properties:
        phrase:
          type: string
          example: I'd like to order something
          description: The phrase that might contain an intent.
  securitySchemes:
    AccessKey:
      type: apiKey
      name: Authorization
      in: header
      description: 'Use the word "AccessKey" followed by your API Key. Example: "AccessKey w223tVQTcLO4ufBTuJxjvzwJ22"

        '
externalDocs:
  description: Find our official documentation in the MessageBird Docs
  url: https://developers.messagebird.com/api