Skip to main content

API Reference

The Vois AI REST API lets you manage agents, skills, integrations, and conversations programmatically.

Base URL

https://dev.api.vois-ai.com/api

Authentication

All API requests require a session cookie or a bearer token. Include the Authorization header:

Authorization: Bearer <your-token>

Tokens can be obtained via the Keycloak token endpoint.

Project scoping

Most resources are scoped to a project. Include the project ID in the URL path:

/api/projects/{project_id}/agents
/api/projects/{project_id}/skills
/api/projects/{project_id}/tools

Endpoints

Agents

MethodPathDescription
GET/projects/{id}/agentsList all agents
POST/projects/{id}/agentsCreate an agent
GET/projects/{id}/agents/{agent_id}Get an agent
PUT/projects/{id}/agents/{agent_id}Update an agent
DELETE/projects/{id}/agents/{agent_id}Delete an agent

Skills

MethodPathDescription
GET/projects/{id}/skillsList all skills
POST/projects/{id}/skillsCreate a skill
GET/projects/{id}/skills/{skill_id}Get a skill
PUT/projects/{id}/skills/{skill_id}Update a skill
DELETE/projects/{id}/skills/{skill_id}Delete a skill

Integrations

MethodPathDescription
GET/tool-templatesList available integration templates
GET/projects/{id}/toolsList installed integrations
POST/projects/{id}/toolsInstall an integration
DELETE/projects/{id}/tools/{tool_id}Uninstall an integration

File Upload

MethodPathDescription
POST/projects/{id}/uploadUpload a file (image or PDF)

Request: multipart/form-data with a file field.

Response:

{
"url": "https://storage.blob.core.windows.net/uploads/...",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 204800
}

Rate limits

PlanRequests per minute
Starter60
Pro300
EnterpriseCustom

Errors

The API returns standard HTTP status codes:

CodeMeaning
200Success
400Bad request — check the request body
401Unauthorized — invalid or missing token
403Forbidden — insufficient permissions
404Not found
422Validation error — see detail field
500Internal server error

Error responses follow this shape:

{
"detail": "Human-readable error message"
}