openapi: 3.0.0 info: title: Bird FAQ 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: FAQ description: FAQ dataset management and answer prediction operations. paths: /api/v1/datasets: get: tags: - FAQ summary: List datasets description: 'Lists datasets containing answers and corresponding questions. You can choose to list only your own datasets, template datasets, or both. Results may be paginated. ' operationId: FAQ_ListDatasets security: - AccessKey: [] parameters: - name: listMode in: query required: false description: The list mode indicating which datasets to query. schema: type: string enum: - LIST_MODE_UNDEFINED - ALL - ONLY_TEMPLATE - ONLY_USER default: LIST_MODE_UNDEFINED - 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 of datasets. 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: - FAQ summary: Get dataset description: Retrieves the dataset for the given dataset ID. operationId: FAQ_GetDataset security: - AccessKey: [] parameters: - name: datasetId in: path required: true description: The unique ID for the dataset. 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-answer: post: tags: - FAQ summary: Predict answer description: 'Predicts an answer corresponding to a question which is possibly contained in the given phrase. The FAQ API uses machine learning to generalize from the questions and answers in the dataset to infer the answer. Requires the active model to be trained (usually ~1 minute after dataset creation or update). ' operationId: FAQ_PredictAnswer security: - AccessKey: [] parameters: - name: datasetId in: path required: true description: The unique ID that identifies the dataset for which a question should be answered. schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PredictAnswerRequest' responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/PredictAnswerResponse' '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: - FAQ summary: Get supported languages description: Lists the languages supported by the FAQ API. operationId: FAQ_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: Error: type: object properties: code: type: integer message: type: string details: type: array items: type: object additionalProperties: true PredictAnswerResponse: type: object description: 'A response that contains the answer and its related metadata. If the FAQ API could not find a corresponding answer, the answer field will not be populated. ' properties: answer: $ref: '#/components/schemas/Answer' description: 'The answer that is predicted for the given phrase. Not populated if no matching answer was found. ' answerPredicted: type: boolean example: false description: 'Indicates if an answer was predicted. If false, the phrase could not be matched with an answer. ' Answer: type: object description: An answer which corresponds to one or more example questions in the dataset. properties: text: type: string example: Messagebird was founded by Robert Vis in 2011. description: The text containing the answer. url: type: string example: https://messagebird.com/en/about description: The URL with additional information for this answer. title: type: string example: MessageBird Founder description: The short title representing the answer. 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 supported by the FAQ API. 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. PredictAnswerRequest: type: object description: A request for predicting an answer from a phrase and a dataset ID. required: - phrase properties: phrase: type: string example: Who founded MessageBird? description: The phrase that might contain a question to be answered. Dataset: type: object description: A collection of answers with matching questions. properties: datasetId: type: string format: uuid example: dde4eeae-7652-4bc8-8be1-1cd6ac898dc7 description: The unique ID for the dataset. readOnly: true name: type: string example: MessageBird FAQ 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 isTemplate: type: boolean example: false description: Whether this dataset is a template dataset or not. readOnly: true description: type: string example: This dataset has a list of frequently asked questions about MessageBird. 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). readOnly: true ListDatasetsResponse: type: object description: A response containing the FAQ 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 for the maximum number of datasets returned. nextCursor: type: string example: VGhpcyBpcyBub3QgYSByZWFsIGN1cnNvcg== description: The cursor to query the next paginated collection of results. 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