VirtuousAI
Reference

Actions

List Actions

GET
/api/v1/actions

Query Parameters

q?|

Search by name or slug

kinds?array<>|

Filter by action kinds

statuses?array<>|

Filter by statuses

sort_by?string

Sortable fields for action list endpoints.

Default"created_at"
Value in"name" | "created_at" | "updated_at" | "status" | "kind"
order?string

Sort direction for pagination.

Default"desc"
Value in"asc" | "desc"
limit?integer
Default100
Range1 <= value <= 100
offset?integer
Default0
Range0 <= value

Header Parameters

authorization?|
X-API-Key?|
vai_token?|

Response Body

application/json

application/json

curl -X GET "https://loading/api/v1/actions"
{
  "actions": [
    {
      "connectionId": "string",
      "createdAt": "2019-08-24T14:15:22Z",
      "createdBy": "string",
      "definition": {},
      "id": "string",
      "kind": "dlt_extract",
      "latestRun": {
        "completedAt": "2019-08-24T14:15:22Z",
        "definition": {},
        "id": "string",
        "progress": {},
        "startedAt": "2019-08-24T14:15:22Z",
        "status": "pending"
      },
      "name": "string",
      "slug": "string",
      "status": "active",
      "templateId": "string",
      "updatedAt": "2019-08-24T14:15:22Z",
      "updatedBy": "string"
    }
  ],
  "hasNext": true,
  "limit": 0,
  "offset": 0,
  "total": 0,
  "users": {
    "property1": {
      "firstName": "string",
      "id": "string",
      "lastName": "string",
      "profilePictureUrl": "string"
    },
    "property2": {
      "firstName": "string",
      "id": "string",
      "lastName": "string",
      "profilePictureUrl": "string"
    }
  }
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Create Action

POST
/api/v1/actions

Header Parameters

authorization?|
X-API-Key?|
vai_token?|

Request Body

application/json

connectionId?|
definition?
kind*string

Discriminator for action capabilities.

Determines which executor runs, what config shape is expected, and how the action is displayed in the UI.

Grouped by domain concern. Legacy values kept for DB compatibility.

Value in"dlt_extract" | "file_sync" | "duckdb_transform" | "http_request" | "call_agent" | "generate_query" | "explain_schema" | "agent_search" | "agent_fetch_page" | "create_flashboard" | "approval_gate" | "conditional_branch" | "call_automation" | "web_search" | "fetch_page"
name*string
Lengthlength <= 255
slug?|
templateId?|

Response Body

application/json

application/json

curl -X POST "https://loading/api/v1/actions" \  -H "Content-Type: application/json" \  -d '{    "kind": "dlt_extract",    "name": "string"  }'
{
  "connectionId": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "definition": {},
  "id": "string",
  "kind": "dlt_extract",
  "latestRun": {
    "completedAt": "2019-08-24T14:15:22Z",
    "definition": {},
    "id": "string",
    "progress": {},
    "startedAt": "2019-08-24T14:15:22Z",
    "status": "pending"
  },
  "name": "string",
  "slug": "string",
  "status": "active",
  "templateId": "string",
  "updatedAt": "2019-08-24T14:15:22Z",
  "updatedBy": "string"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Get Action By Slug

GET
/api/v1/actions/slug/{slug}

Path Parameters

slug*string

Header Parameters

authorization?|
X-API-Key?|
vai_token?|

Response Body

application/json

application/json

curl -X GET "https://loading/api/v1/actions/slug/string"
{
  "connectionId": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "definition": {},
  "id": "string",
  "kind": "dlt_extract",
  "latestRun": {
    "completedAt": "2019-08-24T14:15:22Z",
    "definition": {},
    "id": "string",
    "progress": {},
    "startedAt": "2019-08-24T14:15:22Z",
    "status": "pending"
  },
  "name": "string",
  "slug": "string",
  "status": "active",
  "templateId": "string",
  "updatedAt": "2019-08-24T14:15:22Z",
  "updatedBy": "string"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Get Action

GET
/api/v1/actions/{action_id}

Path Parameters

action_id*string
Formatuuid

Header Parameters

authorization?|
X-API-Key?|
vai_token?|

Response Body

application/json

application/json

curl -X GET "https://loading/api/v1/actions/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "connectionId": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "definition": {},
  "id": "string",
  "kind": "dlt_extract",
  "latestRun": {
    "completedAt": "2019-08-24T14:15:22Z",
    "definition": {},
    "id": "string",
    "progress": {},
    "startedAt": "2019-08-24T14:15:22Z",
    "status": "pending"
  },
  "name": "string",
  "slug": "string",
  "status": "active",
  "templateId": "string",
  "updatedAt": "2019-08-24T14:15:22Z",
  "updatedBy": "string"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Update Action

PATCH
/api/v1/actions/{action_id}

Path Parameters

action_id*string
Formatuuid

Header Parameters

authorization?|
X-API-Key?|
vai_token?|

Request Body

application/json

connectionId?|
definition?|
name?|
slug?|
status?|

Response Body

application/json

application/json

curl -X PATCH "https://loading/api/v1/actions/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{}'
{
  "connectionId": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "definition": {},
  "id": "string",
  "kind": "dlt_extract",
  "latestRun": {
    "completedAt": "2019-08-24T14:15:22Z",
    "definition": {},
    "id": "string",
    "progress": {},
    "startedAt": "2019-08-24T14:15:22Z",
    "status": "pending"
  },
  "name": "string",
  "slug": "string",
  "status": "active",
  "templateId": "string",
  "updatedAt": "2019-08-24T14:15:22Z",
  "updatedBy": "string"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Delete Action

DELETE
/api/v1/actions/{action_id}

Path Parameters

action_id*string
Formatuuid

Header Parameters

authorization?|
X-API-Key?|
vai_token?|

Response Body

application/json

curl -X DELETE "https://loading/api/v1/actions/497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Run Action

POST
/api/v1/actions/{action_id}/run

Path Parameters

action_id*string
Formatuuid

Header Parameters

authorization?|
X-API-Key?|
vai_token?|

Request Body

application/json

definitionOverrides?|

Response Body

application/json

application/json

curl -X POST "https://loading/api/v1/actions/497f6eca-6276-4993-bfeb-53cbbbba6f08/run" \  -H "Content-Type: application/json" \  -d '{}'
{
  "actionId": "string",
  "completedAt": "2019-08-24T14:15:22Z",
  "concurrencyKey": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "definition": {},
  "displayStatus": "string",
  "durationSeconds": 0,
  "error": {},
  "id": "string",
  "idempotencyKey": "string",
  "interruptCount": 0,
  "kind": "dlt_extract",
  "parentActionRunId": "string",
  "progress": {},
  "result": {},
  "retryCount": 0,
  "startedAt": "2019-08-24T14:15:22Z",
  "status": "pending",
  "triggerMethod": "ui",
  "triggerSourceId": "string",
  "triggerSourceType": "user",
  "updatedAt": "2019-08-24T14:15:22Z"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}