GNETiX Docs
Api reference

API Reference

REST API endpoints

GNETiX exposes a REST API for all portal functionality. The API is served by the FastAPI backend and follows standard REST conventions.

Authentication

All endpoints except those marked as Public require a valid JWT Bearer token in the Authorization header:

curl -H "Authorization: Bearer <access_token>" \
     https://api.gnetix.ai/api/users

Tokens are obtained via the /api/auth/login endpoint and are valid for 15 minutes. Use /api/auth/refresh with a refresh token (valid for 7 days) to obtain new access tokens without re-authenticating.

Cross-Org Access

MSP admins and superusers can operate on behalf of another organization by including the X-Org-Id header:

curl -H "Authorization: Bearer <token>" \
     -H "X-Org-Id: <target-org-uuid>" \
     https://api.gnetix.ai/api/users

Without this header, requests are scoped to the authenticated user's own organization.


Auth

MethodPathDescriptionAuth
POST/api/auth/registerRegister a new accountPublic
POST/api/auth/loginLog in and receive tokensPublic
POST/api/auth/refreshRefresh an access tokenPublic
GET/api/auth/meGet current user profileRequired
POST/api/auth/logoutInvalidate current sessionRequired
POST/api/auth/forgot-passwordRequest a password reset emailPublic
POST/api/auth/reset-passwordReset password with tokenPublic

Organizations

MethodPathDescriptionAuth
GET/api/orgGet current user's orgRequired
PUT/api/orgUpdate current org settingsRequired
GET/api/orgsList all orgs (superuser/MSP)Required
POST/api/orgsCreate a new organizationRequired
GET/api/orgs/slug/{slug}Get org by slugRequired
GET/api/orgs/{org_id}Get org by IDRequired
PUT/api/orgs/{org_id}Update org by IDRequired
DELETE/api/orgs/{org_id}Delete an organizationRequired

Duo Configuration

MethodPathDescriptionAuth
GET/api/org/duoGet Duo MFA config for current orgRequired
PUT/api/org/duoSet Duo MFA configRequired
DELETE/api/org/duoRemove Duo MFA configRequired

Users

MethodPathDescriptionAuth
GET/api/usersList users in current orgRequired
GET/api/users/{user_id}Get user by IDRequired
POST/api/usersCreate a new userRequired
PATCH/api/users/{user_id}Update user profileRequired
DELETE/api/users/{user_id}Delete a userRequired
POST/api/users/{user_id}/admin-reset-passwordAdmin-initiated password resetRequired
PUT/api/users/{user_id}/passwordChange user password (self-service)Required

Agents

MethodPathDescriptionAuth
GET/api/agentsList agents in current orgRequired
POST/api/agents/tokenGenerate agent call-home tokenRequired
POST/api/registerRegister an agent (agent call-home)Agent Token
PATCH/api/agents/{agent_id}Update agent settingsRequired
DELETE/api/agents/{agent_id}Delete an agentRequired
POST/api/agents/{agent_id}/pushPush a command to an agentRequired
GET/api/agents/{agent_id}/mcp/capabilitiesGet agent MCP capabilitiesRequired
POST/api/agents/{agent_id}/mcp/call-toolCall a tool via agent relayRequired
POST/api/agents/{agent_id}/mcp/read-resourceRead a resource via agentRequired
POST/api/agents/{agent_id}/mcp/get-promptGet a prompt via agentRequired
POST/api/agents/{agent_id}/chatSend a chat message to agentRequired

MCP Servers

MethodPathDescriptionAuth
GET/api/mcp-serversList MCP serversRequired
POST/api/mcp-serversRegister an MCP serverRequired
GET/api/mcp-servers/{server_id}Get server detailsRequired
PATCH/api/mcp-servers/{server_id}Update server settingsRequired
DELETE/api/mcp-servers/{server_id}Delete a serverRequired
POST/api/mcp-servers/{server_id}/generate-oauth-credentialsGenerate OAuth client credentialsRequired
GET/api/mcp-servers/{server_id}/toolsList tools on server (live)Required
GET/api/mcp-servers/{server_id}/capabilitiesGet server capabilities (live)Required
POST/api/mcp-servers/{server_id}/sync-toolsSync tools to catalogRequired
GET/api/mcp-servers/{server_id}/catalogList cataloged toolsRequired
POST/api/mcp-servers/{server_id}/call-toolCall a tool on the serverRequired
POST/api/mcp-servers/{server_id}/read-resourceRead a resourceRequired
POST/api/mcp-servers/{server_id}/get-promptGet a promptRequired

Agent-Server Assignments

MethodPathDescriptionAuth
GET/api/agents/{agent_id}/mcp-serversList servers assigned to agentRequired
PUT/api/agents/{agent_id}/mcp-serversSet servers assigned to agentRequired

Config

Messaging Providers

MethodPathDescriptionAuth
GET/api/config/messaging/{provider}Get provider config (webex/slack/teams)Required
PUT/api/config/messaging/{provider}Set provider configRequired
DELETE/api/config/messaging/{provider}Remove provider configRequired

Director / LLM

MethodPathDescriptionAuth
GET/api/config/directorGet Director configurationRequired
PUT/api/config/director/system-promptUpdate system promptRequired
PUT/api/config/director/extended-thinkingToggle extended thinkingRequired
GET/api/config/llm-providersList configured LLM providersRequired
POST/api/config/llm-providersAdd an LLM providerRequired
PUT/api/config/llm-providers/{provider_id}/activateActivate a providerRequired
DELETE/api/config/llm-providers/{provider_id}Remove a providerRequired
PUT/api/config/llm-providers/budgetSet LLM budget limitsRequired
POST/api/config/director/chatSend a test chat messageRequired
POST/api/config/director/chat/streamStream a test chat responseRequired

Speech

MethodPathDescriptionAuth
POST/api/config/ttsText-to-speech synthesisRequired
POST/api/config/sttSpeech-to-text transcriptionRequired

Webhooks

MethodPathDescriptionAuth
GET/api/webhooksList webhook endpointsRequired
POST/api/webhooksCreate a webhook endpointRequired
PATCH/api/webhooks/{webhook_id}Update a webhookRequired
DELETE/api/webhooks/{webhook_id}Delete a webhookRequired
POST/api/webhooks/{webhook_id}/rotate-secretRotate signing secretRequired
GET/api/webhooks/{webhook_id}/eventsList webhook eventsRequired
GET/api/webhooks/{webhook_id}/events/streamSSE stream of eventsRequired
GET/api/webhooks/statsGet webhook statisticsRequired

Webhook ingest endpoints (where external systems POST events) use a separate URL path with HMAC authentication, not JWT.


Pipeline / Traces

MethodPathDescriptionAuth
GET/api/traces/recentList recent tracesRequired
GET/api/traces/{trace_id}Get a specific traceRequired
GET/api/traces/streamSSE stream of trace eventsRequired

Voice

MethodPathDescriptionAuth
POST/api/voice/chatSend a voice chat messageRequired
POST/api/voice/callInitiate an outbound voice callRequired

Additional Endpoints

Health

MethodPathDescriptionAuth
GET/healthHealth check with migration versionPublic

Activity

MethodPathDescriptionAuth
GET/api/activity/*Activity feed endpointsRequired

Usage

MethodPathDescriptionAuth
GET/api/usage/*LLM usage and cost trackingRequired

Tags

MethodPathDescriptionAuth
GET/POST/PATCH/DELETE/api/tags/*Tag managementRequired
GET/POST/PATCH/DELETE/api/tag-groups/*Tag group managementRequired

Souls (Agent Personas)

MethodPathDescriptionAuth
GET/POST/PATCH/DELETE/api/souls/*Agent persona managementRequired

Guardrails

MethodPathDescriptionAuth
GET/POST/PATCH/DELETE/api/guardrails/*Content guardrail rulesRequired

Audit Logs

MethodPathDescriptionAuth
GET/api/audit-logs/*Audit log queriesRequired

Tool Logs

MethodPathDescriptionAuth
GET/api/tool-logs/*Tool invocation audit logsRequired

MSP

MethodPathDescriptionAuth
GET/PUT/api/msp/*MSP relationship managementRequired

User Phones

MethodPathDescriptionAuth
GET/POST/PATCH/DELETE/api/user-phones/*User phone number managementRequired