Skip to content

API

This section provides a comprehensive overview of the routes, types, and error codes for the features in the system, ensuring developers understand how to interact with the API and handle potent.

Every request requires a valid API key in the Authorization header.

A key can only access components you explicitly enabled when configuring the key. Requests for anything else are rejected.

List Available Applications

GET api/v1/components/apps

List apps available to this key.

200: OK
[
  {
    "name": "Cubicl",
    "icon": "cubicl.png",
    "key": "cubicl"
  }
]

Get Component Definitions

GET api/v1/components/list

Return definitions (inputs, outputs, descriptions) for all components this key may use.

200: OK
[
    {
        "id": "action.cubicl.get-client",
        "name": "Get Client",
        "desc": "Gets client details. [See the docs here](https://docs.cubicl.io/api-integration/clients#get-client-by-id).",
        "appKey": "cubicl",
        "appName": "Cubicl",
        "icon": "cubicl.jpg",
        "inputs": {
            "_connection": {
                "title": "Cubicl Connection",
                "type": "string"
            },
            "clientId": {
                "title": "clientId",
                "description": "The ID of the client to be retrieved.",
                "type": "string"
            }
        },
        "outputs": {
            "client": {
                "title": "client",
                "type": "object",
                "properties": {}
            },
            "customFields": {
                "title": "customFields",
                "description": "Shows the names of the \"id\" values in the customFields field of the client. If not defined in the Cubicl, it comes empty.",
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {}
                }
            },
            "notFound": {
                "title": "notFound",
                "type": "null"
            }
        },
        "required": [
            "_connection",
            "clientId"
        ]
    },
]

Get Component Details

GET api/v1/components/details/:componentKey

Return the full definition for one component.

Path Parameters

Name

Type

Description

componentKey*

String

Component id β€” e.g. "action.cubicl.get-client"

200: OK
// Component Details

Run Component

GET api/v1/components/:componentId/run

Execute an action.

Path Parameters

Name

Type

Description

componentId*

String

Component id β€” e.g. "action.cubicl.get-client"

Body

Name

Type

Description

inputs*

Object

Component inputs

200: OK
{
  "name": "Result name",
  "outputs": {
    "result": "VALUE"
  },
  "componentId": "action.misc.logger",
  "creditsUsed": 1
}

Each entry in outputs is a typed value (type + data). Paid components may consume credits from your team's balance.

List Registered Triggers

GET api/v1/components/triggers
200: OK
[
    {
        "_id": "6a295afb530d2213967340c1",
        "componentId": "trigger.cubicl.task-archived",
        "inputs": {
            "group": "GROUP_ID"
        },
        "createdAt": "2026-06-10T12:39:23.183Z"
    },
]

Remove a trigger. Returns 404 if the trigger does not belong to this key.

Register Trigger

POST api/v1/components/triggers

Body

Name

Type

Description

componentKey*

String

Trigger component id β€” e.g. "trigger.cubicl.task-archived"

inputs

Object

Trigger register parameters (varies according to component definition)

200: OK
{
    "triggerId": "6a296203f6dd56f7cd1d4313"
}

Unregister Trigger

DELETE api/v1/components/triggers/:triggerId

Remove a trigger. Returns 404 if the trigger does not belong to this key.

Path Parameters

Name

Type

Description

triggerId*

String

Registered trigger id

200: OK
// Empty

Errors are returned as JSON with an HTTP status code:

{
  "statusCode": 403,
  "message": "Invalid API key.",
  "error": "Forbidden"
}

Authentication (403 Forbidden)

Message

Meaning

API key not provided or malformed.

Missing header or incorrect Bearer format

Invalid API key.

Key is wrong, deleted, or regenerated

Authorization (403 Forbidden)

Message

Meaning

the component you are trying to run is not enabled for this api key…

Component not enabled on this key β€” update the key in the dashboard

API key does not have access to component '…'

Trigger component not enabled on this key

Not found (404)

Message

Meaning

API key not found

Key ID invalid or not in your team

Component '…' not found or not allowed

Unknown component or not enabled on this key

Trigger '…' not found or not owned by this API key

Trigger missing or belongs to another key

Validation (400 Bad Request)

Message

Meaning

Connection not found for app …

Linked account is missing or invalid

App … requires a connection but none was provided.

Authenticated app configured without a connection

An app has a connection but no components are selected…

Connection set but no components chosen

Invalid component id

Unrecognized component ID

INVALID_NODE_CONNECTION

Linked account expired or revoked at runtime

Runtime failures

Status

Meaning

400

Invalid or incomplete inputs

422

The action ran but failed (e.g. upstream API error)

500

Unexpected server error β€” contact support if it persists

Replace YOUR_API_KEY and the base URL with your values.

# List allowed components
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://app.monkedo.com/api/v1/components/list

# Run an action
curl -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inputs": {"getOnlyNames": true, "limit": 50, "skip": 0}}' \
  https://app.monkedo.com/api/v1/components/action.cubicl.get-clients/run

# Register a trigger
curl -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"componentKey": "trigger.cubicl.task-created", "inputs": {"group": GROUP_ID}}' \
  https://app.monkedo.com/api/v1/components/triggers