Skip to content

API Reference

API Reference

This page documents the public REST endpoints currently exposed by the web application. At the moment, the public surface mainly covers:

  • Functional agent execution
  • Memory type administration
  • Memory object administration

All endpoints require a Bearer token.

Include your server token in the Authorization header:

Terminal window
curl https://your-instance.nara.de/api/endpoint \
-H "Authorization: Bearer YOUR_SERVER_TOKEN" \
-H "Content-Type: application/json"

Generate server tokens from Settings > API & Security. See Authentication & Tokens for details.

The current public agent API is designed for functional agents. It does not accept arbitrary chat transcripts. Instead, you call a named functional agent with structured arguments.

GET /api/agent/run

Returns the functional agents in your organization that can be executed through this API.

Terminal window
curl https://your-instance.nara.de/api/agent/run \
-H "Authorization: Bearer YOUR_SERVER_TOKEN"

Example response:

{
"agents": [{ "name": "classifyUnspsc" }, { "name": "summarizeTicket" }]
}

POST /api/agent/run

Terminal window
curl -X POST https://your-instance.nara.de/api/agent/run \
-H "Authorization: Bearer YOUR_SERVER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"agentName": "classifyUnspsc",
"args": {
"title": "Printer is offline",
"description": "User cannot print from the office network printer."
}
}'

Notes:

  • The agent must exist by name in your organization.
  • The agent must be a functional agent.
  • Functional agents that depend on interactive app-only tools are not runnable through this API.
  • args must match the tool contract configured for that functional agent.

Typical error cases:

  • 400 for invalid body data or invalid arguments
  • 404 when the agent name does not exist
  • 402 when there are not enough credits to execute the run

The public memory REST API currently exposes types and objects endpoints.

MethodPathDescription
GET/api/memory/typesList memory types
POST/api/memory/typesCreate a memory type
PUT/api/memory/types/{id}Update a memory type
DELETE/api/memory/types/{id}Delete a memory type
Terminal window
curl https://your-instance.nara.de/api/memory/types \
-H "Authorization: Bearer YOUR_SERVER_TOKEN"

Example response:

{
"items": [
{
"id": "7d5d2f7f-7f4e-4609-9f2d-9e8ef5fd1111",
"type": "TroubleshootingGuide",
"displayName": "Troubleshooting Guide",
"description": "Structured troubleshooting knowledge",
"visibility": "PRIVATE",
"version": 1,
"jsonSchema": { "type": "object" },
"idSchema": null,
"groupNames": ["KNOWLEDGE"],
"relations": []
}
]
}
Terminal window
curl -X POST https://your-instance.nara.de/api/memory/types \
-H "Authorization: Bearer YOUR_SERVER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "TroubleshootingGuide",
"displayName": "Troubleshooting Guide",
"description": "Structured troubleshooting knowledge",
"jsonSchema": {
"type": "object",
"required": ["title"],
"properties": {
"title": { "type": "string" },
"resolution": { "type": "string" }
}
},
"groupNames": ["KNOWLEDGE"]
}'

Supported fields in the create body:

  • type
  • displayName
  • description
  • visibility
  • jsonSchema
  • idSchema
  • embeddingSchema
  • groupNames
  • relations
MethodPathDescription
GET/api/memory/objectsList memory objects
POST/api/memory/objectsCreate a memory object
PATCH/api/memory/objects/{id}Update a memory object
DELETE/api/memory/objects/{id}Delete a memory object
Terminal window
curl "https://your-instance.nara.de/api/memory/objects?type=TroubleshootingGuide&page=1&pageSize=20" \
-H "Authorization: Bearer YOUR_SERVER_TOKEN"

Supported query parameters:

  • typeId
  • type
  • key
  • page
  • pageSize

Example response:

{
"total": 1,
"items": [
{
"id": "7ec6a9ba-32cf-4f51-b859-5e5c228f2222",
"typeId": "7d5d2f7f-7f4e-4609-9f2d-9e8ef5fd1111",
"key": "printer-offline-fix",
"content": {
"title": "Printer Offline Fix",
"resolution": "Restart the spooler and verify connectivity."
}
}
]
}
Terminal window
curl -X POST https://your-instance.nara.de/api/memory/objects \
-H "Authorization: Bearer YOUR_SERVER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"typeId": "7d5d2f7f-7f4e-4609-9f2d-9e8ef5fd1111",
"key": "printer-offline-fix",
"content": {
"title": "Printer Offline Fix",
"resolution": "Restart the spooler and verify connectivity."
}
}'
Terminal window
curl -X PATCH https://your-instance.nara.de/api/memory/objects/7ec6a9ba-32cf-4f51-b859-5e5c228f2222 \
-H "Authorization: Bearer YOUR_SERVER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": {
"title": "Printer Offline Fix",
"resolution": "Restart the spooler service, then reconnect the printer."
}
}'

Endpoints return JSON errors with an error field and, where relevant, additional details.

Example:

{
"error": "Invalid request data"
}

Common statuses:

StatusMeaning
400Invalid request body, parameters, or schema validation
401Missing or invalid token
403Admin access required
404Resource not found
402Insufficient credits for agent execution
500Unexpected server error