API Conventions

Behaviour shared by every endpoint, documented once.

Direct Server Routes

These endpoints are defined directly in server.js, not in route files.

Health Check

GET /api/health

  • Authentication: None
  • Description: Global health check endpoint
  • Response:
{
  "status": "OK"
}

Get App Version

GET /api/version

  • Authentication: None
  • Description: Get the current application version (reads from package.json)
  • Response:
{
  "version": "0.5.0"
}

Check for Updates

GET /api/updates/check

  • Authentication: None
  • Description: Check for application updates (proxies to agnt.gg)
  • Response: Proxied response from update server

WebSocket / Socket.IO

AGNT uses Socket.IO for real-time bidirectional communication.

Connection

const socket = io('http://localhost:3333');
socket.emit('authenticate', { userId: 'user-id' });

Events

Event Direction Description
authenticate Client → Server Authenticate the socket connection
authenticated Server → Client Confirmation of successful authentication
disconnect Bidirectional Client disconnected
workflow:reverted Server → Client Broadcast when a workflow version is reverted
PLUGIN_INSTALLED Server → Client Broadcast when a plugin is installed

Real-time updates are broadcast via the global.io object throughout the backend.


Error Responses

All endpoints may return error responses in the following format:

{
  "success": false,
  "error": "Error message",
  "details": "Detailed error information",
  "code": "ERROR_CODE"
}

Common HTTP Status Codes

  • 200 OK: Request successful
  • 201 Created: Resource created successfully
  • 400 Bad Request: Invalid request parameters
  • 401 Unauthorized: Authentication required or invalid
  • 403 Forbidden: Insufficient permissions
  • 404 Not Found: Resource not found
  • 500 Internal Server Error: Server error

Rate Limiting

Some endpoints may have rate limiting applied. Check the X-RateLimit-Limit and X-RateLimit-Remaining headers in responses.


Pagination

List endpoints that return multiple items support pagination via query parameters:

  • page: Page number (default: 1)
  • limit: Items per page (default: 20, max: 100)
  • sort: Sort field
  • order: Sort order (asc, desc)

Example: GET /api/agents?page=2&limit=10&sort=createdAt&order=desc


File Uploads

Endpoints that accept file uploads use multipart/form-data content type and typically have the following limits:

  • Maximum file size: 20MB (varies by endpoint)
  • Supported formats: Varies by endpoint (images, documents, audio, etc.)

Server-Sent Events (SSE)

Streaming endpoints use Server-Sent Events for real-time updates. Connect using EventSource in JavaScript or any SSE client.

Example:

const eventSource = new EventSource('/api/orchestrator/chat', {
  headers: {
    Authorization: 'Bearer your-token',
  },
});

eventSource.onmessage = function (event) {
  const data = JSON.parse(event.data);
  console.log(data);
};

WebSocket Support

Some endpoints may support WebSocket connections for real-time bidirectional communication. Check endpoint documentation for WebSocket availability.


The AGNT briefing

Stay in the loop.

New agents, workflows and field notes. Sign up for AGNT updates.

By subscribing, you agree to receive AGNT updates. Unsubscribe any time. Privacy policy.