Stellr API Reference
Integrate context-aware execution into your applications. The v1 API empowers developers to bind tools and interact with the Exegesis Centralized Execution (CE) engine seamlessly.
/v1/tools
Allows direct utilization of a tool. The authorization provided must match the owner of the tool being called. This endpoint is fundamental for manually triggering registered actions.
Dependencies & Context
Depends on OrrinAISDK & tool existence. Use the OrrinToolsSDK to create a tool that will be available through this endpoint.
Headers
Developer: Dev Bearer <developer_api_key>
User: Bearer <account_id> (Must be an account ID from a user subscribed to Orrin)
{
"toolId": "<tool_id>",
"action": "<tool_action>",
"payload": "<payload_for_action>"
}
{
"response": "<action_response>"
}
{
"status": 400,
"message": "<error_message>"
}
{
"status": 404,
"message": "<error_message>"
}
{
"status": 500,
"message": "<error_message>"
}
/v1/exegesis Base Headers
All requests directed to the /v1/exegesis endpoint group require the following authorization structure. You must provide either a Developer or User Bearer token to successfully authenticate your requests.
Developer:
Dev Bearer <developer_api_key>
User:
Bearer <account_id>
(Must be an account ID from a user subscribed to Orrin)
/v1/exegesis
Requests to Exegesis Centralized Execution (CE). This specific payload initializes a new context-aware chat session and returns a connection ID for subsequent requests.
Dependencies & Context
Depends on OrrinAISDK & tool existence. Use the OrrinToolsSDK to create a tool. Exegesis CE requires tool dependence to function.
{
"type": "start_chat",
"connectedToolId": "<tool_id>"
}
{
"status": 200,
"connection_id": "<connection_id>"
}
{
"status": 400,
"message": "user_not_subscribed"
}
{
"status": 404,
"message": "<error_message>"
}
{
"status": 500,
"message": "<error_message>"
}
/v1/exegesis
Retrieves existing chat details for a specific connection. Messages meant for contextual AI reference only (and should be ignored in user UI) will contain an ignore: true flag.
Dependencies & Context
Depends on OrrinAISDK & tool existence. Use the OrrinToolsSDK to create a tool. Exegesis CE requires tool dependence to function.
{
"type": "get_chat_details",
"connection_id": "<chat_connection_id>"
}
{
"status": 200,
"connection": {
"messages": [
<messages>
],
"actions": [
<actions_performed>
]
}
}
{
"status": 400,
"message": "user_not_subscribed"
}
{
"status": 404,
"message": "<error_message>"
}
{
"status": 500,
"message": "<error_message>"
}
/v1/exegesis
Sends input to an active connection. The AI evaluates context and decides whether to respond formally with text, recommend an action, or force an action on the user's behalf.
Dependencies & Context
Depends on OrrinAISDK & tool existence. Use the OrrinToolsSDK to create a tool. Exegesis CE requires tool dependence to function.
{
"type": "send_input",
"connection_id": "<connection_id>",
"message": "<message>"
}
Success; recommends an action. Store response_id to perform it later.
{
"status": 200,
"type": "recommended",
"response_id": "<response_id>",
"response": {
"action_name_recommended": "<action_name>",
"data": "<payload_for_action>"
}
}
Success; action was autonomously performed on user's behalf.
{
"status": 200,
"type": "forced",
"response_id": "<response_id>",
"response": {
"action_name_used": "<action_name>",
"result": "<result_of_action>",
"data": "<payload_for_action>"
}
}
Success; formal AI text response, no action taken.
{
"status": 200,
"type": "text",
"response_id": "<response_id>",
"response": "<ai_text_response>"
}
{
"status": 400,
"message": "<error_message>"
}
{
"status": 404,
"message": "<error_message>"
}
{
"status": 500,
"message": "<error_message>"
}
/v1/exegesis
Executes a previously recommended action provided by the AI. This allows explicit user confirmation of suggested tool interactions by supplying the connection ID alongside the response ID.
Dependencies & Context
Depends on OrrinAISDK & tool existence. Use the OrrinToolsSDK to create a tool. Exegesis CE requires tool dependence to function.
{
"type": "perform_recommended_action",
"connection_id": "<connection_id>",
"response_id": "<response_id>"
}
{
"status": 200,
"type": "forced",
"response_id": "<response_id>",
"response": {
"action_name_used": "<action_name>",
"result": "<result_of_action>",
"data": "<payload_for_action>"
}
}
{
"status": 400,
"message": "<error_message>"
}
{
"status": 404,
"message": "<error_message>"
}
{
"status": 500,
"message": "<error_message>"
}
/v1/orrin Base Headers
All requests directed to the /v1/orrin endpoint require OAuth Consent, along with the following authorization structure and the target user's account ID.
Developer:
Dev Bearer <developer_api_key>
User:
Bearer <account_id>
(Must be subscribed Orrin user)
Value:
<end_user_account_id>
/v1/orrin
Retrieves existing documents from a users Orrin account. You are required to provide tool_id or oauth_id
to confirm user account authentication.
{
"type": "obtain_docs",
"tool_id": "<tool_id>"
}
Option 2: Using oauth_id
{
"type": "obtain_docs",
"oauth_id": "<oauth_id>"
}
{
"status": 200,
"documents": [
<documents_object>
]
}
{
"status": 400,
"message": "<error_message>"
}
{
"status": 404,
"message": "<error_message>"
}
/v1/orrin
Creates a new document. Supply the document name and its markdown content. You are required to provide tool_id or oauth_id
to confirm user account authentication.
{
"type": "create_doc",
"tool_id": "<tool_id>",
"document_name": "<name_of_new_document>",
"markdown": "<markdown_content_for_new_document>"
}
Option 2: Using oauth_id
{
"type": "create_doc",
"oauth_id": "<oauth_id>",
"document_name": "<name_of_new_document>",
"markdown": "<markdown_content_for_new_document>"
}
{
"status": 200,
"message": "document_created",
"document_structure": {
<document_structure_object>
}
}
{
"status": 400,
"message": "<error_message>"
}
{
"status": 404,
"message": "<error_message>"
}
/v1/orrin
Deletes an existing document. Specify the document name. You are required to provide tool_id or oauth_id
to confirm user account authentication.
{
"type": "delete_doc",
"tool_id": "<tool_id>",
"document_name": "<name_of_document_to_delete>"
}
Option 2: Using oauth_id
{
"type": "delete_doc",
"oauth_id": "<oauth_id>",
"document_name": "<name_of_document_to_delete>"
}
{
"status": 200,
"message": "document_deleted"
}
{
"status": 400,
"message": "<error_message>"
}
{
"status": 404,
"message": "<error_message>"
}