Feature Inventory
API Reference
REST API endpoints and WebSocket handlers in NUXA Flow
NUXA Flow exposes REST APIs for automation and WebSocket handlers for real-time features.
| Domain | Endpoints | Description |
|---|
| Auth | 10+ | Authentication and authorization |
| Workflows | 15+ | Workflow CRUD and execution |
| Copilot | 10+ | AI copilot interactions |
| Voice | 6+ | Voice agent APIs |
| Knowledge | 5+ | RAG knowledge base |
| Files | 9+ | File management |
| Webhooks | 7+ | Webhook handling |
| Method | Use Case | Header |
|---|
| Session Cookie | Web application | Automatic |
| API Key | External integrations | x-api-key: <key> |
| Bearer Token | OAuth flows | Authorization: Bearer <token> |
- Go to Settings > API Keys
- Click Create API Key
- Copy and securely store the key
- Use in
x-api-key header
| Method | Endpoint | Description |
|---|
| POST | /api/auth/login | User login |
| POST | /api/auth/signup | User registration |
| POST | /api/auth/logout | User logout |
| POST | /api/auth/reset-password | Password reset |
| GET | /api/auth/session | Get current session |
| GET | /api/auth/callback/[provider] | OAuth callback |
| Method | Endpoint | Description |
|---|
| GET | /api/user | Get current user |
| PATCH | /api/user | Update user profile |
| GET | /api/users | List workspace users |
| Method | Endpoint | Description |
|---|
| GET | /api/workspaces | List user workspaces |
| POST | /api/workspaces | Create workspace |
| GET | /api/workspaces/[id] | Get workspace details |
| PATCH | /api/workspaces/[id] | Update workspace |
| DELETE | /api/workspaces/[id] | Delete workspace |
| Method | Endpoint | Description |
|---|
| GET | /api/workflows | List workflows |
| POST | /api/workflows | Create workflow |
| GET | /api/workflows/[id] | Get workflow |
| PATCH | /api/workflows/[id] | Update workflow |
| DELETE | /api/workflows/[id] | Delete workflow |
| POST | /api/workflows/[id]/duplicate | Duplicate workflow |
| Method | Endpoint | Description |
|---|
| POST | /api/workflows/[id]/execute | Execute workflow |
| GET | /api/workflows/[id]/executions | List executions |
| GET | /api/workflows/[id]/executions/[execId] | Get execution details |
| POST | /api/workflows/[id]/executions/[execId]/cancel | Cancel execution |
| Method | Endpoint | Description |
|---|
| POST | /api/webhooks/[workflowId] | Webhook trigger |
| GET | /api/webhooks/[workflowId] | Webhook trigger (GET) |
| Method | Endpoint | Description |
|---|
| POST | /api/copilot/chat | Send chat message |
| POST | /api/copilot/stream | Streaming chat |
| GET | /api/copilot/history | Get chat history |
| DELETE | /api/copilot/history | Clear history |
| Method | Endpoint | Description |
|---|
| POST | /api/copilot/tools/execute | Execute tool |
| GET | /api/copilot/tools | List available tools |
| Method | Endpoint | Description |
|---|
| GET | /api/artifacts/[token] | Get artifact |
| POST | /api/artifacts | Create artifact |
| Method | Endpoint | Description |
|---|
| GET | /api/voice/config | Get voice config |
| POST | /api/voice/config | Update voice config |
| Method | Endpoint | Description |
|---|
| POST | /api/voice/session | Create voice session |
| DELETE | /api/voice/session/[id] | End voice session |
| Method | Endpoint | Description |
|---|
| POST | /api/voice/webhook/twilio | Twilio webhook |
| POST | /api/voice/webhook/daily | Daily.co webhook |
| Method | Endpoint | Description |
|---|
| GET | /api/knowledge | List knowledge bases |
| POST | /api/knowledge | Create knowledge base |
| GET | /api/knowledge/[id] | Get knowledge base |
| DELETE | /api/knowledge/[id] | Delete knowledge base |
| Method | Endpoint | Description |
|---|
| POST | /api/knowledge/[id]/documents | Add document |
| DELETE | /api/knowledge/[id]/documents/[docId] | Remove document |
| GET | /api/knowledge/[id]/search | Search knowledge |
| Method | Endpoint | Description |
|---|
| GET | /api/files | List files |
| POST | /api/files/upload | Upload file |
| GET | /api/files/[id] | Get file metadata |
| GET | /api/files/[id]/download | Download file |
| DELETE | /api/files/[id] | Delete file |
| Method | Endpoint | Description |
|---|
| POST | /api/files/[id]/process | Process file (OCR, etc.) |
| GET | /api/files/[id]/status | Get processing status |
| Method | Endpoint | Description |
|---|
| GET | /api/logs | List execution logs |
| GET | /api/logs/[executionId] | Get execution log |
| GET | /api/logs/[executionId]/blocks | Get block-level logs |
| Method | Endpoint | Description |
|---|
| POST | /api/tools/[toolName] | Execute tool |
| GET | /api/tools | List available tools |
| Method | Endpoint | Description |
|---|
| POST | /api/tools/gmail/send | Send Gmail |
| POST | /api/tools/slack/message | Send Slack message |
| POST | /api/tools/openai/complete | OpenAI completion |
Versioned API for external integrations.
https://app.nuxa.ai/api/v1
All v1 endpoints require API key authentication:
curl -H "x-api-key: your_api_key" \
https://app.nuxa.ai/api/v1/workflows
| Method | Endpoint | Description |
|---|
| GET | /api/v1/workflows | List workflows |
| POST | /api/v1/workflows/[id]/execute | Execute workflow |
| GET | /api/v1/executions/[id] | Get execution status |
Real-time WebSocket connections for collaborative features.
import { io } from 'socket.io-client'
const socket = io('wss://app.nuxa.ai', {
auth: { token: 'your_token' }
})
| Handler | Events | Purpose |
|---|
| Connection | connect, disconnect | Connection management |
| Workflow | workflow:join, workflow:update | Workflow editing |
| Operations | block:add, block:update, block:delete | Block operations |
| Subblocks | subblock:update | Sub-block changes |
| Variables | variable:set, variable:delete | Variable updates |
| Presence | user:join, user:leave, cursor:move | User presence |
| YJS Sync | yjs:update | CRDT sync |
| Nova Sonic | audio:start, audio:chunk, audio:end | Voice streaming |
| Chat | message:new, message:update | Chat updates |
// Join workflow room
socket.emit('workflow:join', { workflowId: 'wf_123' })
// Listen for updates
socket.on('workflow:update', (data) => {
console.log('Workflow updated:', data)
})
// Update block
socket.emit('block:update', {
workflowId: 'wf_123',
blockId: 'block_456',
changes: { name: 'New Name' }
})
// Start voice session
socket.emit('audio:start', { sessionId: 'sess_123' })
// Send audio chunk
socket.emit('audio:chunk', {
sessionId: 'sess_123',
data: audioBuffer
})
// Receive response
socket.on('audio:response', (data) => {
playAudio(data.audio)
})
Workflows can receive webhooks at:
POST https://app.nuxa.ai/api/webhooks/[workflowId]
{
"event": "custom_event",
"data": {
"key": "value"
},
"timestamp": "2024-12-01T00:00:00Z"
}
{
"success": true,
"executionId": "exec_123",
"result": { ... }
}
| Plan | Requests/min | Concurrent Executions |
|---|
| Free | 60 | 5 |
| Pro | 300 | 25 |
| Enterprise | Custom | Custom |
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1699999999
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key",
"details": { ... }
}
}
| Code | HTTP Status | Description |
|---|
UNAUTHORIZED | 401 | Invalid or missing authentication |
FORBIDDEN | 403 | Insufficient permissions |
NOT_FOUND | 404 | Resource not found |
VALIDATION_ERROR | 400 | Invalid request data |
RATE_LIMITED | 429 | Too many requests |
INTERNAL_ERROR | 500 | Server error |
import { NuxaClient } from '@nuxa/sdk'
const client = new NuxaClient({ apiKey: 'your_key' })
const result = await client.workflows.execute('wf_123', {
input: { message: 'Hello' }
})
from nuxa import NuxaClient
client = NuxaClient(api_key="your_key")
result = client.workflows.execute("wf_123", {
"input": {"message": "Hello"}
})
Full OpenAPI spec available at:
https://app.nuxa.ai/api/openapi.json
Interactive API docs at:
https://app.nuxa.ai/api-docs