Enjo API
This API allows external clients to connect with Enjo's AI agents. Users can send messages to the agents and automate workflows like generating support tickets. The API provides endpoints for seamless communication with AI agents through Enjo's platform. The API supports secure communication through Bearer token-based authentication.
Authentication
To access the API, developers must authenticate using Bearer tokens. These tokens are generated through the Personal Access Token settings within your workspace. Once created, the Bearer token can be included in the authorization header of your API requests to authenticate and interact with the API securely.
Accessing API Settings
Navigate to Personal Access Tokens:
Click on your settings icon in the bottom right corner of the Enjo dashboard.
Select Security -> Personal API Key from the left sidebar.

Click the Create Token button.
Assign a name to your token.
A new token will be generatedβmake sure to copy it immediately, as it will not be displayed again.
Making Your First API Request
API Endpoint
This endpoint allows you to send text to a bot and receive automated responses. Additionally, it can trigger the creation of tickets in an integrated ticketing system, such as Jira, ServiceNow, or other supported platforms, streamlining issue tracking and management.
Base URL:Β https://api.enjo.ai/
Post: v1/bots/:id/message
Ticketing Configuration The bot can automatically generate a ticket if it is configured with a ticketing platform.
If ticketing is not configured, refer to the AI Agent Ticketing Configuration Guide.
API Response Structure
Upon a successful interaction with the bot or the creation of a ticket, the API response will include comprehensive details. This ensures full transparency and traceability of the conversation and any actions the bot takes, such as creating a ticket.
Table format describes the structure and details of the response:
Field | Type | Description |
|---|---|---|
success | Boolean | Indicates whether the API call was successful (true) or encountered an error (false). |
data | object | Contains the primary data in the response when the API call is successful. |
βββ answers | String | The bot's response or answer to the user query, may include detailed text, facts, or solutions. |
βββ sources | Array of Objects | Lists the sources from where the answers are derived |
β βββ type | The type of source (e.g Jira , Knowledge Base). | |
β βββ name | String | Name or title of the source. |
β βββ score | Float | Confidence score of the source's relevance to the query. |
β βββ url | string | URL link to the source where more information can be found. |
βββ conversationId | string | A unique identifier to track the conversation and ensure continuity across multiple interactions. |
βββ ticketDetails | Object | Details about the ticket created in the external system (if applicable) |
β βββ url | String | URL to access the ticket in the external system. |
β βββ attributes | String | Metadata and additional information about the ticket. |
β βββ Id | String | Unique identifier for the ticket. |
β βββ Type | string | The category or type of issue raised in the ticket. |
β βββ Status | string | Current status of the ticket (e.g., Open, Closed). |
β βββ Priority | String | Priority level of the ticket (e.g., Low, Medium, High). |
β βββ Description | String | Description of the issue or request in the ticket. |
β βββ CreatedDate | String | Timestamp indicating when the ticket was created. |
β βββ LastModifiedDate | String | Timestamp indicating the last time the ticket was modified. |
Rate Limiting
Limit: 20 requests per minute per IP
Response (when limit exceeded):
{ "code": "rate_limit_error", "message": "Rate limit exceeded", "status": 429 } |
|---|
Throttling
Limit: 10 requests per 5 seconds per IP
Response (when throttling triggered):
{ "code": "rate_limit_error", "message": "Rate limit exceeded", "status": 429 } |
|---|
Troubleshooting Guide
Issue: "Invalid botId" error Solution: Double-check that the bot ID in your request matches the one listed in your Enjo dashboard.
Issue: No ticket response was received Solution: Confirm that the bot is properly set up for ticketing. For setup details, refer to the AI Agent Ticketing Configuration Guide.

