{
  "service": "otter_ai",
  "displayName": "Otter.ai",
  "categories": [
    "AI",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "otter_api_key",
      "description": "Otter.ai API key used as a bearer token. Create keys from Otter.ai Integrations > Developer after signing in."
    }
  ],
  "homepageUrl": "https://otter.ai",
  "actions": [
    {
      "id": "otter_ai.get_conversation",
      "service": "otter_ai",
      "name": "get_conversation",
      "description": "Get one Otter.ai conversation by ID with requested related data.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "conversationId": {
            "type": "string",
            "minLength": 1,
            "description": "The Otter.ai conversation ID."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "action_items",
                "insights",
                "outline",
                "transcript",
                "all"
              ],
              "description": "A related conversation data family."
            },
            "description": "Related Otter.ai conversation data to include.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "conversationId",
          "include"
        ],
        "description": "Input parameters for getting an Otter.ai conversation."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "conversation": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Otter.ai conversation ID as a string."
                  },
                  {
                    "type": "integer",
                    "description": "The Otter.ai conversation ID as a number."
                  }
                ],
                "description": "The Otter.ai conversation ID."
              },
              "title": {
                "type": "string",
                "description": "The conversation title."
              },
              "url": {
                "type": "string",
                "description": "The Otter.ai web URL for the conversation.",
                "format": "uri"
              },
              "owner": {
                "type": "object",
                "properties": {
                  "id": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "The Otter.ai user ID as a string."
                      },
                      {
                        "type": "integer",
                        "description": "The Otter.ai user ID as a number."
                      }
                    ],
                    "description": "The Otter.ai user ID."
                  },
                  "name": {
                    "type": "string",
                    "description": "The display name of the user."
                  },
                  "first_name": {
                    "type": "string",
                    "description": "The first name of the user."
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The last name of the user."
                  },
                  "email": {
                    "type": "string",
                    "description": "The email address of the user.",
                    "format": "email"
                  }
                },
                "additionalProperties": true,
                "description": "An Otter.ai user object."
              },
              "created_at": {
                "type": "string",
                "description": "The conversation creation timestamp."
              },
              "process_status": {
                "type": "object",
                "properties": {
                  "abstract_summary": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "Processing status for the abstract summary."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "action_item": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "Processing status for action items."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "outline": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "Processing status for the outline."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": true,
                "description": "Otter.ai processing status fields."
              }
            },
            "additionalProperties": true,
            "description": "An Otter.ai conversation object."
          },
          "relationships": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Related Otter.ai resources requested with include."
          },
          "meta": {
            "type": "object",
            "properties": {
              "retrieved_at": {
                "type": "string",
                "description": "The timestamp when Otter.ai generated the response metadata."
              },
              "has_more": {
                "type": "boolean",
                "description": "Whether Otter.ai has another page of results."
              },
              "next_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Cursor to pass into the next request, when one is available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned by Otter.ai."
          }
        },
        "additionalProperties": false,
        "description": "The Otter.ai conversation response."
      }
    },
    {
      "id": "otter_ai.get_conversation_audio",
      "service": "otter_ai",
      "name": "get_conversation_audio",
      "description": "Get the temporary Otter.ai audio download URL for a conversation.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "conversationId": {
            "type": "string",
            "minLength": 1,
            "description": "The Otter.ai conversation ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "conversationId"
        ],
        "description": "Input parameters for getting Otter.ai conversation audio."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "audioUrl": {
            "type": "string",
            "description": "The temporary URL for downloading the conversation audio.",
            "format": "uri"
          },
          "audio": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "description": "The URL for downloading the conversation audio.",
                "format": "uri"
              }
            },
            "additionalProperties": true,
            "description": "Otter.ai conversation audio response data."
          },
          "meta": {
            "type": "object",
            "properties": {
              "retrieved_at": {
                "type": "string",
                "description": "The timestamp when Otter.ai generated the response metadata."
              },
              "has_more": {
                "type": "boolean",
                "description": "Whether Otter.ai has another page of results."
              },
              "next_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Cursor to pass into the next request, when one is available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned by Otter.ai."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Otter.ai audio response."
          }
        },
        "additionalProperties": false,
        "description": "The Otter.ai conversation audio response."
      }
    },
    {
      "id": "otter_ai.get_workspace",
      "service": "otter_ai",
      "name": "get_workspace",
      "description": "Get the current Otter.ai workspace for the connected API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "workspace": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Otter.ai workspace ID as a string."
                  },
                  {
                    "type": "integer",
                    "description": "The Otter.ai workspace ID as a number."
                  }
                ],
                "description": "The Otter.ai workspace ID."
              },
              "name": {
                "type": "string",
                "description": "The workspace name."
              },
              "owner": {
                "type": "object",
                "properties": {
                  "id": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "The Otter.ai user ID as a string."
                      },
                      {
                        "type": "integer",
                        "description": "The Otter.ai user ID as a number."
                      }
                    ],
                    "description": "The Otter.ai user ID."
                  },
                  "name": {
                    "type": "string",
                    "description": "The display name of the user."
                  },
                  "first_name": {
                    "type": "string",
                    "description": "The first name of the user."
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The last name of the user."
                  },
                  "email": {
                    "type": "string",
                    "description": "The email address of the user.",
                    "format": "email"
                  }
                },
                "additionalProperties": true,
                "description": "An Otter.ai user object."
              },
              "member_count": {
                "type": "integer",
                "description": "The number of members in the workspace."
              },
              "handle": {
                "type": "string",
                "description": "The workspace handle."
              },
              "type": {
                "type": "string",
                "description": "The workspace type."
              }
            },
            "additionalProperties": true,
            "description": "An Otter.ai workspace object."
          },
          "meta": {
            "type": "object",
            "properties": {
              "retrieved_at": {
                "type": "string",
                "description": "The timestamp when Otter.ai generated the response metadata."
              },
              "has_more": {
                "type": "boolean",
                "description": "Whether Otter.ai has another page of results."
              },
              "next_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Cursor to pass into the next request, when one is available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned by Otter.ai."
          }
        },
        "additionalProperties": false,
        "description": "The current Otter.ai workspace response."
      }
    },
    {
      "id": "otter_ai.list_channel_members",
      "service": "otter_ai",
      "name": "list_channel_members",
      "description": "List members of an Otter.ai channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channelId": {
            "type": "string",
            "minLength": 1,
            "description": "The Otter.ai channel ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "channelId"
        ],
        "description": "Input parameters for listing Otter.ai channel members."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Otter.ai user ID as a string."
                    },
                    {
                      "type": "integer",
                      "description": "The Otter.ai user ID as a number."
                    }
                  ],
                  "description": "The Otter.ai user ID."
                },
                "name": {
                  "type": "string",
                  "description": "The display name of the user."
                },
                "first_name": {
                  "type": "string",
                  "description": "The first name of the user."
                },
                "last_name": {
                  "type": "string",
                  "description": "The last name of the user."
                },
                "email": {
                  "type": "string",
                  "description": "The email address of the user.",
                  "format": "email"
                }
              },
              "additionalProperties": true,
              "description": "An Otter.ai user object."
            },
            "description": "Members returned by Otter.ai."
          },
          "meta": {
            "type": "object",
            "properties": {
              "retrieved_at": {
                "type": "string",
                "description": "The timestamp when Otter.ai generated the response metadata."
              },
              "has_more": {
                "type": "boolean",
                "description": "Whether Otter.ai has another page of results."
              },
              "next_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Cursor to pass into the next request, when one is available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned by Otter.ai."
          }
        },
        "additionalProperties": false,
        "description": "The Otter.ai channel members response."
      }
    },
    {
      "id": "otter_ai.list_channels",
      "service": "otter_ai",
      "name": "list_channels",
      "description": "List Otter.ai channels available to the connected workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "channels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Otter.ai channel ID as a string."
                    },
                    {
                      "type": "integer",
                      "description": "The Otter.ai channel ID as a number."
                    }
                  ],
                  "description": "The Otter.ai channel ID."
                },
                "name": {
                  "type": "string",
                  "description": "The channel name."
                },
                "owner": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "The Otter.ai user ID as a string."
                        },
                        {
                          "type": "integer",
                          "description": "The Otter.ai user ID as a number."
                        }
                      ],
                      "description": "The Otter.ai user ID."
                    },
                    "name": {
                      "type": "string",
                      "description": "The display name of the user."
                    },
                    "first_name": {
                      "type": "string",
                      "description": "The first name of the user."
                    },
                    "last_name": {
                      "type": "string",
                      "description": "The last name of the user."
                    },
                    "email": {
                      "type": "string",
                      "description": "The email address of the user.",
                      "format": "email"
                    }
                  },
                  "additionalProperties": true,
                  "description": "An Otter.ai user object."
                },
                "member_count": {
                  "type": "integer",
                  "description": "The number of members in the channel."
                },
                "discoverability": {
                  "type": "string",
                  "description": "The channel discoverability setting."
                }
              },
              "additionalProperties": true,
              "description": "An Otter.ai channel object."
            },
            "description": "Channels returned by Otter.ai."
          },
          "meta": {
            "type": "object",
            "properties": {
              "retrieved_at": {
                "type": "string",
                "description": "The timestamp when Otter.ai generated the response metadata."
              },
              "has_more": {
                "type": "boolean",
                "description": "Whether Otter.ai has another page of results."
              },
              "next_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Cursor to pass into the next request, when one is available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned by Otter.ai."
          }
        },
        "additionalProperties": false,
        "description": "The Otter.ai channels response."
      }
    },
    {
      "id": "otter_ai.list_conversations",
      "service": "otter_ai",
      "name": "list_conversations",
      "description": "List Otter.ai conversations with optional channel and pagination filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "includeShared": {
            "type": "boolean",
            "description": "Whether to include conversations shared with the workspace."
          },
          "channelId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter conversations to a specific Otter.ai channel ID."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return. Otter.ai allows 1 to 100."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor token returned by a previous Otter.ai page."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Otter.ai conversations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "conversations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Otter.ai conversation ID as a string."
                    },
                    {
                      "type": "integer",
                      "description": "The Otter.ai conversation ID as a number."
                    }
                  ],
                  "description": "The Otter.ai conversation ID."
                },
                "title": {
                  "type": "string",
                  "description": "The conversation title."
                },
                "url": {
                  "type": "string",
                  "description": "The Otter.ai web URL for the conversation.",
                  "format": "uri"
                },
                "owner": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "The Otter.ai user ID as a string."
                        },
                        {
                          "type": "integer",
                          "description": "The Otter.ai user ID as a number."
                        }
                      ],
                      "description": "The Otter.ai user ID."
                    },
                    "name": {
                      "type": "string",
                      "description": "The display name of the user."
                    },
                    "first_name": {
                      "type": "string",
                      "description": "The first name of the user."
                    },
                    "last_name": {
                      "type": "string",
                      "description": "The last name of the user."
                    },
                    "email": {
                      "type": "string",
                      "description": "The email address of the user.",
                      "format": "email"
                    }
                  },
                  "additionalProperties": true,
                  "description": "An Otter.ai user object."
                },
                "created_at": {
                  "type": "string",
                  "description": "The conversation creation timestamp."
                },
                "process_status": {
                  "type": "object",
                  "properties": {
                    "abstract_summary": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "Processing status for the abstract summary."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "action_item": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "Processing status for action items."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "outline": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "Processing status for the outline."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "additionalProperties": true,
                  "description": "Otter.ai processing status fields."
                }
              },
              "additionalProperties": true,
              "description": "An Otter.ai conversation object."
            },
            "description": "Conversations returned by Otter.ai."
          },
          "hasMore": {
            "type": "boolean",
            "description": "Whether Otter.ai has another page of conversations."
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Cursor to pass into the next request, when available."
              },
              {
                "type": "null"
              }
            ]
          },
          "meta": {
            "type": "object",
            "properties": {
              "retrieved_at": {
                "type": "string",
                "description": "The timestamp when Otter.ai generated the response metadata."
              },
              "has_more": {
                "type": "boolean",
                "description": "Whether Otter.ai has another page of results."
              },
              "next_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Cursor to pass into the next request, when one is available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned by Otter.ai."
          }
        },
        "additionalProperties": false,
        "description": "The paginated Otter.ai conversations response."
      }
    }
  ]
}
