API Examples

Representative request and response examples for common VexylCloud API workflows.

API examples

Representative external API examples for the routes technical buyers usually test first.

The examples below intentionally focus on how customers control and integrate the product from the outside: published schema access, ticket workflows, workflow triggers, webhook management, search, reporting, and cloud actions.

Pull the published OpenAPI spec

GET /api/openapi.json

200 OK
{
  "openapi": "3.1.0",
  "info": { "...": "VexylCloud Platform API" }
}

List or create tenant API keys

GET /api/admin/api-keys
Cookie: <authenticated VexylCloud session>

200 OK
[
  {
    "id": "key_123",
    "name": "PSA Sync",
    "key_prefix": "vxc_a1b2c3d4",
    "scopes": ["*"],
    "is_active": true
  }
]

Create a ticket from another system

POST /api/psa/tickets
Content-Type: application/json
Cookie: <authenticated VexylCloud session>

{
  "subject": "VPN outage for Acme HQ",
  "description": "Users cannot reach line-of-business apps over VPN.",
  "priority": "high",
  "type": "incident",
  "source": "api",
  "customer_id": "cst_123",
  "tags": ["network", "vpn"]
}

Trigger an existing workflow

POST /api/psa/workflows/trigger
Content-Type: application/json
Cookie: <authenticated VexylCloud session>

{
  "trigger": "manual",
  "entityType": "ticket",
  "entityId": "tkt_123",
  "context": {
    "source": "external-automation",
    "reason": "Escalate to after-hours flow"
  }
}

Create a tenant webhook

POST /api/admin/webhooks
Content-Type: application/json
Cookie: <authenticated VexylCloud session>

{
  "name": "Operations Feed",
  "url": "https://example.com/hooks/vexylcloud",
  "events": ["ticket.created", "ticket.updated"],
  "is_active": true
}

Example outbound webhook delivery

POST https://example.com/hooks/vexylcloud
Content-Type: application/json
X-Webhook-Event: ticket.updated
X-Webhook-Signature: sha256=<hmac>

{
  "event": "ticket.updated",
  "timestamp": "2026-03-24T23:11:25.000Z",
  "data": {
    "ticket_id": "12345",
    "status": "waiting-on-customer"
  }
}

Search the tenant context

GET /api/search?q=acme
Cookie: <authenticated VexylCloud session>

200 OK
{
  "devices": [...],
  "organizations": [...],
  "users": [...]
}

Read cloud providers and VMs

GET /api/cloud/providers
GET /api/cloud/vms?provider=aws
Cookie: <authenticated VexylCloud session>

Read asset inventory for reporting

GET /api/rmm/reports/asset-inventory
Cookie: <authenticated VexylCloud session>

Use Authentication first, then review Webhooks and Rate Limits so the automation behaves safely in the real operating environment.