Inkeep Chat API

Copy page

Complete REST API for Inkeep Chat application including chat completions, A2A agent communication, and comprehensive CRUD operations for all entities

Health check

Check if the service is healthy and running

GET
/health

Response Body

curl -X GET "http://localhost:3002/health"
Empty

Create chat completion

Creates a new chat completion with streaming SSE response using the configured agent graph

POST
/tenants/{tenantId}/projects/{projectId}/graphs/{graphId}/v1/chat/completions

Path Parameters

tenantIdstring

The tenant identifier

projectIdstring

The project identifier

graphIdstring

The agent graph identifier

modelstring

The model to use for the completion

messagesarray<object>

The conversation messages

temperature?number

Controls randomness (0-1)

top_p?number

Controls nucleus sampling

n?number

Number of completions to generate

stream?boolean

Whether to stream the response

max_tokens?number

Maximum tokens to generate

presence_penalty?number

Presence penalty (-2 to 2)

frequency_penalty?number

Frequency penalty (-2 to 2)

logit_bias?object

Token logit bias

Empty Object

user?string

User identifier

conversationId?string

Conversation ID for multi-turn chat

tools?array<string>

Available tools

runConfig?object

Run configuration

Empty Object

requestContext?object

Context data for template processing (validated against context config schema)

Empty Object

Response Body

curl -X POST "http://localhost:3002/tenants/string/projects/string/graphs/string/v1/chat/completions" \  -H "Content-Type: application/json" \  -d '{    "model": "string",    "messages": [      {        "role": "system",        "content": "string"      }    ]  }'
"string"
{
  "error": "string",
  "details": [
    {
      "field": "string",
      "message": "string",
      "value": null
    }
  ]
}
{
  "error": "string"
}
{
  "error": "string",
  "message": "string"
}

/tenants/{tenantId}/projects/{projectId}/agents/{graphId}/{agentId}/.well-known/agent.json

GET
/tenants/{tenantId}/projects/{projectId}/agents/{graphId}/{agentId}/.well-known/agent.json

Path Parameters

tenantIdstring
projectIdstring
graphIdstring
agentIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/projects/string/agents/string/string/.well-known/agent.json"
{
  "name": "string",
  "description": "string",
  "url": "string",
  "version": "string",
  "defaultInputModes": [
    "string"
  ],
  "defaultOutputModes": [
    "string"
  ],
  "skills": [
    null
  ]
}
Empty

/tenants/{tenantId}/projects/{projectId}/agents/{graphId}/.well-known/agent.json

GET
/tenants/{tenantId}/projects/{projectId}/agents/{graphId}/.well-known/agent.json

Path Parameters

tenantIdstring
projectIdstring
graphIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/projects/string/agents/string/.well-known/agent.json"
{
  "name": "string",
  "description": "string",
  "url": "string",
  "version": "string",
  "defaultInputModes": [
    "string"
  ],
  "defaultOutputModes": [
    "string"
  ],
  "skills": [
    null
  ]
}
Empty

Chat (Vercel Streaming Protocol)

Chat completion endpoint streaming with Vercel data stream protocol.

POST
/tenants/{tenantId}/projects/{projectId}/graphs/{graphId}/api/chat

Path Parameters

tenantIdstring

The tenant identifier

projectIdstring

The project identifier

graphIdstring

The agent graph identifier

model?string
messagesarray<object>
id?string
conversationId?string
requestContext?object

Context data for template processing

Empty Object

Response Body

curl -X POST "http://localhost:3002/tenants/string/projects/string/graphs/string/api/chat" \  -H "Content-Type: application/json" \  -d '{    "messages": [      {        "role": "system"      }    ]  }'
Empty
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Projects

List all projects within a tenant with pagination

GET
/tenants/{tenantId}/crud/projects

Path Parameters

tenantIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects?page=1&limit=10"
{
  "data": [
    {
      "id": "my-project",
      "name": "My Project",
      "description": "A project for managing AI agents and resources",
      "createdAt": "2025-09-03T00:29:03.375Z",
      "updatedAt": "2025-09-03T00:29:03.376Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Project

Create a new project

POST
/tenants/{tenantId}/crud/projects

Path Parameters

tenantIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
namestring
Length1 <= length
descriptionstring
Length1 <= length
createdAt?string
updatedAt?string

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects" \  -H "Content-Type: application/json" \  -d '{    "id": "my-project",    "name": "My Project",    "description": "A project for managing AI agents and resources"  }'
{
  "data": {
    "id": "my-project",
    "name": "My Project",
    "description": "A project for managing AI agents and resources",
    "createdAt": "2025-09-03T00:29:03.375Z",
    "updatedAt": "2025-09-03T00:29:03.376Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "error": "string",
  "message": "string",
  "details": null
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Project

Get a single project by ID

GET
/tenants/{tenantId}/crud/projects/{id}

Path Parameters

tenantIdstring
idstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string"
{
  "data": {
    "id": "my-project",
    "name": "My Project",
    "description": "A project for managing AI agents and resources",
    "createdAt": "2025-09-03T00:29:03.375Z",
    "updatedAt": "2025-09-03T00:29:03.376Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Update Project

Update an existing project

PATCH
/tenants/{tenantId}/crud/projects/{id}

Path Parameters

tenantIdstring
idstring
name?string
Length1 <= length
description?string
Length1 <= length
createdAt?string
updatedAt?string

Response Body

curl -X PATCH "http://localhost:3002/tenants/string/crud/projects/string" \  -H "Content-Type: application/json" \  -d '{    "name": "Updated Project Name",    "description": "Updated project description with more details"  }'
{
  "data": {
    "id": "my-project",
    "name": "My Project",
    "description": "A project for managing AI agents and resources",
    "createdAt": "2025-09-03T00:29:03.375Z",
    "updatedAt": "2025-09-03T00:29:03.376Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Project

Delete a project. Will fail if the project has existing resources.

DELETE
/tenants/{tenantId}/crud/projects/{id}

Path Parameters

tenantIdstring
idstring

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string"
Empty
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "error": "string",
  "message": "string",
  "details": null
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Agents

GET
/tenants/{tenantId}/crud/projects/{projectId}/agents

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agents?page=1&limit=10"
{
  "data": [
    {
      "id": "customer-support-agent",
      "name": "Customer Support Agent",
      "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
      "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Agent

POST
/tenants/{tenantId}/crud/projects/{projectId}/agents

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
namestring
descriptionstring
instructionsstring
conversationHistoryConfig?string & number & boolean & object & array<unknown>
modelSettings?object
createdAt?string
updatedAt?string
type?string
Value in"internal"

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/agents" \  -H "Content-Type: application/json" \  -d '{    "id": "customer-support-agent",    "name": "Customer Support Agent",    "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",    "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."  }'
{
  "data": {
    "id": "customer-support-agent",
    "name": "Customer Support Agent",
    "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
    "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Agent

GET
/tenants/{tenantId}/crud/projects/{projectId}/agents/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agents/string"
{
  "data": {
    "id": "customer-support-agent",
    "name": "Customer Support Agent",
    "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
    "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Agent

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/agents/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/agents/string"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}

Update Agent

PUT
/tenants/{tenantId}/crud/projects/{projectId}/agents/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring
id?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
name?string
description?string
instructions?string
conversationHistoryConfig?string & number & boolean & object & array<unknown>
modelSettings?object
createdAt?string
updatedAt?string
type?string
Value in"internal"

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/agents/string" \  -H "Content-Type: application/json" \  -d '{    "name": "Enhanced Customer Support Agent",    "description": "An improved AI agent specialized in handling customer support inquiries with enhanced problem-solving capabilities",    "instructions": "You are an enhanced customer support agent with access to advanced tools. Be polite, professional, and empathetic. Use available tools to look up customer information, order history, and process refunds when appropriate. Always aim to resolve issues on the first contact."  }'
{
  "data": {
    "id": "customer-support-agent",
    "name": "Customer Support Agent",
    "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
    "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Agent Relations

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-relations

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100
sourceAgentId?string
targetAgentId?string
externalAgentId?string

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-relations?page=1&limit=10&sourceAgentId=string&targetAgentId=string&externalAgentId=string"
{
  "data": [
    {
      "id": "string",
      "graphId": "string",
      "sourceAgentId": "string",
      "targetAgentId": "string",
      "externalAgentId": "string",
      "relationType": "transfer",
      "createdAt": "string",
      "updatedAt": "string"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Agent Relation

POST
/tenants/{tenantId}/crud/projects/{projectId}/agent-relations

Path Parameters

tenantIdstring
projectIdstring
graphIdstring
sourceAgentIdstring
targetAgentId?string | null
externalAgentId?string | null
relationType?string
Value in"transfer" | "delegate"

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/agent-relations" \  -H "Content-Type: application/json" \  -d '{    "graphId": "string",    "sourceAgentId": "string"  }'
{
  "data": {
    "id": "string",
    "graphId": "string",
    "sourceAgentId": "string",
    "targetAgentId": "string",
    "externalAgentId": "string",
    "relationType": "transfer",
    "createdAt": "string",
    "updatedAt": "string"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Agent Relation

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-relations/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-relations/string"
{
  "data": {
    "id": "string",
    "graphId": "string",
    "sourceAgentId": "string",
    "targetAgentId": "string",
    "externalAgentId": "string",
    "relationType": "transfer",
    "createdAt": "string",
    "updatedAt": "string"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Agent Relation

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/agent-relations/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/agent-relations/string"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}

Update Agent Relation

PUT
/tenants/{tenantId}/crud/projects/{projectId}/agent-relations/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
graphId?string
sourceAgentId?string
targetAgentId?string | null
externalAgentId?string | null
relationType?string
Value in"transfer" | "delegate"

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/agent-relations/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "id": "string",
    "graphId": "string",
    "sourceAgentId": "string",
    "targetAgentId": "string",
    "externalAgentId": "string",
    "relationType": "transfer",
    "createdAt": "string",
    "updatedAt": "string"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Agent Graphs

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-graphs

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-graphs?page=1&limit=10"
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "defaultAgentId": "string",
      "contextConfigId": "string",
      "modelSettings": "string",
      "statusUpdates": "string",
      "createdAt": "string",
      "updatedAt": "string"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Agent Graph

POST
/tenants/{tenantId}/crud/projects/{projectId}/agent-graphs

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
namestring
description?string | null
defaultAgentId?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
contextConfigId?string | null
modelSettings?string & number & boolean & object & array<unknown>
statusUpdates?string & number & boolean & object & array<unknown>
createdAt?string
updatedAt?string

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/agent-graphs" \  -H "Content-Type: application/json" \  -d '{    "id": "string",    "name": "string"  }'
{
  "data": {
    "id": "string",
    "name": "string",
    "description": "string",
    "defaultAgentId": "string",
    "contextConfigId": "string",
    "modelSettings": "string",
    "statusUpdates": "string",
    "createdAt": "string",
    "updatedAt": "string"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Agent Graph

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-graphs/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-graphs/string"
{
  "data": {
    "id": "string",
    "name": "string",
    "description": "string",
    "defaultAgentId": "string",
    "contextConfigId": "string",
    "modelSettings": "string",
    "statusUpdates": "string",
    "createdAt": "string",
    "updatedAt": "string"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Agent Graph

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/agent-graphs/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/agent-graphs/string"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}

Update Agent Graph

PUT
/tenants/{tenantId}/crud/projects/{projectId}/agent-graphs/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
id?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
name?string
description?string | null
defaultAgentId?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
contextConfigId?string | null
modelSettings?string & number & boolean & object & array<unknown>
statusUpdates?string & number & boolean & object & array<unknown>
createdAt?string
updatedAt?string

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/agent-graphs/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "id": "string",
    "name": "string",
    "description": "string",
    "defaultAgentId": "string",
    "contextConfigId": "string",
    "modelSettings": "string",
    "statusUpdates": "string",
    "createdAt": "string",
    "updatedAt": "string"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}
GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-graphs/{graphId}/agents/{agentId}/related

Path Parameters

tenantIdstring
projectIdstring
graphIdstring
agentIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-graphs/string/agents/string/related"
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "description": "string"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Full Graph Definition

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-graphs/{graphId}/full

Path Parameters

tenantIdstring
projectIdstring
graphIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-graphs/string/full"
{
  "data": {
    "id": "string",
    "name": "string",
    "description": "string",
    "defaultAgentId": "string",
    "contextConfigId": "string",
    "modelSettings": {
      "model": "string",
      "structuredOutput": "string",
      "summarizer": "string",
      "providerOptions": {
        "property1": {
          "property1": null,
          "property2": null
        },
        "property2": {
          "property1": null,
          "property2": null
        }
      }
    },
    "statusUpdates": {
      "numEvents": 0,
      "timeInSeconds": 0,
      "model": "string",
      "prompt": "string",
      "statusComponents": [
        {
          "id": "string",
          "name": "string",
          "description": "string",
          "schema": {
            "type": "object",
            "properties": {
              "property1": null,
              "property2": null
            },
            "required": [
              "string"
            ]
          }
        }
      ]
    },
    "createdAt": "string",
    "updatedAt": "string",
    "agents": {
      "property1": {
        "id": "customer-support-agent",
        "name": "Customer Support Agent",
        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
      },
      "property2": {
        "id": "customer-support-agent",
        "name": "Customer Support Agent",
        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
      }
    },
    "tools": {
      "property1": {
        "id": "string",
        "name": "string",
        "config": "string",
        "credentialReferenceId": "string",
        "headers": "string",
        "imageUrl": "string",
        "capabilities": {
          "tools": true,
          "streaming": true
        },
        "status": "healthy",
        "lastHealthCheck": "string",
        "lastError": "string",
        "availableTools": [
          {
            "name": "string",
            "description": "string",
            "inputSchema": null
          }
        ],
        "lastToolsSync": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "activeTools": [
          "string"
        ]
      },
      "property2": {
        "id": "string",
        "name": "string",
        "config": "string",
        "credentialReferenceId": "string",
        "headers": "string",
        "imageUrl": "string",
        "capabilities": {
          "tools": true,
          "streaming": true
        },
        "status": "healthy",
        "lastHealthCheck": "string",
        "lastError": "string",
        "availableTools": [
          {
            "name": "string",
            "description": "string",
            "inputSchema": null
          }
        ],
        "lastToolsSync": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "activeTools": [
          "string"
        ]
      }
    },
    "credentialReferences": [
      {
        "id": "slack-main-workspace",
        "type": "nango",
        "credentialStoreId": "nango-default",
        "retrievalParams": {
          "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",
          "providerConfigKey": "slack-agent"
        }
      }
    ],
    "dataComponents": {
      "property1": {
        "id": "orders-list",
        "name": "OrdersList",
        "description": "Display a list of user orders with interactive options",
        "props": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Order items to select from"
            }
          },
          "required": [
            "orders"
          ]
        }
      },
      "property2": {
        "id": "orders-list",
        "name": "OrdersList",
        "description": "Display a list of user orders with interactive options",
        "props": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Order items to select from"
            }
          },
          "required": [
            "orders"
          ]
        }
      }
    },
    "artifactComponents": {
      "property1": {
        "id": "user-profile-card",
        "name": "UserProfileCard",
        "description": "Display user profile information with interactive elements",
        "summaryProps": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "User name"
            },
            "role": {
              "type": "string",
              "description": "User role"
            }
          },
          "required": [
            "name"
          ]
        },
        "fullProps": {
          "type": "object",
          "properties": {
            "user": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "avatar": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "bio": {
                  "type": "string"
                }
              },
              "description": "Complete user information"
            },
            "showActions": {
              "type": "boolean",
              "description": "Whether to show action buttons",
              "default": true
            },
            "metadata": {
              "type": "object",
              "description": "Additional metadata for the profile"
            }
          },
          "required": [
            "user"
          ]
        }
      },
      "property2": {
        "id": "user-profile-card",
        "name": "UserProfileCard",
        "description": "Display user profile information with interactive elements",
        "summaryProps": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "User name"
            },
            "role": {
              "type": "string",
              "description": "User role"
            }
          },
          "required": [
            "name"
          ]
        },
        "fullProps": {
          "type": "object",
          "properties": {
            "user": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "avatar": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "bio": {
                  "type": "string"
                }
              },
              "description": "Complete user information"
            },
            "showActions": {
              "type": "boolean",
              "description": "Whether to show action buttons",
              "default": true
            },
            "metadata": {
              "type": "object",
              "description": "Additional metadata for the profile"
            }
          },
          "required": [
            "user"
          ]
        }
      }
    },
    "contextConfig": {
      "id": "user-context-config",
      "name": "User Context Configuration",
      "description": "Context configuration for user authentication and preferences",
      "requestContextSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "User identifier"
          },
          "sessionToken": {
            "type": "string",
            "description": "Session token for authentication"
          }
        },
        "required": [
          "userId"
        ]
      },
      "contextVariables": {
        "userProfile": {
          "id": "user-profile",
          "name": "User Profile",
          "trigger": "initialization",
          "fetchConfig": {
            "url": "https://api.example.com/users/{{requestContext.userId}}",
            "method": "GET",
            "headers": {
              "Authorization": "Bearer {{requestContext.sessionToken}}"
            }
          },
          "defaultValue": {
            "name": "Anonymous User"
          }
        }
      }
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Agent Tool Relations

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-tool-relations

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100
agentId?string
toolId?string

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-tool-relations?page=1&limit=10&agentId=string&toolId=string"
{
  "data": [
    {
      "id": "rel-12345",
      "agentId": "customer-support-agent",
      "toolId": "github-mcp-tool",
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Agent Tool Relation

POST
/tenants/{tenantId}/crud/projects/{projectId}/agent-tool-relations

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
agentIdstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
toolIdstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/agent-tool-relations" \  -H "Content-Type: application/json" \  -d '{    "agentId": "customer-support-agent",    "toolId": "github-mcp-tool"  }'
{
  "data": {
    "id": "rel-12345",
    "agentId": "customer-support-agent",
    "toolId": "github-mcp-tool",
    "createdAt": "2024-01-01T00:00:00Z",
    "updatedAt": "2024-01-01T00:00:00Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Agent Tool Relation

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-tool-relations/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-tool-relations/string"
{
  "data": {
    "id": "rel-12345",
    "agentId": "customer-support-agent",
    "toolId": "github-mcp-tool",
    "createdAt": "2024-01-01T00:00:00Z",
    "updatedAt": "2024-01-01T00:00:00Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Agent Tool Relation

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/agent-tool-relations/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/agent-tool-relations/string"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}

Update Agent Tool Relation

PUT
/tenants/{tenantId}/crud/projects/{projectId}/agent-tool-relations/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
id?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
agentId?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
toolId?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/agent-tool-relations/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "id": "rel-12345",
    "agentId": "customer-support-agent",
    "toolId": "github-mcp-tool",
    "createdAt": "2024-01-01T00:00:00Z",
    "updatedAt": "2024-01-01T00:00:00Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Tools for Agent

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-tool-relations/agent/{agentId}/tools

Path Parameters

tenantIdstring
projectIdstring
agentIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-tool-relations/agent/string/tools?page=1&limit=10"
{
  "data": [
    {
      "id": "rel-12345",
      "agentId": "customer-support-agent",
      "toolId": "github-mcp-tool",
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Agents for Tool

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-tool-relations/tool/{toolId}/agents

Path Parameters

tenantIdstring
projectIdstring
toolIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-tool-relations/tool/string/agents?page=1&limit=10"
{
  "data": [
    {
      "id": "rel-12345",
      "agentId": "customer-support-agent",
      "toolId": "github-mcp-tool",
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Artifact Components for Agent

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-artifact-components/agent/:agentId

Path Parameters

tenantIdstring
projectIdstring
agentIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-artifact-components/agent/:agentId"
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "summaryProps": {
        "property1": null,
        "property2": null
      },
      "fullProps": {
        "property1": null,
        "property2": null
      },
      "createdAt": "string",
      "updatedAt": "string"
    }
  ]
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Agents Using Artifact Component

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-artifact-components/component/:artifactComponentId/agents

Path Parameters

tenantIdstring
projectIdstring
artifactComponentIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-artifact-components/component/:artifactComponentId/agents"
{
  "data": [
    {
      "agentId": "string",
      "createdAt": "string"
    }
  ]
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Associate Artifact Component with Agent

POST
/tenants/{tenantId}/crud/projects/{projectId}/agent-artifact-components

Path Parameters

tenantIdstring
projectIdstring
id?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
agentIdstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
artifactComponentIdstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/agent-artifact-components" \  -H "Content-Type: application/json" \  -d '{    "agentId": "string",    "artifactComponentId": "string"  }'
{
  "data": {
    "id": "string",
    "agentId": "string",
    "artifactComponentId": "string",
    "createdAt": "string"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "error": "string",
  "message": "string",
  "details": null
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Remove Artifact Component from Agent

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/agent-artifact-components/agent/:agentId/component/:artifactComponentId

Path Parameters

tenantIdstring
projectIdstring
agentIdstring
artifactComponentIdstring

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/agent-artifact-components/agent/:agentId/component/:artifactComponentId"
{
  "message": "string",
  "removed": true
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Check if Artifact Component is Associated with Agent

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-artifact-components/agent/:agentId/component/:artifactComponentId/exists

Path Parameters

tenantIdstring
projectIdstring
agentIdstring
artifactComponentIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-artifact-components/agent/:agentId/component/:artifactComponentId/exists"
{
  "exists": true
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Data Components for Agent

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-data-components/agent/:agentId

Path Parameters

tenantIdstring
projectIdstring
agentIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-data-components/agent/:agentId"
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "props": {
        "property1": null,
        "property2": null
      },
      "createdAt": "string",
      "updatedAt": "string"
    }
  ]
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Agents Using Data Component

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-data-components/component/:dataComponentId/agents

Path Parameters

tenantIdstring
projectIdstring
dataComponentIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-data-components/component/:dataComponentId/agents"
{
  "data": [
    {
      "agentId": "string",
      "createdAt": "string"
    }
  ]
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Associate Data Component with Agent

POST
/tenants/{tenantId}/crud/projects/{projectId}/agent-data-components

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
agentIdstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
dataComponentIdstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/agent-data-components" \  -H "Content-Type: application/json" \  -d '{    "id": "string",    "agentId": "string",    "dataComponentId": "string"  }'
{
  "data": {
    "id": "string",
    "agentId": "string",
    "dataComponentId": "string",
    "createdAt": "string"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "error": "string",
  "message": "string",
  "details": null
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Remove Data Component from Agent

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/agent-data-components/agent/:agentId/component/:dataComponentId

Path Parameters

tenantIdstring
projectIdstring
agentIdstring
dataComponentIdstring

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/agent-data-components/agent/:agentId/component/:dataComponentId"
{
  "message": "string",
  "removed": true
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Check if Data Component is Associated with Agent

GET
/tenants/{tenantId}/crud/projects/{projectId}/agent-data-components/agent/:agentId/component/:dataComponentId/exists

Path Parameters

tenantIdstring
projectIdstring
agentIdstring
dataComponentIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/agent-data-components/agent/:agentId/component/:dataComponentId/exists"
{
  "exists": true
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Artifact Components

GET
/tenants/{tenantId}/crud/projects/{projectId}/artifact-components

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/artifact-components?page=1&limit=10"
{
  "data": [
    {
      "id": "user-profile-card",
      "name": "UserProfileCard",
      "description": "Display user profile information with interactive elements",
      "summaryProps": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "User name"
          },
          "role": {
            "type": "string",
            "description": "User role"
          }
        },
        "required": [
          "name"
        ]
      },
      "fullProps": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "email": {
                "type": "string"
              },
              "avatar": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "bio": {
                "type": "string"
              }
            },
            "description": "Complete user information"
          },
          "showActions": {
            "type": "boolean",
            "description": "Whether to show action buttons",
            "default": true
          },
          "metadata": {
            "type": "object",
            "description": "Additional metadata for the profile"
          }
        },
        "required": [
          "user"
        ]
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Artifact Component

POST
/tenants/{tenantId}/crud/projects/{projectId}/artifact-components

Path Parameters

tenantIdstring
projectIdstring
id?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
namestring
descriptionstring
summaryProps?object

Empty Object

fullProps?object

Empty Object

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/artifact-components" \  -H "Content-Type: application/json" \  -d '{    "id": "user-profile-card",    "name": "UserProfileCard",    "description": "Display user profile information with interactive elements",    "summaryProps": {      "type": "object",      "properties": {        "name": {          "type": "string",          "description": "User name"        },        "role": {          "type": "string",          "description": "User role"        }      },      "required": [        "name"      ]    },    "fullProps": {      "type": "object",      "properties": {        "user": {          "type": "object",          "properties": {            "name": {              "type": "string"            },            "email": {              "type": "string"            },            "avatar": {              "type": "string"            },            "role": {              "type": "string"            },            "bio": {              "type": "string"            }          },          "description": "Complete user information"        },        "showActions": {          "type": "boolean",          "description": "Whether to show action buttons",          "default": true        },        "metadata": {          "type": "object",          "description": "Additional metadata for the profile"        }      },      "required": [        "user"      ]    }  }'
{
  "data": {
    "id": "user-profile-card",
    "name": "UserProfileCard",
    "description": "Display user profile information with interactive elements",
    "summaryProps": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "User name"
        },
        "role": {
          "type": "string",
          "description": "User role"
        }
      },
      "required": [
        "name"
      ]
    },
    "fullProps": {
      "type": "object",
      "properties": {
        "user": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "email": {
              "type": "string"
            },
            "avatar": {
              "type": "string"
            },
            "role": {
              "type": "string"
            },
            "bio": {
              "type": "string"
            }
          },
          "description": "Complete user information"
        },
        "showActions": {
          "type": "boolean",
          "description": "Whether to show action buttons",
          "default": true
        },
        "metadata": {
          "type": "object",
          "description": "Additional metadata for the profile"
        }
      },
      "required": [
        "user"
      ]
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Artifact Component

GET
/tenants/{tenantId}/crud/projects/{projectId}/artifact-components/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/artifact-components/string"
{
  "data": {
    "id": "user-profile-card",
    "name": "UserProfileCard",
    "description": "Display user profile information with interactive elements",
    "summaryProps": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "User name"
        },
        "role": {
          "type": "string",
          "description": "User role"
        }
      },
      "required": [
        "name"
      ]
    },
    "fullProps": {
      "type": "object",
      "properties": {
        "user": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "email": {
              "type": "string"
            },
            "avatar": {
              "type": "string"
            },
            "role": {
              "type": "string"
            },
            "bio": {
              "type": "string"
            }
          },
          "description": "Complete user information"
        },
        "showActions": {
          "type": "boolean",
          "description": "Whether to show action buttons",
          "default": true
        },
        "metadata": {
          "type": "object",
          "description": "Additional metadata for the profile"
        }
      },
      "required": [
        "user"
      ]
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Artifact Component

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/artifact-components/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/artifact-components/string"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}

Update Artifact Component

PUT
/tenants/{tenantId}/crud/projects/{projectId}/artifact-components/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
id?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
name?string
description?string
summaryProps?object

Empty Object

fullProps?object

Empty Object

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/artifact-components/string" \  -H "Content-Type: application/json" \  -d '{    "name": "Enhanced UserProfileCard",    "description": "Display user profile information with enhanced interactive elements and customization",    "summaryProps": {      "type": "object",      "properties": {        "name": {          "type": "string",          "description": "User name"        },        "role": {          "type": "string",          "description": "User role"        },        "status": {          "type": "string",          "description": "User status"        }      },      "required": [        "name"      ]    },    "fullProps": {      "type": "object",      "properties": {        "user": {          "type": "object",          "properties": {            "name": {              "type": "string"            },            "email": {              "type": "string"            },            "avatar": {              "type": "string"            },            "role": {              "type": "string"            },            "bio": {              "type": "string"            },            "status": {              "type": "string"            }          },          "description": "Complete user information"        },        "showActions": {          "type": "boolean",          "description": "Whether to show action buttons",          "default": true        },        "theme": {          "type": "string",          "description": "Theme for the card",          "enum": [            "light",            "dark",            "auto"          ],          "default": "auto"        },        "metadata": {          "type": "object",          "description": "Additional metadata for the profile"        }      },      "required": [        "user"      ]    }  }'
{
  "data": {
    "id": "user-profile-card",
    "name": "UserProfileCard",
    "description": "Display user profile information with interactive elements",
    "summaryProps": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "User name"
        },
        "role": {
          "type": "string",
          "description": "User role"
        }
      },
      "required": [
        "name"
      ]
    },
    "fullProps": {
      "type": "object",
      "properties": {
        "user": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "email": {
              "type": "string"
            },
            "avatar": {
              "type": "string"
            },
            "role": {
              "type": "string"
            },
            "bio": {
              "type": "string"
            }
          },
          "description": "Complete user information"
        },
        "showActions": {
          "type": "boolean",
          "description": "Whether to show action buttons",
          "default": true
        },
        "metadata": {
          "type": "object",
          "description": "Additional metadata for the profile"
        }
      },
      "required": [
        "user"
      ]
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Context Configurations

GET
/tenants/{tenantId}/crud/projects/{projectId}/context-configs

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/context-configs?page=1&limit=10"
{
  "data": [
    {
      "id": "user-context-config",
      "name": "User Context Configuration",
      "description": "Context configuration for user authentication and preferences",
      "requestContextSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "User identifier"
          },
          "sessionToken": {
            "type": "string",
            "description": "Session token for authentication"
          }
        },
        "required": [
          "userId"
        ]
      },
      "contextVariables": {
        "userProfile": {
          "id": "user-profile",
          "name": "User Profile",
          "trigger": "initialization",
          "fetchConfig": {
            "url": "https://api.example.com/users/{{requestContext.userId}}",
            "method": "GET",
            "headers": {
              "Authorization": "Bearer {{requestContext.sessionToken}}"
            }
          },
          "defaultValue": {
            "name": "Anonymous User"
          }
        }
      },
      "createdAt": "2025-09-03T00:29:03.387Z",
      "updatedAt": "2025-09-03T00:29:03.387Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Context Configuration

POST
/tenants/{tenantId}/crud/projects/{projectId}/context-configs

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
namestring
descriptionstring
requestContextSchema?string & number & boolean & object & array<unknown>
contextVariables?string & number & boolean & object & array<unknown>

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/context-configs" \  -H "Content-Type: application/json" \  -d '{    "id": "user-context-config",    "name": "User Context Configuration",    "description": "Context configuration for user authentication and preferences",    "requestContextSchema": {      "type": "object",      "properties": {        "userId": {          "type": "string",          "description": "User identifier"        },        "sessionToken": {          "type": "string",          "description": "Session token for authentication"        }      },      "required": [        "userId"      ]    },    "contextVariables": {      "userProfile": {        "id": "user-profile",        "name": "User Profile",        "trigger": "initialization",        "fetchConfig": {          "url": "https://api.example.com/users/{{requestContext.userId}}",          "method": "GET",          "headers": {            "Authorization": "Bearer {{requestContext.sessionToken}}"          }        },        "defaultValue": {          "name": "Anonymous User"        }      }    }  }'
{
  "data": {
    "id": "user-context-config",
    "name": "User Context Configuration",
    "description": "Context configuration for user authentication and preferences",
    "requestContextSchema": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "User identifier"
        },
        "sessionToken": {
          "type": "string",
          "description": "Session token for authentication"
        }
      },
      "required": [
        "userId"
      ]
    },
    "contextVariables": {
      "userProfile": {
        "id": "user-profile",
        "name": "User Profile",
        "trigger": "initialization",
        "fetchConfig": {
          "url": "https://api.example.com/users/{{requestContext.userId}}",
          "method": "GET",
          "headers": {
            "Authorization": "Bearer {{requestContext.sessionToken}}"
          }
        },
        "defaultValue": {
          "name": "Anonymous User"
        }
      }
    },
    "createdAt": "2025-09-03T00:29:03.387Z",
    "updatedAt": "2025-09-03T00:29:03.387Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Context Configuration

GET
/tenants/{tenantId}/crud/projects/{projectId}/context-configs/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/context-configs/string"
{
  "data": {
    "id": "user-context-config",
    "name": "User Context Configuration",
    "description": "Context configuration for user authentication and preferences",
    "requestContextSchema": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "User identifier"
        },
        "sessionToken": {
          "type": "string",
          "description": "Session token for authentication"
        }
      },
      "required": [
        "userId"
      ]
    },
    "contextVariables": {
      "userProfile": {
        "id": "user-profile",
        "name": "User Profile",
        "trigger": "initialization",
        "fetchConfig": {
          "url": "https://api.example.com/users/{{requestContext.userId}}",
          "method": "GET",
          "headers": {
            "Authorization": "Bearer {{requestContext.sessionToken}}"
          }
        },
        "defaultValue": {
          "name": "Anonymous User"
        }
      }
    },
    "createdAt": "2025-09-03T00:29:03.387Z",
    "updatedAt": "2025-09-03T00:29:03.387Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Context Configuration

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/context-configs/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/context-configs/string"
Empty
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Update Context Configuration

PUT
/tenants/{tenantId}/crud/projects/{projectId}/context-configs/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
id?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
name?string
description?string
requestContextSchema?string & number & boolean & object & array<unknown>
contextVariables?string & number & boolean & object & array<unknown>

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/context-configs/string" \  -H "Content-Type: application/json" \  -d '{    "name": "Enhanced User Context Configuration",    "description": "Enhanced context configuration with additional user data fetching",    "contextVariables": {      "userProfile": {        "id": "user-profile",        "name": "Enhanced User Profile",        "trigger": "initialization",        "fetchConfig": {          "url": "https://api.example.com/users/{{requestContext.userId}}/full",          "method": "GET",          "headers": {            "Authorization": "Bearer {{requestContext.sessionToken}}"          }        },        "defaultValue": {          "name": "Anonymous User",          "preferences": {}        }      },      "userPermissions": {        "id": "user-permissions",        "name": "User Permissions",        "trigger": "invocation",        "fetchConfig": {          "url": "https://api.example.com/users/{{requestContext.userId}}/permissions",          "method": "GET"        },        "defaultValue": {          "permissions": []        }      }    }  }'
{
  "data": {
    "id": "user-context-config",
    "name": "User Context Configuration",
    "description": "Context configuration for user authentication and preferences",
    "requestContextSchema": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "User identifier"
        },
        "sessionToken": {
          "type": "string",
          "description": "Session token for authentication"
        }
      },
      "required": [
        "userId"
      ]
    },
    "contextVariables": {
      "userProfile": {
        "id": "user-profile",
        "name": "User Profile",
        "trigger": "initialization",
        "fetchConfig": {
          "url": "https://api.example.com/users/{{requestContext.userId}}",
          "method": "GET",
          "headers": {
            "Authorization": "Bearer {{requestContext.sessionToken}}"
          }
        },
        "defaultValue": {
          "name": "Anonymous User"
        }
      }
    },
    "createdAt": "2025-09-03T00:29:03.387Z",
    "updatedAt": "2025-09-03T00:29:03.387Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Credentials

GET
/tenants/{tenantId}/crud/projects/{projectId}/credentials

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/credentials?page=1&limit=10"
{
  "data": [
    {
      "id": "slack-main-workspace",
      "type": "nango",
      "credentialStoreId": "nango-default",
      "retrievalParams": {
        "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",
        "providerConfigKey": "slack-agent"
      },
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Credential

POST
/tenants/{tenantId}/crud/projects/{projectId}/credentials

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
typestring
credentialStoreIdstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
retrievalParams?object

Empty Object

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/credentials" \  -H "Content-Type: application/json" \  -d '{    "id": "slack-main-workspace",    "type": "nango",    "credentialStoreId": "nango-default",    "retrievalParams": {      "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",      "providerConfigKey": "slack-agent"    }  }'
{
  "data": {
    "id": "slack-main-workspace",
    "type": "nango",
    "credentialStoreId": "nango-default",
    "retrievalParams": {
      "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",
      "providerConfigKey": "slack-agent"
    },
    "createdAt": "2024-01-01T00:00:00.000Z",
    "updatedAt": "2024-01-01T00:00:00.000Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Credential

GET
/tenants/{tenantId}/crud/projects/{projectId}/credentials/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/credentials/string"
{
  "data": {
    "id": "slack-main-workspace",
    "type": "nango",
    "credentialStoreId": "nango-default",
    "retrievalParams": {
      "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",
      "providerConfigKey": "slack-agent"
    },
    "createdAt": "2024-01-01T00:00:00.000Z",
    "updatedAt": "2024-01-01T00:00:00.000Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Credential

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/credentials/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/credentials/string"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}

Update Credential

PUT
/tenants/{tenantId}/crud/projects/{projectId}/credentials/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
id?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
type?string
credentialStoreId?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
retrievalParams?object

Empty Object

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/credentials/string" \  -H "Content-Type: application/json" \  -d '{    "retrievalParams": {      "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",      "providerConfigKey": "slack-agent",      "updatedConfig": true    }  }'
{
  "data": {
    "id": "slack-main-workspace",
    "type": "nango",
    "credentialStoreId": "nango-default",
    "retrievalParams": {
      "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",
      "providerConfigKey": "slack-agent"
    },
    "createdAt": "2024-01-01T00:00:00.000Z",
    "updatedAt": "2024-01-01T00:00:00.000Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Data Components

GET
/tenants/{tenantId}/crud/projects/{projectId}/data-components

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/data-components?page=1&limit=10"
{
  "data": [
    {
      "id": "orders-list",
      "name": "OrdersList",
      "description": "Display a list of user orders with interactive options",
      "props": {
        "type": "object",
        "properties": {
          "orders": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items to select from"
          }
        },
        "required": [
          "orders"
        ]
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Data Component

POST
/tenants/{tenantId}/crud/projects/{projectId}/data-components

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
namestring
descriptionstring
props?object

Empty Object

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/data-components" \  -H "Content-Type: application/json" \  -d '{    "id": "orders-list",    "name": "OrdersList",    "description": "Display a list of user orders with interactive options",    "props": {      "type": "object",      "properties": {        "orders": {          "type": "array",          "items": {            "type": "string"          },          "description": "Order items to select from"        }      },      "required": [        "orders"      ]    }  }'
{
  "data": {
    "id": "orders-list",
    "name": "OrdersList",
    "description": "Display a list of user orders with interactive options",
    "props": {
      "type": "object",
      "properties": {
        "orders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Order items to select from"
        }
      },
      "required": [
        "orders"
      ]
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Data Component

GET
/tenants/{tenantId}/crud/projects/{projectId}/data-components/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/data-components/string"
{
  "data": {
    "id": "orders-list",
    "name": "OrdersList",
    "description": "Display a list of user orders with interactive options",
    "props": {
      "type": "object",
      "properties": {
        "orders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Order items to select from"
        }
      },
      "required": [
        "orders"
      ]
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Data Component

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/data-components/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/data-components/string"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}

Update Data Component

PUT
/tenants/{tenantId}/crud/projects/{projectId}/data-components/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
id?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
name?string
description?string
props?object

Empty Object

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/data-components/string" \  -H "Content-Type: application/json" \  -d '{    "name": "Enhanced OrdersList",    "description": "Display a list of user orders with enhanced filtering and sorting options",    "props": {      "type": "object",      "properties": {        "orders": {          "type": "array",          "items": {            "type": "string"          },          "description": "Order items to select from"        },        "sortBy": {          "type": "string",          "description": "Sort orders by field",          "enum": [            "date",            "amount",            "status"          ]        }      },      "required": [        "orders"      ]    }  }'
{
  "data": {
    "id": "orders-list",
    "name": "OrdersList",
    "description": "Display a list of user orders with interactive options",
    "props": {
      "type": "object",
      "properties": {
        "orders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Order items to select from"
        }
      },
      "required": [
        "orders"
      ]
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List External Agents

GET
/tenants/{tenantId}/crud/projects/{projectId}/external-agents

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/external-agents?page=1&limit=10"
{
  "data": [
    {
      "id": "external-customer-agent",
      "name": "External Customer Agent",
      "description": "An external AI agent for customer support hosted on another service",
      "baseUrl": "https://api.example.com/agent",
      "createdAt": "2025-09-03T00:29:03.388Z",
      "updatedAt": "2025-09-03T00:29:03.388Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create External Agent

POST
/tenants/{tenantId}/crud/projects/{projectId}/external-agents

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
namestring
descriptionstring
baseUrlstring
credentialReferenceId?string | null
headers?string & number & boolean & object & array<unknown>
createdAt?string
updatedAt?string
type?string
Value in"external"

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/external-agents" \  -H "Content-Type: application/json" \  -d '{    "id": "external-customer-agent",    "name": "External Customer Agent",    "description": "An external AI agent for customer support hosted on another service",    "baseUrl": "https://api.example.com/agent"  }'
{
  "data": {
    "id": "external-customer-agent",
    "name": "External Customer Agent",
    "description": "An external AI agent for customer support hosted on another service",
    "baseUrl": "https://api.example.com/agent",
    "createdAt": "2025-09-03T00:29:03.388Z",
    "updatedAt": "2025-09-03T00:29:03.388Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get External Agent

GET
/tenants/{tenantId}/crud/projects/{projectId}/external-agents/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/external-agents/string"
{
  "data": {
    "id": "external-customer-agent",
    "name": "External Customer Agent",
    "description": "An external AI agent for customer support hosted on another service",
    "baseUrl": "https://api.example.com/agent",
    "createdAt": "2025-09-03T00:29:03.388Z",
    "updatedAt": "2025-09-03T00:29:03.388Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete External Agent

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/external-agents/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/external-agents/string"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}

Update External Agent

PUT
/tenants/{tenantId}/crud/projects/{projectId}/external-agents/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
id?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
name?string
description?string
baseUrl?string
credentialReferenceId?string | null
headers?string & number & boolean & object & array<unknown>
createdAt?string
updatedAt?string
type?string
Value in"external"

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/external-agents/string" \  -H "Content-Type: application/json" \  -d '{    "name": "Enhanced External Customer Agent",    "description": "An enhanced external AI agent for customer support with improved capabilities",    "baseUrl": "https://api.example.com/v2/agent"  }'
{
  "data": {
    "id": "external-customer-agent",
    "name": "External Customer Agent",
    "description": "An external AI agent for customer support hosted on another service",
    "baseUrl": "https://api.example.com/agent",
    "createdAt": "2025-09-03T00:29:03.388Z",
    "updatedAt": "2025-09-03T00:29:03.388Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Tools

GET
/tenants/{tenantId}/crud/projects/{projectId}/tools

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100
status?string
Value in"healthy" | "unhealthy" | "unknown" | "disabled" | "needs_auth"

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/tools?page=1&limit=10&status=healthy"
{
  "data": [
    {
      "id": "string",
      "tenantId": "string",
      "name": "string",
      "config": {
        "type": "mcp",
        "mcp": {
          "server": {
            "url": "string",
            "timeout": 0,
            "headers": {
              "property1": "string",
              "property2": "string"
            }
          },
          "transport": {
            "type": "streamable_http",
            "requestInit": {
              "property1": null,
              "property2": null
            },
            "eventSourceInit": {
              "property1": null,
              "property2": null
            },
            "reconnectionOptions": {
              "property1": null,
              "property2": null
            },
            "sessionId": "string"
          },
          "activeTools": [
            "string"
          ]
        }
      },
      "credentialReferenceId": "string",
      "imageUrl": "string",
      "headers": {
        "property1": "string",
        "property2": "string"
      },
      "status": "healthy",
      "lastHealthCheck": "2019-08-24",
      "lastError": "string",
      "availableTools": [
        {
          "name": "string",
          "description": "string",
          "inputSchema": {
            "property1": null,
            "property2": null
          }
        }
      ],
      "lastToolsSync": "2019-08-24",
      "version": "string",
      "createdAt": "2019-08-24",
      "updatedAt": "2019-08-24"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Tool

POST
/tenants/{tenantId}/crud/projects/{projectId}/tools

Path Parameters

tenantIdstring
projectIdstring
id?string
namestring
Length1 <= length
configobject
credentialReferenceId?string | null
imageUrl?string
headers?object

Empty Object

metadata?object

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/tools" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "config": {      "type": "mcp",      "mcp": {        "server": {          "url": "http://example.com"        }      }    }  }'
{
  "data": {
    "id": "string",
    "tenantId": "string",
    "name": "string",
    "config": {
      "type": "mcp",
      "mcp": {
        "server": {
          "url": "string",
          "timeout": 0,
          "headers": {
            "property1": "string",
            "property2": "string"
          }
        },
        "transport": {
          "type": "streamable_http",
          "requestInit": {
            "property1": null,
            "property2": null
          },
          "eventSourceInit": {
            "property1": null,
            "property2": null
          },
          "reconnectionOptions": {
            "property1": null,
            "property2": null
          },
          "sessionId": "string"
        },
        "activeTools": [
          "string"
        ]
      }
    },
    "credentialReferenceId": "string",
    "imageUrl": "string",
    "headers": {
      "property1": "string",
      "property2": "string"
    },
    "status": "healthy",
    "lastHealthCheck": "2019-08-24",
    "lastError": "string",
    "availableTools": [
      {
        "name": "string",
        "description": "string",
        "inputSchema": {
          "property1": null,
          "property2": null
        }
      }
    ],
    "lastToolsSync": "2019-08-24",
    "version": "string",
    "createdAt": "2019-08-24",
    "updatedAt": "2019-08-24"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Tool

GET
/tenants/{tenantId}/crud/projects/{projectId}/tools/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/tools/string"
{
  "data": {
    "id": "string",
    "tenantId": "string",
    "name": "string",
    "config": {
      "type": "mcp",
      "mcp": {
        "server": {
          "url": "string",
          "timeout": 0,
          "headers": {
            "property1": "string",
            "property2": "string"
          }
        },
        "transport": {
          "type": "streamable_http",
          "requestInit": {
            "property1": null,
            "property2": null
          },
          "eventSourceInit": {
            "property1": null,
            "property2": null
          },
          "reconnectionOptions": {
            "property1": null,
            "property2": null
          },
          "sessionId": "string"
        },
        "activeTools": [
          "string"
        ]
      }
    },
    "credentialReferenceId": "string",
    "imageUrl": "string",
    "headers": {
      "property1": "string",
      "property2": "string"
    },
    "status": "healthy",
    "lastHealthCheck": "2019-08-24",
    "lastError": "string",
    "availableTools": [
      {
        "name": "string",
        "description": "string",
        "inputSchema": {
          "property1": null,
          "property2": null
        }
      }
    ],
    "lastToolsSync": "2019-08-24",
    "version": "string",
    "createdAt": "2019-08-24",
    "updatedAt": "2019-08-24"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Tool

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/tools/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/tools/string"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}

Update Tool

PUT
/tenants/{tenantId}/crud/projects/{projectId}/tools/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
id?string
name?string
Length1 <= length
config?object
credentialReferenceId?string | null
imageUrl?string
headers?object

Empty Object

metadata?object

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/tools/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "id": "string",
    "tenantId": "string",
    "name": "string",
    "config": {
      "type": "mcp",
      "mcp": {
        "server": {
          "url": "string",
          "timeout": 0,
          "headers": {
            "property1": "string",
            "property2": "string"
          }
        },
        "transport": {
          "type": "streamable_http",
          "requestInit": {
            "property1": null,
            "property2": null
          },
          "eventSourceInit": {
            "property1": null,
            "property2": null
          },
          "reconnectionOptions": {
            "property1": null,
            "property2": null
          },
          "sessionId": "string"
        },
        "activeTools": [
          "string"
        ]
      }
    },
    "credentialReferenceId": "string",
    "imageUrl": "string",
    "headers": {
      "property1": "string",
      "property2": "string"
    },
    "status": "healthy",
    "lastHealthCheck": "2019-08-24",
    "lastError": "string",
    "availableTools": [
      {
        "name": "string",
        "description": "string",
        "inputSchema": {
          "property1": null,
          "property2": null
        }
      }
    ],
    "lastToolsSync": "2019-08-24",
    "version": "string",
    "createdAt": "2019-08-24",
    "updatedAt": "2019-08-24"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Check Tool Health

POST
/tenants/{tenantId}/crud/projects/{projectId}/tools/{id}/health-check

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/tools/string/health-check"
{
  "data": {
    "tool": {
      "id": "string",
      "tenantId": "string",
      "name": "string",
      "config": {
        "type": "mcp",
        "mcp": {
          "server": {
            "url": "string",
            "timeout": 0,
            "headers": {
              "property1": "string",
              "property2": "string"
            }
          },
          "transport": {
            "type": "streamable_http",
            "requestInit": {
              "property1": null,
              "property2": null
            },
            "eventSourceInit": {
              "property1": null,
              "property2": null
            },
            "reconnectionOptions": {
              "property1": null,
              "property2": null
            },
            "sessionId": "string"
          },
          "activeTools": [
            "string"
          ]
        }
      },
      "credentialReferenceId": "string",
      "imageUrl": "string",
      "headers": {
        "property1": "string",
        "property2": "string"
      },
      "status": "healthy",
      "lastHealthCheck": "2019-08-24",
      "lastError": "string",
      "availableTools": [
        {
          "name": "string",
          "description": "string",
          "inputSchema": {
            "property1": null,
            "property2": null
          }
        }
      ],
      "lastToolsSync": "2019-08-24",
      "version": "string",
      "createdAt": "2019-08-24",
      "updatedAt": "2019-08-24"
    },
    "healthCheck": {
      "status": "healthy",
      "error": "string"
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Check All Tools Health

POST
/tenants/{tenantId}/crud/projects/{projectId}/tools/health-check-all

Path Parameters

tenantIdstring
projectIdstring

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/tools/health-check-all"
{
  "data": {
    "total": 0,
    "successful": 0,
    "failed": 0,
    "results": [
      {
        "index": 0,
        "status": "fulfilled",
        "data": "string",
        "error": "string"
      }
    ]
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Sync Tool Definitions

POST
/tenants/{tenantId}/crud/projects/{projectId}/tools/{id}/sync

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/tools/string/sync"
{
  "data": {
    "id": "string",
    "tenantId": "string",
    "name": "string",
    "config": {
      "type": "mcp",
      "mcp": {
        "server": {
          "url": "string",
          "timeout": 0,
          "headers": {
            "property1": "string",
            "property2": "string"
          }
        },
        "transport": {
          "type": "streamable_http",
          "requestInit": {
            "property1": null,
            "property2": null
          },
          "eventSourceInit": {
            "property1": null,
            "property2": null
          },
          "reconnectionOptions": {
            "property1": null,
            "property2": null
          },
          "sessionId": "string"
        },
        "activeTools": [
          "string"
        ]
      }
    },
    "credentialReferenceId": "string",
    "imageUrl": "string",
    "headers": {
      "property1": "string",
      "property2": "string"
    },
    "status": "healthy",
    "lastHealthCheck": "2019-08-24",
    "lastError": "string",
    "availableTools": [
      {
        "name": "string",
        "description": "string",
        "inputSchema": {
          "property1": null,
          "property2": null
        }
      }
    ],
    "lastToolsSync": "2019-08-24",
    "version": "string",
    "createdAt": "2019-08-24",
    "updatedAt": "2019-08-24"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Available Tools

GET
/tenants/{tenantId}/crud/projects/{projectId}/tools/{id}/available-tools

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/tools/string/available-tools"
{
  "data": {
    "availableTools": [
      {
        "name": "string",
        "description": "string",
        "inputSchema": {
          "property1": null,
          "property2": null
        }
      }
    ],
    "lastSync": "string",
    "status": "healthy"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Update Tool Status

PATCH
/tenants/{tenantId}/crud/projects/{projectId}/tools/{id}/status

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
statusstring
Value in"healthy" | "unhealthy" | "unknown" | "disabled" | "needs_auth"

Response Body

curl -X PATCH "http://localhost:3002/tenants/string/crud/projects/string/tools/string/status" \  -H "Content-Type: application/json" \  -d '{    "status": "healthy"  }'
{
  "data": {
    "id": "string",
    "tenantId": "string",
    "name": "string",
    "config": {
      "type": "mcp",
      "mcp": {
        "server": {
          "url": "string",
          "timeout": 0,
          "headers": {
            "property1": "string",
            "property2": "string"
          }
        },
        "transport": {
          "type": "streamable_http",
          "requestInit": {
            "property1": null,
            "property2": null
          },
          "eventSourceInit": {
            "property1": null,
            "property2": null
          },
          "reconnectionOptions": {
            "property1": null,
            "property2": null
          },
          "sessionId": "string"
        },
        "activeTools": [
          "string"
        ]
      }
    },
    "credentialReferenceId": "string",
    "imageUrl": "string",
    "headers": {
      "property1": "string",
      "property2": "string"
    },
    "status": "healthy",
    "lastHealthCheck": "2019-08-24",
    "lastError": "string",
    "availableTools": [
      {
        "name": "string",
        "description": "string",
        "inputSchema": {
          "property1": null,
          "property2": null
        }
      }
    ],
    "lastToolsSync": "2019-08-24",
    "version": "string",
    "createdAt": "2019-08-24",
    "updatedAt": "2019-08-24"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Initiate OAuth login for MCP tool

Detects OAuth requirements and redirects to authorization server

GET
/tenants/{tenantId}/crud/projects/{projectId}/tools/{id}/oauth-login

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/tools/string/oauth-login"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}
{
  "error": "string",
  "message": "string",
  "details": null
}
{
  "error": "string",
  "message": "string",
  "details": null
}

List API Keys

List all API keys for a tenant with optional pagination

GET
/tenants/{tenantId}/crud/projects/{projectId}/api-keys

Path Parameters

tenantIdstring
projectIdstring

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100
graphId?string

Filter by graph ID

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/api-keys?page=1&limit=10&graphId=string"
{
  "data": [
    {
      "id": "key-12345",
      "graphId": "support-graph",
      "publicId": "abc123def456",
      "keyPrefix": "sk_test_abc1",
      "lastUsedAt": "2024-01-15T10:30:00Z",
      "expiresAt": "2025-01-01T00:00:00Z",
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 0,
    "pages": 0
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create API Key

Create a new API key for a graph. Returns the full key (shown only once).

POST
/tenants/{tenantId}/crud/projects/{projectId}/api-keys

Path Parameters

tenantIdstring
projectIdstring
graphIdstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
expiresAt?string | null
createdAt?string
updatedAt?string

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/api-keys" \  -H "Content-Type: application/json" \  -d '{    "graphId": "support-graph",    "expiresAt": "2025-01-01T00:00:00Z"  }'
{
  "data": {
    "apiKey": {
      "id": "key-12345",
      "graphId": "support-graph",
      "publicId": "abc123def456",
      "keyPrefix": "sk_test_abc1",
      "lastUsedAt": "2024-01-15T10:30:00Z",
      "expiresAt": "2025-01-01T00:00:00Z",
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-01T00:00:00Z"
    },
    "key": "string"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get API Key

Get a specific API key by ID (does not return the actual key)

GET
/tenants/{tenantId}/crud/projects/{projectId}/api-keys/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/api-keys/string"
{
  "data": {
    "id": "key-12345",
    "graphId": "support-graph",
    "publicId": "abc123def456",
    "keyPrefix": "sk_test_abc1",
    "lastUsedAt": "2024-01-15T10:30:00Z",
    "expiresAt": "2025-01-01T00:00:00Z",
    "createdAt": "2024-01-01T00:00:00Z",
    "updatedAt": "2024-01-01T00:00:00Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete API Key

Delete an API key permanently

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/api-keys/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/api-keys/string"
Empty
{
  "error": "string",
  "message": "string",
  "details": null
}

Update API Key

Update an API key (currently only expiration date can be changed)

PUT
/tenants/{tenantId}/crud/projects/{projectId}/api-keys/{id}

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
graphId?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
lastUsedAt?string | null
expiresAt?string | null
updatedAt?string

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/api-keys/string" \  -H "Content-Type: application/json" \  -d '{    "expiresAt": "2025-12-31T23:59:59Z"  }'
{
  "data": {
    "id": "key-12345",
    "graphId": "support-graph",
    "publicId": "abc123def456",
    "keyPrefix": "sk_test_abc1",
    "lastUsedAt": "2024-01-15T10:30:00Z",
    "expiresAt": "2025-01-01T00:00:00Z",
    "createdAt": "2024-01-01T00:00:00Z",
    "updatedAt": "2024-01-01T00:00:00Z"
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Full Graph

Create a complete agent graph with all agents, tools, and relationships from JSON definition

POST
/tenants/{tenantId}/crud/projects/{projectId}/graph

Path Parameters

tenantIdstring
projectIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
namestring
description?string | null
defaultAgentId?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
contextConfigId?string | null
modelSettings?object
statusUpdates?object
createdAt?string
updatedAt?string
agentsobject

Empty Object

toolsobject

Empty Object

credentialReferences?array<object>
dataComponents?object

Empty Object

artifactComponents?object

Empty Object

contextConfig?object

Response Body

curl -X POST "http://localhost:3002/tenants/string/crud/projects/string/graph" \  -H "Content-Type: application/json" \  -d '{    "id": "string",    "name": "string",    "agents": {      "property1": {        "id": "customer-support-agent",        "name": "Customer Support Agent",        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."      },      "property2": {        "id": "customer-support-agent",        "name": "Customer Support Agent",        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."      }    },    "tools": {      "property1": {        "id": "string",        "name": "string",        "config": "string"      },      "property2": {        "id": "string",        "name": "string",        "config": "string"      }    }  }'
{
  "data": {
    "id": "string",
    "name": "string",
    "description": "string",
    "defaultAgentId": "string",
    "contextConfigId": "string",
    "modelSettings": {
      "model": "string",
      "structuredOutput": "string",
      "summarizer": "string",
      "providerOptions": {
        "property1": {
          "property1": null,
          "property2": null
        },
        "property2": {
          "property1": null,
          "property2": null
        }
      }
    },
    "statusUpdates": {
      "numEvents": 0,
      "timeInSeconds": 0,
      "model": "string",
      "prompt": "string",
      "statusComponents": [
        {
          "id": "string",
          "name": "string",
          "description": "string",
          "schema": {
            "type": "object",
            "properties": {
              "property1": null,
              "property2": null
            },
            "required": [
              "string"
            ]
          }
        }
      ]
    },
    "createdAt": "string",
    "updatedAt": "string",
    "agents": {
      "property1": {
        "id": "customer-support-agent",
        "name": "Customer Support Agent",
        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
      },
      "property2": {
        "id": "customer-support-agent",
        "name": "Customer Support Agent",
        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
      }
    },
    "tools": {
      "property1": {
        "id": "string",
        "name": "string",
        "config": "string",
        "credentialReferenceId": "string",
        "headers": "string",
        "imageUrl": "string",
        "capabilities": {
          "tools": true,
          "streaming": true
        },
        "status": "healthy",
        "lastHealthCheck": "string",
        "lastError": "string",
        "availableTools": [
          {
            "name": "string",
            "description": "string",
            "inputSchema": null
          }
        ],
        "lastToolsSync": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "activeTools": [
          "string"
        ]
      },
      "property2": {
        "id": "string",
        "name": "string",
        "config": "string",
        "credentialReferenceId": "string",
        "headers": "string",
        "imageUrl": "string",
        "capabilities": {
          "tools": true,
          "streaming": true
        },
        "status": "healthy",
        "lastHealthCheck": "string",
        "lastError": "string",
        "availableTools": [
          {
            "name": "string",
            "description": "string",
            "inputSchema": null
          }
        ],
        "lastToolsSync": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "activeTools": [
          "string"
        ]
      }
    },
    "credentialReferences": [
      {
        "id": "slack-main-workspace",
        "type": "nango",
        "credentialStoreId": "nango-default",
        "retrievalParams": {
          "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",
          "providerConfigKey": "slack-agent"
        }
      }
    ],
    "dataComponents": {
      "property1": {
        "id": "orders-list",
        "name": "OrdersList",
        "description": "Display a list of user orders with interactive options",
        "props": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Order items to select from"
            }
          },
          "required": [
            "orders"
          ]
        }
      },
      "property2": {
        "id": "orders-list",
        "name": "OrdersList",
        "description": "Display a list of user orders with interactive options",
        "props": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Order items to select from"
            }
          },
          "required": [
            "orders"
          ]
        }
      }
    },
    "artifactComponents": {
      "property1": {
        "id": "user-profile-card",
        "name": "UserProfileCard",
        "description": "Display user profile information with interactive elements",
        "summaryProps": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "User name"
            },
            "role": {
              "type": "string",
              "description": "User role"
            }
          },
          "required": [
            "name"
          ]
        },
        "fullProps": {
          "type": "object",
          "properties": {
            "user": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "avatar": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "bio": {
                  "type": "string"
                }
              },
              "description": "Complete user information"
            },
            "showActions": {
              "type": "boolean",
              "description": "Whether to show action buttons",
              "default": true
            },
            "metadata": {
              "type": "object",
              "description": "Additional metadata for the profile"
            }
          },
          "required": [
            "user"
          ]
        }
      },
      "property2": {
        "id": "user-profile-card",
        "name": "UserProfileCard",
        "description": "Display user profile information with interactive elements",
        "summaryProps": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "User name"
            },
            "role": {
              "type": "string",
              "description": "User role"
            }
          },
          "required": [
            "name"
          ]
        },
        "fullProps": {
          "type": "object",
          "properties": {
            "user": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "avatar": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "bio": {
                  "type": "string"
                }
              },
              "description": "Complete user information"
            },
            "showActions": {
              "type": "boolean",
              "description": "Whether to show action buttons",
              "default": true
            },
            "metadata": {
              "type": "object",
              "description": "Additional metadata for the profile"
            }
          },
          "required": [
            "user"
          ]
        }
      }
    },
    "contextConfig": {
      "id": "user-context-config",
      "name": "User Context Configuration",
      "description": "Context configuration for user authentication and preferences",
      "requestContextSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "User identifier"
          },
          "sessionToken": {
            "type": "string",
            "description": "Session token for authentication"
          }
        },
        "required": [
          "userId"
        ]
      },
      "contextVariables": {
        "userProfile": {
          "id": "user-profile",
          "name": "User Profile",
          "trigger": "initialization",
          "fetchConfig": {
            "url": "https://api.example.com/users/{{requestContext.userId}}",
            "method": "GET",
            "headers": {
              "Authorization": "Bearer {{requestContext.sessionToken}}"
            }
          },
          "defaultValue": {
            "name": "Anonymous User"
          }
        }
      }
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "error": "string",
  "message": "string",
  "details": null
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Full Graph

Retrieve a complete agent graph definition with all agents, tools, and relationships

GET
/tenants/{tenantId}/crud/projects/{projectId}/graph/{graphId}

Path Parameters

tenantIdstring
projectIdstring
graphIdstring

Response Body

curl -X GET "http://localhost:3002/tenants/string/crud/projects/string/graph/string"
{
  "data": {
    "id": "string",
    "name": "string",
    "description": "string",
    "defaultAgentId": "string",
    "contextConfigId": "string",
    "modelSettings": {
      "model": "string",
      "structuredOutput": "string",
      "summarizer": "string",
      "providerOptions": {
        "property1": {
          "property1": null,
          "property2": null
        },
        "property2": {
          "property1": null,
          "property2": null
        }
      }
    },
    "statusUpdates": {
      "numEvents": 0,
      "timeInSeconds": 0,
      "model": "string",
      "prompt": "string",
      "statusComponents": [
        {
          "id": "string",
          "name": "string",
          "description": "string",
          "schema": {
            "type": "object",
            "properties": {
              "property1": null,
              "property2": null
            },
            "required": [
              "string"
            ]
          }
        }
      ]
    },
    "createdAt": "string",
    "updatedAt": "string",
    "agents": {
      "property1": {
        "id": "customer-support-agent",
        "name": "Customer Support Agent",
        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
      },
      "property2": {
        "id": "customer-support-agent",
        "name": "Customer Support Agent",
        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
      }
    },
    "tools": {
      "property1": {
        "id": "string",
        "name": "string",
        "config": "string",
        "credentialReferenceId": "string",
        "headers": "string",
        "imageUrl": "string",
        "capabilities": {
          "tools": true,
          "streaming": true
        },
        "status": "healthy",
        "lastHealthCheck": "string",
        "lastError": "string",
        "availableTools": [
          {
            "name": "string",
            "description": "string",
            "inputSchema": null
          }
        ],
        "lastToolsSync": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "activeTools": [
          "string"
        ]
      },
      "property2": {
        "id": "string",
        "name": "string",
        "config": "string",
        "credentialReferenceId": "string",
        "headers": "string",
        "imageUrl": "string",
        "capabilities": {
          "tools": true,
          "streaming": true
        },
        "status": "healthy",
        "lastHealthCheck": "string",
        "lastError": "string",
        "availableTools": [
          {
            "name": "string",
            "description": "string",
            "inputSchema": null
          }
        ],
        "lastToolsSync": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "activeTools": [
          "string"
        ]
      }
    },
    "credentialReferences": [
      {
        "id": "slack-main-workspace",
        "type": "nango",
        "credentialStoreId": "nango-default",
        "retrievalParams": {
          "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",
          "providerConfigKey": "slack-agent"
        }
      }
    ],
    "dataComponents": {
      "property1": {
        "id": "orders-list",
        "name": "OrdersList",
        "description": "Display a list of user orders with interactive options",
        "props": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Order items to select from"
            }
          },
          "required": [
            "orders"
          ]
        }
      },
      "property2": {
        "id": "orders-list",
        "name": "OrdersList",
        "description": "Display a list of user orders with interactive options",
        "props": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Order items to select from"
            }
          },
          "required": [
            "orders"
          ]
        }
      }
    },
    "artifactComponents": {
      "property1": {
        "id": "user-profile-card",
        "name": "UserProfileCard",
        "description": "Display user profile information with interactive elements",
        "summaryProps": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "User name"
            },
            "role": {
              "type": "string",
              "description": "User role"
            }
          },
          "required": [
            "name"
          ]
        },
        "fullProps": {
          "type": "object",
          "properties": {
            "user": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "avatar": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "bio": {
                  "type": "string"
                }
              },
              "description": "Complete user information"
            },
            "showActions": {
              "type": "boolean",
              "description": "Whether to show action buttons",
              "default": true
            },
            "metadata": {
              "type": "object",
              "description": "Additional metadata for the profile"
            }
          },
          "required": [
            "user"
          ]
        }
      },
      "property2": {
        "id": "user-profile-card",
        "name": "UserProfileCard",
        "description": "Display user profile information with interactive elements",
        "summaryProps": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "User name"
            },
            "role": {
              "type": "string",
              "description": "User role"
            }
          },
          "required": [
            "name"
          ]
        },
        "fullProps": {
          "type": "object",
          "properties": {
            "user": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "avatar": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "bio": {
                  "type": "string"
                }
              },
              "description": "Complete user information"
            },
            "showActions": {
              "type": "boolean",
              "description": "Whether to show action buttons",
              "default": true
            },
            "metadata": {
              "type": "object",
              "description": "Additional metadata for the profile"
            }
          },
          "required": [
            "user"
          ]
        }
      }
    },
    "contextConfig": {
      "id": "user-context-config",
      "name": "User Context Configuration",
      "description": "Context configuration for user authentication and preferences",
      "requestContextSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "User identifier"
          },
          "sessionToken": {
            "type": "string",
            "description": "Session token for authentication"
          }
        },
        "required": [
          "userId"
        ]
      },
      "contextVariables": {
        "userProfile": {
          "id": "user-profile",
          "name": "User Profile",
          "trigger": "initialization",
          "fetchConfig": {
            "url": "https://api.example.com/users/{{requestContext.userId}}",
            "method": "GET",
            "headers": {
              "Authorization": "Bearer {{requestContext.sessionToken}}"
            }
          },
          "defaultValue": {
            "name": "Anonymous User"
          }
        }
      }
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Full Graph

Delete a complete agent graph and cascade to all related entities (relationships, not agents/tools)

DELETE
/tenants/{tenantId}/crud/projects/{projectId}/graph/{graphId}

Path Parameters

tenantIdstring
projectIdstring
graphIdstring

Response Body

curl -X DELETE "http://localhost:3002/tenants/string/crud/projects/string/graph/string"
Empty
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Update Full Graph

Update or create a complete agent graph with all agents, tools, and relationships from JSON definition

PUT
/tenants/{tenantId}/crud/projects/{projectId}/graph/{graphId}

Path Parameters

tenantIdstring
projectIdstring
graphIdstring
idstring

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
namestring
description?string | null
defaultAgentId?string

URL-safe resource identifier

Match^[a-zA-Z0-9_-]+$
Length1 <= length <= 255
contextConfigId?string | null
modelSettings?object
statusUpdates?object
createdAt?string
updatedAt?string
agentsobject

Empty Object

toolsobject

Empty Object

credentialReferences?array<object>
dataComponents?object

Empty Object

artifactComponents?object

Empty Object

contextConfig?object

Response Body

curl -X PUT "http://localhost:3002/tenants/string/crud/projects/string/graph/string" \  -H "Content-Type: application/json" \  -d '{    "id": "string",    "name": "string",    "agents": {      "property1": {        "id": "customer-support-agent",        "name": "Customer Support Agent",        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."      },      "property2": {        "id": "customer-support-agent",        "name": "Customer Support Agent",        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."      }    },    "tools": {      "property1": {        "id": "string",        "name": "string",        "config": "string"      },      "property2": {        "id": "string",        "name": "string",        "config": "string"      }    }  }'
{
  "data": {
    "id": "string",
    "name": "string",
    "description": "string",
    "defaultAgentId": "string",
    "contextConfigId": "string",
    "modelSettings": {
      "model": "string",
      "structuredOutput": "string",
      "summarizer": "string",
      "providerOptions": {
        "property1": {
          "property1": null,
          "property2": null
        },
        "property2": {
          "property1": null,
          "property2": null
        }
      }
    },
    "statusUpdates": {
      "numEvents": 0,
      "timeInSeconds": 0,
      "model": "string",
      "prompt": "string",
      "statusComponents": [
        {
          "id": "string",
          "name": "string",
          "description": "string",
          "schema": {
            "type": "object",
            "properties": {
              "property1": null,
              "property2": null
            },
            "required": [
              "string"
            ]
          }
        }
      ]
    },
    "createdAt": "string",
    "updatedAt": "string",
    "agents": {
      "property1": {
        "id": "customer-support-agent",
        "name": "Customer Support Agent",
        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
      },
      "property2": {
        "id": "customer-support-agent",
        "name": "Customer Support Agent",
        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
      }
    },
    "tools": {
      "property1": {
        "id": "string",
        "name": "string",
        "config": "string",
        "credentialReferenceId": "string",
        "headers": "string",
        "imageUrl": "string",
        "capabilities": {
          "tools": true,
          "streaming": true
        },
        "status": "healthy",
        "lastHealthCheck": "string",
        "lastError": "string",
        "availableTools": [
          {
            "name": "string",
            "description": "string",
            "inputSchema": null
          }
        ],
        "lastToolsSync": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "activeTools": [
          "string"
        ]
      },
      "property2": {
        "id": "string",
        "name": "string",
        "config": "string",
        "credentialReferenceId": "string",
        "headers": "string",
        "imageUrl": "string",
        "capabilities": {
          "tools": true,
          "streaming": true
        },
        "status": "healthy",
        "lastHealthCheck": "string",
        "lastError": "string",
        "availableTools": [
          {
            "name": "string",
            "description": "string",
            "inputSchema": null
          }
        ],
        "lastToolsSync": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "activeTools": [
          "string"
        ]
      }
    },
    "credentialReferences": [
      {
        "id": "slack-main-workspace",
        "type": "nango",
        "credentialStoreId": "nango-default",
        "retrievalParams": {
          "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",
          "providerConfigKey": "slack-agent"
        }
      }
    ],
    "dataComponents": {
      "property1": {
        "id": "orders-list",
        "name": "OrdersList",
        "description": "Display a list of user orders with interactive options",
        "props": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Order items to select from"
            }
          },
          "required": [
            "orders"
          ]
        }
      },
      "property2": {
        "id": "orders-list",
        "name": "OrdersList",
        "description": "Display a list of user orders with interactive options",
        "props": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Order items to select from"
            }
          },
          "required": [
            "orders"
          ]
        }
      }
    },
    "artifactComponents": {
      "property1": {
        "id": "user-profile-card",
        "name": "UserProfileCard",
        "description": "Display user profile information with interactive elements",
        "summaryProps": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "User name"
            },
            "role": {
              "type": "string",
              "description": "User role"
            }
          },
          "required": [
            "name"
          ]
        },
        "fullProps": {
          "type": "object",
          "properties": {
            "user": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "avatar": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "bio": {
                  "type": "string"
                }
              },
              "description": "Complete user information"
            },
            "showActions": {
              "type": "boolean",
              "description": "Whether to show action buttons",
              "default": true
            },
            "metadata": {
              "type": "object",
              "description": "Additional metadata for the profile"
            }
          },
          "required": [
            "user"
          ]
        }
      },
      "property2": {
        "id": "user-profile-card",
        "name": "UserProfileCard",
        "description": "Display user profile information with interactive elements",
        "summaryProps": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "User name"
            },
            "role": {
              "type": "string",
              "description": "User role"
            }
          },
          "required": [
            "name"
          ]
        },
        "fullProps": {
          "type": "object",
          "properties": {
            "user": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "avatar": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "bio": {
                  "type": "string"
                }
              },
              "description": "Complete user information"
            },
            "showActions": {
              "type": "boolean",
              "description": "Whether to show action buttons",
              "default": true
            },
            "metadata": {
              "type": "object",
              "description": "Additional metadata for the profile"
            }
          },
          "required": [
            "user"
          ]
        }
      }
    },
    "contextConfig": {
      "id": "user-context-config",
      "name": "User Context Configuration",
      "description": "Context configuration for user authentication and preferences",
      "requestContextSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "User identifier"
          },
          "sessionToken": {
            "type": "string",
            "description": "Session token for authentication"
          }
        },
        "required": [
          "userId"
        ]
      },
      "contextVariables": {
        "userProfile": {
          "id": "user-profile",
          "name": "User Profile",
          "trigger": "initialization",
          "fetchConfig": {
            "url": "https://api.example.com/users/{{requestContext.userId}}",
            "method": "GET",
            "headers": {
              "Authorization": "Bearer {{requestContext.sessionToken}}"
            }
          },
          "defaultValue": {
            "name": "Anonymous User"
          }
        }
      }
    }
  }
}
{
  "data": {
    "id": "string",
    "name": "string",
    "description": "string",
    "defaultAgentId": "string",
    "contextConfigId": "string",
    "modelSettings": {
      "model": "string",
      "structuredOutput": "string",
      "summarizer": "string",
      "providerOptions": {
        "property1": {
          "property1": null,
          "property2": null
        },
        "property2": {
          "property1": null,
          "property2": null
        }
      }
    },
    "statusUpdates": {
      "numEvents": 0,
      "timeInSeconds": 0,
      "model": "string",
      "prompt": "string",
      "statusComponents": [
        {
          "id": "string",
          "name": "string",
          "description": "string",
          "schema": {
            "type": "object",
            "properties": {
              "property1": null,
              "property2": null
            },
            "required": [
              "string"
            ]
          }
        }
      ]
    },
    "createdAt": "string",
    "updatedAt": "string",
    "agents": {
      "property1": {
        "id": "customer-support-agent",
        "name": "Customer Support Agent",
        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
      },
      "property2": {
        "id": "customer-support-agent",
        "name": "Customer Support Agent",
        "description": "An AI agent specialized in handling customer support inquiries and resolving customer issues",
        "instructions": "You are a helpful customer support agent. Be polite, professional, and empathetic. Help customers resolve their issues efficiently while maintaining a friendly tone. If you cannot resolve an issue, escalate it appropriately."
      }
    },
    "tools": {
      "property1": {
        "id": "string",
        "name": "string",
        "config": "string",
        "credentialReferenceId": "string",
        "headers": "string",
        "imageUrl": "string",
        "capabilities": {
          "tools": true,
          "streaming": true
        },
        "status": "healthy",
        "lastHealthCheck": "string",
        "lastError": "string",
        "availableTools": [
          {
            "name": "string",
            "description": "string",
            "inputSchema": null
          }
        ],
        "lastToolsSync": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "activeTools": [
          "string"
        ]
      },
      "property2": {
        "id": "string",
        "name": "string",
        "config": "string",
        "credentialReferenceId": "string",
        "headers": "string",
        "imageUrl": "string",
        "capabilities": {
          "tools": true,
          "streaming": true
        },
        "status": "healthy",
        "lastHealthCheck": "string",
        "lastError": "string",
        "availableTools": [
          {
            "name": "string",
            "description": "string",
            "inputSchema": null
          }
        ],
        "lastToolsSync": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "activeTools": [
          "string"
        ]
      }
    },
    "credentialReferences": [
      {
        "id": "slack-main-workspace",
        "type": "nango",
        "credentialStoreId": "nango-default",
        "retrievalParams": {
          "connectionId": "2327fe1f-8b12-4597-91fb-ff1d76f92f85",
          "providerConfigKey": "slack-agent"
        }
      }
    ],
    "dataComponents": {
      "property1": {
        "id": "orders-list",
        "name": "OrdersList",
        "description": "Display a list of user orders with interactive options",
        "props": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Order items to select from"
            }
          },
          "required": [
            "orders"
          ]
        }
      },
      "property2": {
        "id": "orders-list",
        "name": "OrdersList",
        "description": "Display a list of user orders with interactive options",
        "props": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Order items to select from"
            }
          },
          "required": [
            "orders"
          ]
        }
      }
    },
    "artifactComponents": {
      "property1": {
        "id": "user-profile-card",
        "name": "UserProfileCard",
        "description": "Display user profile information with interactive elements",
        "summaryProps": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "User name"
            },
            "role": {
              "type": "string",
              "description": "User role"
            }
          },
          "required": [
            "name"
          ]
        },
        "fullProps": {
          "type": "object",
          "properties": {
            "user": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "avatar": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "bio": {
                  "type": "string"
                }
              },
              "description": "Complete user information"
            },
            "showActions": {
              "type": "boolean",
              "description": "Whether to show action buttons",
              "default": true
            },
            "metadata": {
              "type": "object",
              "description": "Additional metadata for the profile"
            }
          },
          "required": [
            "user"
          ]
        }
      },
      "property2": {
        "id": "user-profile-card",
        "name": "UserProfileCard",
        "description": "Display user profile information with interactive elements",
        "summaryProps": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "User name"
            },
            "role": {
              "type": "string",
              "description": "User role"
            }
          },
          "required": [
            "name"
          ]
        },
        "fullProps": {
          "type": "object",
          "properties": {
            "user": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "avatar": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "bio": {
                  "type": "string"
                }
              },
              "description": "Complete user information"
            },
            "showActions": {
              "type": "boolean",
              "description": "Whether to show action buttons",
              "default": true
            },
            "metadata": {
              "type": "object",
              "description": "Additional metadata for the profile"
            }
          },
          "required": [
            "user"
          ]
        }
      }
    },
    "contextConfig": {
      "id": "user-context-config",
      "name": "User Context Configuration",
      "description": "Context configuration for user authentication and preferences",
      "requestContextSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "User identifier"
          },
          "sessionToken": {
            "type": "string",
            "description": "Session token for authentication"
          }
        },
        "required": [
          "userId"
        ]
      },
      "contextVariables": {
        "userProfile": {
          "id": "user-profile",
          "name": "User Profile",
          "trigger": "initialization",
          "fetchConfig": {
            "url": "https://api.example.com/users/{{requestContext.userId}}",
            "method": "GET",
            "headers": {
              "Authorization": "Bearer {{requestContext.sessionToken}}"
            }
          },
          "defaultValue": {
            "name": "Anonymous User"
          }
        }
      }
    }
  }
}
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "bad_request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "not_found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "unprocessable_entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "code": "internal_server_error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

OAuth authorization callback

Handles OAuth authorization codes and completes the authentication flow

GET
/oauth/callback

Query Parameters

codestring
Length1 <= length
statestring
Length1 <= length
error?string
error_description?string

Response Body

curl -X GET "http://localhost:3002/oauth/callback?code=string&state=string&error=string&error_description=string"
Empty
"string"
"string"