Skip to main content
POST
/
v1
/
admin
/
integrations
cURL
curl --request POST \
  --url https://api.botpress.cloud/v1/admin/integrations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'x-workspace-id: <x-workspace-id>' \
  --data '{
  "name": "<string>",
  "version": "<string>",
  "configuration": {
    "title": "<string>",
    "description": "<string>",
    "schema": {},
    "identifier": {
      "required": true,
      "linkTemplateScript": "<string>"
    }
  },
  "configurations": {},
  "states": {},
  "events": {},
  "actions": {},
  "entities": {},
  "attributes": {},
  "identifier": {
    "fallbackHandlerScript": "<string>",
    "extractScript": "<string>"
  },
  "channels": {},
  "user": {
    "creation": {
      "enabled": true,
      "requiredTags": [
        "<string>"
      ]
    },
    "tags": {}
  },
  "interfaces": {},
  "extraOperations": {},
  "secrets": {},
  "code": "<string>",
  "url": "<string>",
  "dev": true,
  "icon": "<string>",
  "readme": "<string>",
  "title": "<string>",
  "description": "<string>",
  "public": true,
  "visibility": "public",
  "layers": [
    "<string>"
  ]
}'
{
  "integration": {
    "id": "<string>",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "identifier": {
      "fallbackHandlerScript": "<string>",
      "extractScript": "<string>"
    },
    "sandbox": {
      "identifierExtractScript": "<string>",
      "messageExtractScript": "<string>"
    },
    "maxExecutionTime": 123,
    "url": "<string>",
    "name": "<string>",
    "version": "<string>",
    "interfaces": {},
    "configuration": {
      "title": "<string>",
      "description": "<string>",
      "identifier": {
        "linkTemplateScript": "<string>",
        "required": true
      },
      "schema": {}
    },
    "configurations": {},
    "channels": {},
    "states": {},
    "events": {},
    "actions": {},
    "user": {
      "tags": {},
      "creation": {
        "enabled": true,
        "requiredTags": [
          "<string>"
        ]
      }
    },
    "entities": {},
    "attributes": {},
    "dev": true,
    "title": "<string>",
    "description": "<string>",
    "iconUrl": "<string>",
    "readmeUrl": "<string>",
    "public": true,
    "visibility": "public",
    "verificationStatus": "unapproved",
    "secrets": [
      "<string>"
    ]
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

x-workspace-id
string
required

Workspace ID

x-multiple-integrations
string

Whether the client supports bots with multiple instances of the same integration. Set to "true" to receive integration instances keyed by their alias instead of their id. This header will be removed in the future, and the API will always return multiple instances keyed by alias.

Body

application/json

Integration

name
string
required

Name of the Integration

Maximum length: 200
version
string
required

Version of the Integration

Maximum length: 200
configuration
object

Default configuration definition of the integration

configurations
object

Additional configuration definitions of the integration

states
object
events
object
actions
object
entities
object
attributes
object

Optional attributes

identifier
object
channels
object
user
object
interfaces
object
extraOperations
object

EXPERIMENTAL Extra integration operations that should be sent or not to the integration instances. The key is the operation name.

secrets
object

Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.

code
string

JavaScript code of the integration

url
string

URL of the integration

dev
boolean

Indicates if the integration is a development integration; Dev integrations run locally

icon
string

Base64 encoded svg of the integration icon. This icon is global to the integration each versions will be updated when this changes.

readme
string

Base64 encoded markdown of the integration readme. The readme is specific to each integration versions.

title
string

Title of the integration. This is the name that will be displayed in the UI

Required string length: 1 - 64
description
string

Description of the integration. This is the description that will be displayed in the UI

Maximum length: 256
public
boolean
deprecated

[DEPRECATED] Indicates whether the integration is public. Please use the "visibility" parameter instead.

visibility
enum<string>

The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.

Available options:
public,
private,
unlisted
layers
string[]

Response

Success

integration
object
required