Deployments

Deployments API

The Deployments API allows you to manage deployments of your agents and workflows. You can create, monitor, control, and manage deployments across different channels and regions.

Base URL

https://api.aloochat.ai/api/public

Authentication

All requests require an API key in the x-api-key header:

x-api-key: your_api_key_here

Endpoints

Create Deployment

Create a new deployment for an agent or workflow.

Endpoint: POST /deployments

Request Body

FieldTypeRequiredDescription
deployable_typestringYesType of deployable (“agent” or “workflow”)
deployable_idstring (UUID)YesID of the agent or workflow to deploy
channelstringYesDeployment channel (e.g., “web”, “slack”, “teams”)
region_idstring (UUID)YesRegion ID for deployment
languagesstringNoSupported languages (comma-separated)
configstringNoJSON configuration for the deployment

Example Requests

cURL:

curl -X POST "https://api.aloochat.ai/api/public/deployments" \
  -H "x-api-key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "deployable_type": "agent",
    "deployable_id": "123e4567-e89b-12d3-a456-426614174000",
    "channel": "web",
    "region_id": "456e7890-e89b-12d3-a456-426614174000",
    "languages": "en,es,fr",
    "config": "{\"max_concurrent_users\": 100}"
  }'

JavaScript:

const response = await fetch('https://api.aloochat.ai/api/public/deployments', {
  method: 'POST',
  headers: {
    'x-api-key': 'your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    deployable_type: 'agent',
    deployable_id: '123e4567-e89b-12d3-a456-426614174000',
    channel: 'web',
    region_id: '456e7890-e89b-12d3-a456-426614174000',
    languages: 'en,es,fr',
    config: '{"max_concurrent_users": 100}'
  })
});
 
const deployment = await response.json();
console.log('Created deployment:', deployment);

Python:

import requests
 
url = "https://api.aloochat.ai/api/public/deployments"
headers = {
    "x-api-key": "your_api_key_here",
    "Content-Type": "application/json"
}
data = {
    "deployable_type": "agent",
    "deployable_id": "123e4567-e89b-12d3-a456-426614174000",
    "channel": "web",
    "region_id": "456e7890-e89b-12d3-a456-426614174000",
    "languages": "en,es,fr",
    "config": '{"max_concurrent_users": 100}'
}
 
response = requests.post(url, headers=headers, json=data)
deployment = response.json()
print('Created deployment:', deployment)

List Deployments

Get a list of deployments with optional filtering.

Endpoint: GET /deployments

Query Parameters

ParameterTypeRequiredDescription
deployable_typestringNoFilter by deployable type (“agent” or “workflow”)
statusstringNoFilter by status (“pending”, “deploying”, “active”, “failed”, “cancelled”, “paused”)
channelstringNoFilter by deployment channel
skipintegerNoNumber of deployments to skip (default: 0)
limitintegerNoMaximum number of deployments to return (default: 20, max: 100)

Example Requests

cURL:

curl -X GET "https://api.aloochat.ai/api/public/deployments?deployable_type=agent&status=active&limit=10" \
  -H "x-api-key: your_api_key_here"

JavaScript:

const params = new URLSearchParams({
  deployable_type: 'agent',
  status: 'active',
  limit: '10'
});
 
const response = await fetch(`https://api.aloochat.ai/api/public/deployments?${params}`, {
  method: 'GET',
  headers: {
    'x-api-key': 'your_api_key_here'
  }
});
 
const deployments = await response.json();
console.log('Deployments:', deployments);

Python:

import requests
 
url = "https://api.aloochat.ai/api/public/deployments"
headers = {"x-api-key": "your_api_key_here"}
params = {
    "deployable_type": "agent",
    "status": "active",
    "limit": 10
}
 
response = requests.get(url, headers=headers, params=params)
deployments = response.json()
print('Deployments:', deployments)

Get Deployment

Retrieve a specific deployment by its ID.

Endpoint: GET /deployments/{deploymentId}

Parameters

ParameterTypeRequiredDescription
deploymentIdstring (UUID)YesThe ID of the deployment

Example Requests

cURL:

curl -X GET "https://api.aloochat.ai/api/public/deployments/123e4567-e89b-12d3-a456-426614174000" \
  -H "x-api-key: your_api_key_here"

JavaScript:

const deploymentId = "123e4567-e89b-12d3-a456-426614174000";
const response = await fetch(`https://api.aloochat.ai/api/public/deployments/${deploymentId}`, {
  method: 'GET',
  headers: {
    'x-api-key': 'your_api_key_here'
  }
});
 
const deployment = await response.json();
console.log('Deployment:', deployment);

Python:

import requests
 
deployment_id = "123e4567-e89b-12d3-a456-426614174000"
url = f"https://api.aloochat.ai/api/public/deployments/{deployment_id}"
headers = {"x-api-key": "your_api_key_here"}
 
response = requests.get(url, headers=headers)
deployment = response.json()
print('Deployment:', deployment)

Update Deployment

Update an existing deployment configuration.

Endpoint: PUT /deployments/{deploymentId}

Parameters

ParameterTypeRequiredDescription
deploymentIdstring (UUID)YesThe ID of the deployment

Request Body

FieldTypeRequiredDescription
channelstringNoDeployment channel
region_idstring (UUID)NoRegion ID for deployment
languagesstringNoSupported languages (comma-separated)
configstringNoJSON configuration for the deployment

Example Requests

cURL:

curl -X PUT "https://api.aloochat.ai/api/public/deployments/123e4567-e89b-12d3-a456-426614174000" \
  -H "x-api-key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "languages": "en,es,fr,de",
    "config": "{\"max_concurrent_users\": 200}"
  }'

JavaScript:

const deploymentId = "123e4567-e89b-12d3-a456-426614174000";
const response = await fetch(`https://api.aloochat.ai/api/public/deployments/${deploymentId}`, {
  method: 'PUT',
  headers: {
    'x-api-key': 'your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    languages: 'en,es,fr,de',
    config: '{"max_concurrent_users": 200}'
  })
});
 
const deployment = await response.json();
console.log('Updated deployment:', deployment);

Python:

import requests
 
deployment_id = "123e4567-e89b-12d3-a456-426614174000"
url = f"https://api.aloochat.ai/api/public/deployments/{deployment_id}"
headers = {
    "x-api-key": "your_api_key_here",
    "Content-Type": "application/json"
}
data = {
    "languages": "en,es,fr,de",
    "config": '{"max_concurrent_users": 200}'
}
 
response = requests.put(url, headers=headers, json=data)
deployment = response.json()
print('Updated deployment:', deployment)

Delete Deployment

Delete an existing deployment.

Endpoint: DELETE /deployments/{deploymentId}

Parameters

ParameterTypeRequiredDescription
deploymentIdstring (UUID)YesThe ID of the deployment

Example Requests

cURL:

curl -X DELETE "https://api.aloochat.ai/api/public/deployments/123e4567-e89b-12d3-a456-426614174000" \
  -H "x-api-key: your_api_key_here"

JavaScript:

const deploymentId = "123e4567-e89b-12d3-a456-426614174000";
const response = await fetch(`https://api.aloochat.ai/api/public/deployments/${deploymentId}`, {
  method: 'DELETE',
  headers: {
    'x-api-key': 'your_api_key_here'
  }
});
 
console.log('Deployment deleted:', response.status === 204);

Python:

import requests
 
deployment_id = "123e4567-e89b-12d3-a456-426614174000"
url = f"https://api.aloochat.ai/api/public/deployments/{deployment_id}"
headers = {"x-api-key": "your_api_key_here"}
 
response = requests.delete(url, headers=headers)
print('Deployment deleted:', response.status_code == 204)

Deployment Control

Start Deployment

Start a pending deployment.

Endpoint: POST /deployments/{deploymentId}/start

Parameters

ParameterTypeRequiredDescription
deploymentIdstring (UUID)YesThe ID of the deployment

Example Requests

cURL:

curl -X POST "https://api.aloochat.ai/api/public/deployments/123e4567-e89b-12d3-a456-426614174000/start" \
  -H "x-api-key: your_api_key_here"

JavaScript:

const deploymentId = "123e4567-e89b-12d3-a456-426614174000";
const response = await fetch(`https://api.aloochat.ai/api/public/deployments/${deploymentId}/start`, {
  method: 'POST',
  headers: {
    'x-api-key': 'your_api_key_here'
  }
});
 
const deployment = await response.json();
console.log('Started deployment:', deployment);

Python:

import requests
 
deployment_id = "123e4567-e89b-12d3-a456-426614174000"
url = f"https://api.aloochat.ai/api/public/deployments/{deployment_id}/start"
headers = {"x-api-key": "your_api_key_here"}
 
response = requests.post(url, headers=headers)
deployment = response.json()
print('Started deployment:', deployment)

Stop Deployment

Stop an active deployment.

Endpoint: POST /deployments/{deploymentId}/stop

Parameters

ParameterTypeRequiredDescription
deploymentIdstring (UUID)YesThe ID of the deployment

Example Requests

cURL:

curl -X POST "https://api.aloochat.ai/api/public/deployments/123e4567-e89b-12d3-a456-426614174000/stop" \
  -H "x-api-key: your_api_key_here"

JavaScript:

const deploymentId = "123e4567-e89b-12d3-a456-426614174000";
const response = await fetch(`https://api.aloochat.ai/api/public/deployments/${deploymentId}/stop`, {
  method: 'POST',
  headers: {
    'x-api-key': 'your_api_key_here'
  }
});
 
const deployment = await response.json();
console.log('Stopped deployment:', deployment);

Python:

import requests
 
deployment_id = "123e4567-e89b-12d3-a456-426614174000"
url = f"https://api.aloochat.ai/api/public/deployments/{deployment_id}/stop"
headers = {"x-api-key": "your_api_key_here"}
 
response = requests.post(url, headers=headers)
deployment = response.json()
print('Stopped deployment:', deployment)

Pause Deployment

Pause an active deployment.

Endpoint: POST /deployments/{deploymentId}/pause

Parameters

ParameterTypeRequiredDescription
deploymentIdstring (UUID)YesThe ID of the deployment

Example Requests

cURL:

curl -X POST "https://api.aloochat.ai/api/public/deployments/123e4567-e89b-12d3-a456-426614174000/pause" \
  -H "x-api-key: your_api_key_here"

JavaScript:

const deploymentId = "123e4567-e89b-12d3-a456-426614174000";
const response = await fetch(`https://api.aloochat.ai/api/public/deployments/${deploymentId}/pause`, {
  method: 'POST',
  headers: {
    'x-api-key': 'your_api_key_here'
  }
});
 
const deployment = await response.json();
console.log('Paused deployment:', deployment);

Python:

import requests
 
deployment_id = "123e4567-e89b-12d3-a456-426614174000"
url = f"https://api.aloochat.ai/api/public/deployments/{deployment_id}/pause"
headers = {"x-api-key": "your_api_key_here"}
 
response = requests.post(url, headers=headers)
deployment = response.json()
print('Paused deployment:', deployment)

Resume Deployment

Resume a paused deployment.

Endpoint: POST /deployments/{deploymentId}/resume

Parameters

ParameterTypeRequiredDescription
deploymentIdstring (UUID)YesThe ID of the deployment

Example Requests

cURL:

curl -X POST "https://api.aloochat.ai/api/public/deployments/123e4567-e89b-12d3-a456-426614174000/resume" \
  -H "x-api-key: your_api_key_here"

JavaScript:

const deploymentId = "123e4567-e89b-12d3-a456-426614174000";
const response = await fetch(`https://api.aloochat.ai/api/public/deployments/${deploymentId}/resume`, {
  method: 'POST',
  headers: {
    'x-api-key': 'your_api_key_here'
  }
});
 
const deployment = await response.json();
console.log('Resumed deployment:', deployment);

Python:

import requests
 
deployment_id = "123e4567-e89b-12d3-a456-426614174000"
url = f"https://api.aloochat.ai/api/public/deployments/{deployment_id}/resume"
headers = {"x-api-key": "your_api_key_here"}
 
response = requests.post(url, headers=headers)
deployment = response.json()
print('Resumed deployment:', deployment)

Deployment Logs

Get Deployment Logs

Retrieve logs for a specific deployment.

Endpoint: GET /deployments/{deploymentId}/logs

Parameters

ParameterTypeRequiredDescription
deploymentIdstring (UUID)YesThe ID of the deployment

Query Parameters

ParameterTypeRequiredDescription
limitintegerNoMaximum number of log entries (default: 100, max: 1000)
sincestring (datetime)NoReturn logs since this timestamp

Example Requests

cURL:

curl -X GET "https://api.aloochat.ai/api/public/deployments/123e4567-e89b-12d3-a456-426614174000/logs?limit=50" \
  -H "x-api-key: your_api_key_here"

JavaScript:

const deploymentId = "123e4567-e89b-12d3-a456-426614174000";
const response = await fetch(`https://api.aloochat.ai/api/public/deployments/${deploymentId}/logs?limit=50`, {
  method: 'GET',
  headers: {
    'x-api-key': 'your_api_key_here'
  }
});
 
const logs = await response.json();
console.log('Deployment logs:', logs);

Python:

import requests
 
deployment_id = "123e4567-e89b-12d3-a456-426614174000"
url = f"https://api.aloochat.ai/api/public/deployments/{deployment_id}/logs"
headers = {"x-api-key": "your_api_key_here"}
params = {"limit": 50}
 
response = requests.get(url, headers=headers, params=params)
logs = response.json()
print('Deployment logs:', logs)

Response Examples

Deployment Object

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "deployable_type": "agent",
  "deployable_id": "456e7890-e89b-12d3-a456-426614174000",
  "agent_id": "456e7890-e89b-12d3-a456-426614174000",
  "company_id": "789e0123-e89b-12d3-a456-426614174000",
  "user_id": "abc12345-e89b-12d3-a456-426614174000",
  "channel": "web",
  "region_id": "def67890-e89b-12d3-a456-426614174000",
  "languages": "en,es,fr",
  "status": "active",
  "config": "{\"max_concurrent_users\": 100}",
  "error": null,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-20T14:45:00Z"
}

Deployment Logs Response

{
  "logs": [
    {
      "timestamp": "2024-01-20T14:45:00Z",
      "level": "info",
      "message": "Deployment started successfully"
    },
    {
      "timestamp": "2024-01-20T14:46:00Z",
      "level": "info",
      "message": "Agent initialized and ready to serve requests"
    },
    {
      "timestamp": "2024-01-20T14:47:00Z",
      "level": "warning",
      "message": "High memory usage detected: 85%"
    }
  ]
}

Deployment Statuses

StatusDescription
pendingDeployment created but not yet started
deployingDeployment is in progress
activeDeployment is running and serving requests
failedDeployment failed to start or encountered an error
cancelledDeployment was cancelled by user
pausedDeployment is temporarily paused

Use Cases

Automated Deployment Pipeline

// Create and start a deployment
const deployment = await fetch('https://api.aloochat.ai/api/public/deployments', {
  method: 'POST',
  headers: {
    'x-api-key': 'your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    deployable_type: 'agent',
    deployable_id: 'agent-id-here',
    channel: 'web',
    region_id: 'region-id-here'
  })
}).then(r => r.json());
 
// Start the deployment
await fetch(`https://api.aloochat.ai/api/public/deployments/${deployment.id}/start`, {
  method: 'POST',
  headers: { 'x-api-key': 'your_api_key_here' }
});
 
console.log('Deployment started:', deployment.id);

Monitoring Deployments

// Monitor deployment status
const checkDeployment = async (deploymentId) => {
  const response = await fetch(`https://api.aloochat.ai/api/public/deployments/${deploymentId}`, {
    headers: { 'x-api-key': 'your_api_key_here' }
  });
  const deployment = await response.json();
  
  if (deployment.status === 'failed') {
    console.error('Deployment failed:', deployment.error);
  } else if (deployment.status === 'active') {
    console.log('Deployment is running successfully');
  }
  
  return deployment;
};

Error Responses

The API returns standard HTTP status codes and error messages:

  • 400 Bad Request: Invalid request data
  • 401 Unauthorized: Missing or invalid API key
  • 403 Forbidden: Insufficient permissions
  • 404 Not Found: Deployment not found
  • 429 Too Many Requests: Rate limit exceeded
  • 500 Internal Server Error: Server error

Example error response:

{
  "detail": "Deployment not found",
  "status_code": 404
}