{
  "service": "botpress",
  "displayName": "Botpress",
  "categories": [
    "AI",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "BOTPRESS_API_TOKEN",
      "description": "Botpress API token sent as a Bearer token. Generate a token from the Botpress dashboard API settings and use it with your workspace ID: https://botpress.com/docs/api-reference/admin-api/getting-started.",
      "extraFields": [
        {
          "key": "workspaceId",
          "label": "Workspace ID",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "wkspace_...",
          "description": "Botpress workspace ID sent with the x-workspace-id header. Copy it from your Botpress workspace settings or Admin API examples: https://botpress.com/docs/api-reference/admin-api/getting-started."
        }
      ]
    }
  ],
  "homepageUrl": "https://botpress.com",
  "actions": [
    {
      "id": "botpress.get_bot",
      "service": "botpress",
      "name": "get_bot",
      "description": "Get details for one Botpress bot in the connected workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "botId": {
            "type": "string",
            "minLength": 1,
            "description": "The Botpress bot ID."
          }
        },
        "additionalProperties": false,
        "description": "Input identifying one Botpress bot."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "bot": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Botpress bot details object."
          }
        },
        "additionalProperties": false,
        "description": "Botpress bot result."
      }
    },
    {
      "id": "botpress.list_bots",
      "service": "botpress",
      "name": "list_bots",
      "description": "List Botpress bots in the connected workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "dev": {
            "type": "boolean",
            "description": "Whether to return development bots instead of production bots."
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "minLength": 1,
              "description": "A Botpress tag value."
            },
            "description": "Botpress tags to filter by."
          },
          "nextToken": {
            "type": "string",
            "minLength": 1,
            "description": "The Botpress meta.nextToken value from the previous response."
          },
          "sortField": {
            "type": "string",
            "enum": [
              "createdAt",
              "updatedAt"
            ],
            "description": "The Botpress field to sort by."
          },
          "sortDirection": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The Botpress sort direction."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Botpress bots in the connected workspace."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "bots": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Botpress bot ID."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The timestamp when the bot was created."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The timestamp when the bot was last updated."
                },
                "name": {
                  "type": "string",
                  "description": "The bot name."
                },
                "deployedAt": {
                  "type": "string",
                  "description": "The timestamp when the bot was last deployed."
                },
                "tags": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A Botpress tag value."
                  },
                  "description": "Botpress tags to filter by."
                },
                "type": {
                  "type": "string",
                  "description": "The Botpress bot type."
                }
              },
              "additionalProperties": true,
              "description": "A Botpress bot summary."
            },
            "description": "The bots returned by Botpress."
          },
          "meta": {
            "type": "object",
            "properties": {
              "nextToken": {
                "type": "string",
                "description": "The token to use to retrieve the next page of results."
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Botpress."
          }
        },
        "additionalProperties": false,
        "description": "Botpress bots result."
      }
    },
    {
      "id": "botpress.list_workspaces",
      "service": "botpress",
      "name": "list_workspaces",
      "description": "List Botpress workspaces accessible to the connected API token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "nextToken": {
            "type": "string",
            "minLength": 1,
            "description": "The Botpress meta.nextToken value from the previous response."
          },
          "handle": {
            "type": "string",
            "minLength": 1,
            "description": "The Botpress workspace handle to filter by."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Botpress workspaces."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "workspaces": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Botpress workspace ID."
                },
                "name": {
                  "type": "string",
                  "description": "The workspace name."
                },
                "ownerId": {
                  "type": "string",
                  "description": "The workspace owner ID."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The timestamp when the workspace was created."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The timestamp when the workspace was last updated."
                },
                "botCount": {
                  "type": "integer",
                  "description": "The number of bots in the workspace."
                },
                "billingVersion": {
                  "type": "string",
                  "description": "The Botpress billing version for the workspace."
                },
                "plan": {
                  "type": "string",
                  "description": "The Botpress plan for the workspace."
                },
                "blocked": {
                  "type": "boolean",
                  "description": "Whether the workspace is blocked."
                },
                "spendingLimit": {
                  "type": "number",
                  "description": "The configured workspace spending limit."
                },
                "about": {
                  "type": "string",
                  "description": "The workspace about text when returned."
                },
                "profilePicture": {
                  "type": "string",
                  "description": "The workspace profile picture URL when returned."
                },
                "contactEmail": {
                  "type": "string",
                  "description": "The workspace contact email when returned."
                },
                "website": {
                  "type": "string",
                  "description": "The workspace website URL when returned."
                },
                "socialAccounts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "A Botpress workspace social account."
                  },
                  "description": "The workspace social accounts returned by Botpress."
                },
                "isPublic": {
                  "type": "boolean",
                  "description": "Whether the workspace is public."
                },
                "handle": {
                  "type": "string",
                  "description": "The public workspace handle when returned."
                },
                "activeTrialId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The active workspace trial ID."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A Botpress workspace."
            },
            "description": "The workspaces returned by Botpress."
          },
          "meta": {
            "type": "object",
            "properties": {
              "nextToken": {
                "type": "string",
                "description": "The token to use to retrieve the next page of results."
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Botpress."
          }
        },
        "additionalProperties": false,
        "description": "Botpress workspaces result."
      }
    }
  ]
}
