Agents API Reference
The Agents API allows you to create, manage, and configure agent blueprints. Agents represent your published templates that others can deploy as instances.
Agent Resource
Agent Object
{
  "id": "agent-uuid",
  "name": "market-news-agent",
  "summary": "AI agent that analyzes market news and generates trading insights",
  "github_repo": "username/market-news-agent",
  "github_branch": "main",
  "organization_id": "org-uuid",
  "user_id": "user-uuid",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z",
  "config": {
    "dockerfile_path": "./Dockerfile",
    "working_directory": "/app",
    "port": 8080,
    "health_path": "/health",
    "long_running": true,
    "enable_http": false,
    "stdin_enabled": false
  },
  "resources": {
    "cpu": "0.5",
    "memory": "512Mi",
    "cpu_limit": "1.0",
    "memory_limit": "1Gi"
  },
  "env_vars": {
    "TARGET_QUERY": "",
    "GEMINI_API_KEY": "",
    "LOG_LEVEL": "INFO"
  },
  "build_count": 3,
  "instance_count": 12,
  "status": "active"
}
Agent Fields
| Field | Type | Description | 
|---|---|---|
id | string | Unique agent identifier | 
name | string | Agent display name | 
summary | string | Brief description of agent functionality | 
github_repo | string | Source repository (format: owner/repo) | 
github_branch | string | Default deployment branch | 
organization_id | string | Organization that owns this agent | 
user_id | string | User who created this agent | 
config.dockerfile_path | string | Path to Dockerfile in repository | 
config.port | integer | Port the agent listens on | 
config.long_running | boolean | Whether agent runs continuously | 
config.enable_http | boolean | Whether to expose HTTP endpoint | 
resources.cpu | string | CPU allocation (e.g., "0.5", "1.0") | 
resources.memory | string | Memory allocation (e.g., "512Mi", "1Gi") | 
env_vars | object | Environment variable definitions | 
build_count | integer | Number of builds created | 
instance_count | integer | Number of active instances | 
List Agents
Retrieve agents for your organization.
Request
GET /agents/by_org_id/{org_id}
Path Parameters
| Parameter | Type | Required | Description | 
|---|---|---|---|
org_id | string | Yes | Organization ID | 
Query Parameters
| Parameter | Type | Default | Description | 
|---|---|---|---|
limit | integer | 50 | Number of agents to return (1-100) | 
cursor | string | - | Pagination cursor for next page | 
status | string | all | Filter by status: active, archived, all | 
Response
{
  "data": [
    {
      "id": "agent-1",
      "name": "market-news-agent",
      "summary": "Market analysis agent",
      "github_repo": "user/market-agent",
      "created_at": "2024-01-15T10:30:00Z",
      "build_count": 5,
      "instance_count": 23
    }
  ],
  "pagination": {
    "limit": 50,
    "has_more": false,
    "next_cursor": null
  }
}
Examples
cURL
curl -H "Authorization: Bearer your-api-key" \
  "https://prod-agent-hosting-api.useagenthub.com/agents/by_org_id/org-uuid?limit=20"
JavaScript
const response = await fetch(
  'https://prod-agent-hosting-api.useagenthub.com/agents/by_org_id/org-uuid?limit=20',
  {
    headers: {
      'Authorization': 'Bearer your-api-key'
    }
  }
);
const agents = await response.json();
Python
import requests
response = requests.get(
    'https://prod-agent-hosting-api.useagenthub.com/agents/by_org_id/org-uuid',
    headers={'Authorization': 'Bearer your-api-key'},
    params={'limit': 20}
)
agents = response.json()
Get Agent
Retrieve a specific agent by ID.
Request
GET /agents/{agent_id}
Path Parameters
| Parameter | Type | Required | Description | 
|---|---|---|---|
agent_id | string | Yes | Agent ID | 
Response
Returns the complete agent object with all configuration details.
Examples
cURL
curl -H "Authorization: Bearer your-api-key" \
  https://prod-agent-hosting-api.useagenthub.com/agents/agent-uuid
JavaScript
const response = await fetch(
  'https://prod-agent-hosting-api.useagenthub.com/agents/agent-uuid',
  {
    headers: { 'Authorization': 'Bearer your-api-key' }
  }
);
const agent = await response.json();
Create Agent
Create a new agent blueprint from a GitHub repository.
Request
POST /agents
Request Body
{
  "name": "my-trading-bot",
  "summary": "Automated trading bot with risk management",
  "github_repo": "username/trading-bot",
  "github_branch": "main",
  "organization_id": "org-uuid",
  "config": {
    "dockerfile_path": "./Dockerfile",
    "working_directory": "/app",
    "port": 8080,
    "long_running": true,
    "enable_http": false
  },
  "resources": {
    "cpu": "1.0",
    "memory": "1Gi",
    "cpu_limit": "2.0",
    "memory_limit": "2Gi"
  },
  "env_vars": {
    "API_KEY": "",
    "TRADING_MODE": "simulation",
    "RISK_LEVEL": "conservative"
  }
}
Required Fields
| Field | Type | Description | 
|---|---|---|
name | string | Agent name (unique within organization) | 
github_repo | string | GitHub repository (format: owner/repo) | 
organization_id | string | Organization ID | 
Optional Fields
| Field | Type | Default | Description | 
|---|---|---|---|
summary | string | "" | Agent description | 
github_branch | string | "main" | Default branch | 
config.* | object | Auto-detected | Runtime configuration | 
resources.* | object | Standard limits | Resource allocation | 
env_vars | object | {} | Environment variables | 
Response
Returns the created agent object with generated ID.
Examples
cURL
curl -X POST https://prod-agent-hosting-api.useagenthub.com/agents \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-trading-bot",
    "github_repo": "username/trading-bot", 
    "organization_id": "org-uuid",
    "config": {
      "long_running": true
    },
    "env_vars": {
      "API_KEY": "",
      "TRADING_MODE": "simulation"
    }
  }'
JavaScript
const agent = await fetch('https://prod-agent-hosting-api.useagenthub.com/agents', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer your-api-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'my-trading-bot',
    github_repo: 'username/trading-bot',
    organization_id: 'org-uuid',
    config: {
      long_running: true
    },
    env_vars: {
      API_KEY: '',
      TRADING_MODE: 'simulation'
    }
  })
});
Update Agent
Update an existing agent's configuration.
Request
PUT /agents/{agent_id}
Path Parameters
| Parameter | Type | Required | Description | 
|---|---|---|---|
agent_id | string | Yes | Agent ID | 
Request Body
Only include fields you want to update:
{
  "name": "updated-agent-name",
  "summary": "Updated description",
  "config": {
    "port": 8080,
    "long_running": false
  },
  "resources": {
    "memory": "2Gi"
  },
  "env_vars": {
    "NEW_VAR": "new-value"
  }
}
Response
Returns the updated agent object.
Examples
cURL
curl -X PUT https://prod-agent-hosting-api.useagenthub.com/agents/agent-uuid \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "summary": "Updated agent description",
    "resources": {
      "memory": "2Gi"
    }
  }'
Delete Agent
Delete an agent blueprint and all associated resources.
Request
DELETE /agents/{agent_id}
Path Parameters
| Parameter | Type | Required | Description | 
|---|---|---|---|
agent_id | string | Yes | Agent ID | 
Response
Returns deletion preview with impact analysis:
{
  "agent": {
    "id": "agent-uuid",
    "name": "agent-name"
  },
  "impact": {
    "builds_to_delete": 5,
    "active_instances": 12,
    "total_instances": 45
  },
  "warnings": [
    "This will stop 12 active instances",
    "All build history will be lost"
  ]
}
Force Delete
To actually delete (after reviewing the preview):
curl -X DELETE https://prod-agent-hosting-api.useagenthub.com/agents/agent-uuid?force=true \
  -H "Authorization: Bearer your-api-key"
Get Agents by GitHub Repository
Find all agents created from a specific GitHub repository.
Request
POST /agents/by_github_repo
Request Body
{
  "github_repo": "username/repository-name",
  "organization_id": "org-uuid"
}
Response
{
  "data": [
    {
      "id": "agent-uuid",
      "name": "agent-name",
      "github_branch": "main",
      "created_at": "2024-01-15T10:30:00Z"
    }
  ]
}
Examples
cURL
curl -X POST https://prod-agent-hosting-api.useagenthub.com/agents/by_github_repo \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "github_repo": "username/my-agent",
    "organization_id": "org-uuid"
  }'
Host Agent (Deploy from Repository)
Automatically create an agent from a GitHub repository using the auto-dockerizer.
Request
POST /agents/host
This endpoint combines agent creation and build triggering:
- Creates agent blueprint from GitHub repo
 - Analyzes repository structure
 - Generates optimized Dockerfile
 - Triggers initial build
 - Returns real-time build logs via Server-Sent Events
 
Request Body
{
  "name": "auto-deployed-agent",
  "github_repo": "username/my-agent",
  "github_branch": "main", 
  "organization_id": "org-uuid"
}
Response
Returns Server-Sent Events stream with build progress:
data: {"type": "log", "message": "Cloning repository...", "timestamp": "2024-01-15T10:30:00Z"}
data: {"type": "log", "message": "Analyzing repository structure...", "timestamp": "2024-01-15T10:30:05Z"}
data: {"type": "log", "message": "Detected Python application with requirements.txt", "timestamp": "2024-01-15T10:30:08Z"}
data: {"type": "log", "message": "Generating optimized Dockerfile...", "timestamp": "2024-01-15T10:30:10Z"}
data: {"type": "success", "agent_id": "agent-uuid", "build_id": "build-uuid", "message": "Agent created and build started"}
Examples
JavaScript (SSE)
const eventSource = new EventSource(
  'https://prod-agent-hosting-api.useagenthub.com/agents/host',
  {
    headers: {
      'Authorization': 'Bearer your-api-key'
    }
  }
);
eventSource.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log(`[${data.type}] ${data.message}`);
  
  if (data.type === 'success') {
    console.log(`Agent created: ${data.agent_id}`);
    eventSource.close();
  }
};
cURL (HTTP/2 for SSE support)
curl -X POST https://prod-agent-hosting-api.useagenthub.com/agents/host \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  --http2 \
  -d '{
    "name": "my-agent",
    "github_repo": "username/my-agent",
    "organization_id": "org-uuid"
  }'
Error Responses
Common Errors
Agent Not Found (404)
{
  "error": {
    "code": "AGENT_NOT_FOUND",
    "message": "Agent with ID 'agent-uuid' not found"
  }
}
Validation Error (400)
{
  "error": {
    "code": "VALIDATION_ERROR", 
    "message": "Invalid agent configuration",
    "details": {
      "field": "github_repo",
      "reason": "Repository format must be 'owner/repo'"
    }
  }
}
Permission Denied (403)
{
  "error": {
    "code": "INSUFFICIENT_PERMISSIONS",
    "message": "You don't have permission to modify this agent"
  }
}
Repository Access Error (422)
{
  "error": {
    "code": "REPOSITORY_ACCESS_ERROR",
    "message": "Cannot access GitHub repository 'username/repo'",
    "details": {
      "reason": "Repository is private or does not exist"
    }
  }
}
Best Practices
Agent Configuration
Resource Planning:
{
  "resources": {
    "cpu": "0.5",        // Conservative start
    "memory": "512Mi",   // Monitor actual usage
    "cpu_limit": "2.0",  // Allow burst capacity
    "memory_limit": "2Gi" // Prevent OOM kills
  }
}
Environment Variables:
{
  "env_vars": {
    "API_KEY": "",           // Always empty for security
    "LOG_LEVEL": "INFO",     // Provide sensible defaults
    "TIMEOUT_SECONDS": "30", // String values for all env vars
    "FEATURE_FLAGS": "experimental=false,debug=false"
  }
}