API Reference

Agents

Copy page

Operations for managing agents

Create Full Agent

POST
/manage/tenants/{tenantId}/projects/{projectId}/agent

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

Request Body

application/json

contextConfigId?string
Lengthlength <= 256
createdAt?string
defaultSubAgentId?string

ID of the default sub-agent that handles initial user messages. Required at runtime but nullable on creation to avoid circular FK dependency. Workflow: 1) POST Agent (without defaultSubAgentId), 2) POST SubAgent, 3) PATCH Agent with defaultSubAgentId.

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

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255
models?|||||array<>|
name*string

Agent name

Length1 <= length
prompt?string
Lengthlength <= 5000
statusUpdates?|||||array<>|
stopWhen?|||||array<>|
updatedAt?string
contextConfig?
externalAgents?
functionTools?
functions?
subAgents*
teamAgents?
tools?
triggers?

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/json

application/problem+json

application/problem+json

curl -X POST "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agent" \  -H "Content-Type: application/json" \  -d '{    "id": "resource_789",    "name": "string",    "subAgents": {      "property1": {        "id": "resource_789",        "name": "string",        "canUse": [          {            "toolId": "string"          }        ],        "type": "internal"      },      "property2": {        "id": "resource_789",        "name": "string",        "canUse": [          {            "toolId": "string"          }        ],        "type": "internal"      }    }  }'
{
  "data": {
    "contextConfigId": "string",
    "createdAt": "string",
    "defaultSubAgentId": "my-default-subagent",
    "description": "string",
    "id": "resource_789",
    "models": {
      "base": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      },
      "structuredOutput": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      },
      "summarizer": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      }
    },
    "name": "string",
    "prompt": "string",
    "statusUpdates": {
      "enabled": true,
      "numEvents": 1,
      "prompt": "string",
      "statusComponents": [
        {
          "description": "string",
          "detailsSchema": {
            "properties": {
              "property1": null,
              "property2": null
            },
            "required": [
              "string"
            ],
            "type": "object"
          },
          "type": "string"
        }
      ],
      "timeInSeconds": 1
    },
    "stopWhen": {
      "transferCountIs": 1
    },
    "updatedAt": "string",
    "contextConfig": {
      "contextVariables": {},
      "headersSchema": {},
      "id": "resource_789"
    },
    "externalAgents": {
      "property1": {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "functionTools": {
      "property1": {
        "createdAt": "string",
        "description": "string",
        "functionId": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "createdAt": "string",
        "description": "string",
        "functionId": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "functions": {
      "property1": {
        "createdAt": "string",
        "dependencies": "string",
        "executeCode": "string",
        "id": "resource_789",
        "inputSchema": "string",
        "updatedAt": "string"
      },
      "property2": {
        "createdAt": "string",
        "dependencies": "string",
        "executeCode": "string",
        "id": "resource_789",
        "inputSchema": "string",
        "updatedAt": "string"
      }
    },
    "subAgents": {
      "property1": {
        "conversationHistoryConfig": "string",
        "createdAt": "string",
        "description": "string",
        "id": "resource_789",
        "models": {
          "base": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "structuredOutput": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "summarizer": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          }
        },
        "name": "string",
        "prompt": "string",
        "stopWhen": "string",
        "updatedAt": "string",
        "artifactComponents": [
          "string"
        ],
        "canDelegateTo": [
          "string"
        ],
        "canTransferTo": [
          "string"
        ],
        "canUse": [
          {
            "agentToolRelationId": "string",
            "headers": {
              "property1": "string",
              "property2": "string"
            },
            "toolId": "string",
            "toolPolicies": {
              "property1": {
                "needsApproval": true
              },
              "property2": {
                "needsApproval": true
              }
            },
            "toolSelection": [
              "string"
            ]
          }
        ],
        "dataComponents": [
          "string"
        ],
        "type": "internal"
      },
      "property2": {
        "conversationHistoryConfig": "string",
        "createdAt": "string",
        "description": "string",
        "id": "resource_789",
        "models": {
          "base": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "structuredOutput": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "summarizer": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          }
        },
        "name": "string",
        "prompt": "string",
        "stopWhen": "string",
        "updatedAt": "string",
        "artifactComponents": [
          "string"
        ],
        "canDelegateTo": [
          "string"
        ],
        "canTransferTo": [
          "string"
        ],
        "canUse": [
          {
            "agentToolRelationId": "string",
            "headers": {
              "property1": "string",
              "property2": "string"
            },
            "toolId": "string",
            "toolPolicies": {
              "property1": {
                "needsApproval": true
              },
              "property2": {
                "needsApproval": true
              }
            },
            "toolSelection": [
              "string"
            ]
          }
        ],
        "dataComponents": [
          "string"
        ],
        "type": "internal"
      }
    },
    "teamAgents": {
      "property1": {
        "description": "string",
        "id": "string",
        "name": "string"
      },
      "property2": {
        "description": "string",
        "id": "string",
        "name": "string"
      }
    },
    "tools": {
      "property1": {
        "capabilities": "string",
        "config": {
          "mcp": {
            "activeTools": [
              "string"
            ],
            "prompt": "string",
            "server": {
              "url": "http://example.com"
            },
            "toolOverrides": {
              "property1": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              },
              "property2": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              }
            },
            "transport": {
              "eventSourceInit": {
                "property1": null,
                "property2": null
              },
              "reconnectionOptions": {},
              "requestInit": {
                "property1": null,
                "property2": null
              },
              "sessionId": "string",
              "type": "streamable_http"
            }
          },
          "type": "mcp"
        },
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "resource_789",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "capabilities": "string",
        "config": {
          "mcp": {
            "activeTools": [
              "string"
            ],
            "prompt": "string",
            "server": {
              "url": "http://example.com"
            },
            "toolOverrides": {
              "property1": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              },
              "property2": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              }
            },
            "transport": {
              "eventSourceInit": {
                "property1": null,
                "property2": null
              },
              "reconnectionOptions": {},
              "requestInit": {
                "property1": null,
                "property2": null
              },
              "sessionId": "string",
              "type": "streamable_http"
            }
          },
          "type": "mcp"
        },
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "resource_789",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "triggers": {
      "property1": {
        "authentication": {
          "headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        },
        "createdAt": "string",
        "description": "string",
        "enabled": true,
        "id": "resource_789",
        "inputSchema": {
          "property1": null,
          "property2": null
        },
        "messageTemplate": "string",
        "name": "string",
        "outputTransform": {
          "jmespath": "string",
          "objectTransformation": {
            "property1": "string",
            "property2": "string"
          }
        },
        "signatureVerification": {
          "algorithm": "sha256",
          "componentJoin": {
            "separator": "string",
            "strategy": "concatenate"
          },
          "encoding": "hex",
          "signature": {
            "key": "string",
            "prefix": "string",
            "regex": "string",
            "source": "header"
          },
          "signedComponents": [
            {
              "key": "string",
              "regex": "string",
              "required": true,
              "source": "header",
              "value": "string"
            }
          ],
          "validation": {
            "allowEmptyBody": true,
            "headerCaseSensitive": false,
            "normalizeUnicode": false
          }
        },
        "signingSecretCredentialReferenceId": "string",
        "updatedAt": "string"
      },
      "property2": {
        "authentication": {
          "headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        },
        "createdAt": "string",
        "description": "string",
        "enabled": true,
        "id": "resource_789",
        "inputSchema": {
          "property1": null,
          "property2": null
        },
        "messageTemplate": "string",
        "name": "string",
        "outputTransform": {
          "jmespath": "string",
          "objectTransformation": {
            "property1": "string",
            "property2": "string"
          }
        },
        "signatureVerification": {
          "algorithm": "sha256",
          "componentJoin": {
            "separator": "string",
            "strategy": "concatenate"
          },
          "encoding": "hex",
          "signature": {
            "key": "string",
            "prefix": "string",
            "regex": "string",
            "source": "header"
          },
          "signedComponents": [
            {
              "key": "string",
              "regex": "string",
              "required": true,
              "source": "header",
              "value": "string"
            }
          ],
          "validation": {
            "allowEmptyBody": true,
            "headerCaseSensitive": false,
            "normalizeUnicode": false
          }
        },
        "signingSecretCredentialReferenceId": "string",
        "updatedAt": "string"
      }
    }
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "details": null,
  "error": "string",
  "message": "string"
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Full Agent

GET
/manage/tenants/{tenantId}/projects/{projectId}/agent/{agentId}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agent/agent_789"
{
  "data": {
    "contextConfigId": "string",
    "createdAt": "string",
    "defaultSubAgentId": "my-default-subagent",
    "description": "string",
    "id": "resource_789",
    "models": {
      "base": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      },
      "structuredOutput": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      },
      "summarizer": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      }
    },
    "name": "string",
    "prompt": "string",
    "statusUpdates": {
      "enabled": true,
      "numEvents": 1,
      "prompt": "string",
      "statusComponents": [
        {
          "description": "string",
          "detailsSchema": {
            "properties": {
              "property1": null,
              "property2": null
            },
            "required": [
              "string"
            ],
            "type": "object"
          },
          "type": "string"
        }
      ],
      "timeInSeconds": 1
    },
    "stopWhen": {
      "transferCountIs": 1
    },
    "updatedAt": "string",
    "contextConfig": {
      "contextVariables": {},
      "headersSchema": {},
      "id": "resource_789"
    },
    "externalAgents": {
      "property1": {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "functionTools": {
      "property1": {
        "createdAt": "string",
        "description": "string",
        "functionId": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "createdAt": "string",
        "description": "string",
        "functionId": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "functions": {
      "property1": {
        "createdAt": "string",
        "dependencies": "string",
        "executeCode": "string",
        "id": "resource_789",
        "inputSchema": "string",
        "updatedAt": "string"
      },
      "property2": {
        "createdAt": "string",
        "dependencies": "string",
        "executeCode": "string",
        "id": "resource_789",
        "inputSchema": "string",
        "updatedAt": "string"
      }
    },
    "subAgents": {
      "property1": {
        "conversationHistoryConfig": "string",
        "createdAt": "string",
        "description": "string",
        "id": "resource_789",
        "models": {
          "base": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "structuredOutput": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "summarizer": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          }
        },
        "name": "string",
        "prompt": "string",
        "stopWhen": "string",
        "updatedAt": "string",
        "artifactComponents": [
          "string"
        ],
        "canDelegateTo": [
          "string"
        ],
        "canTransferTo": [
          "string"
        ],
        "canUse": [
          {
            "agentToolRelationId": "string",
            "headers": {
              "property1": "string",
              "property2": "string"
            },
            "toolId": "string",
            "toolPolicies": {
              "property1": {
                "needsApproval": true
              },
              "property2": {
                "needsApproval": true
              }
            },
            "toolSelection": [
              "string"
            ]
          }
        ],
        "dataComponents": [
          "string"
        ],
        "type": "internal"
      },
      "property2": {
        "conversationHistoryConfig": "string",
        "createdAt": "string",
        "description": "string",
        "id": "resource_789",
        "models": {
          "base": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "structuredOutput": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "summarizer": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          }
        },
        "name": "string",
        "prompt": "string",
        "stopWhen": "string",
        "updatedAt": "string",
        "artifactComponents": [
          "string"
        ],
        "canDelegateTo": [
          "string"
        ],
        "canTransferTo": [
          "string"
        ],
        "canUse": [
          {
            "agentToolRelationId": "string",
            "headers": {
              "property1": "string",
              "property2": "string"
            },
            "toolId": "string",
            "toolPolicies": {
              "property1": {
                "needsApproval": true
              },
              "property2": {
                "needsApproval": true
              }
            },
            "toolSelection": [
              "string"
            ]
          }
        ],
        "dataComponents": [
          "string"
        ],
        "type": "internal"
      }
    },
    "teamAgents": {
      "property1": {
        "description": "string",
        "id": "string",
        "name": "string"
      },
      "property2": {
        "description": "string",
        "id": "string",
        "name": "string"
      }
    },
    "tools": {
      "property1": {
        "capabilities": "string",
        "config": {
          "mcp": {
            "activeTools": [
              "string"
            ],
            "prompt": "string",
            "server": {
              "url": "http://example.com"
            },
            "toolOverrides": {
              "property1": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              },
              "property2": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              }
            },
            "transport": {
              "eventSourceInit": {
                "property1": null,
                "property2": null
              },
              "reconnectionOptions": {},
              "requestInit": {
                "property1": null,
                "property2": null
              },
              "sessionId": "string",
              "type": "streamable_http"
            }
          },
          "type": "mcp"
        },
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "resource_789",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "capabilities": "string",
        "config": {
          "mcp": {
            "activeTools": [
              "string"
            ],
            "prompt": "string",
            "server": {
              "url": "http://example.com"
            },
            "toolOverrides": {
              "property1": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              },
              "property2": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              }
            },
            "transport": {
              "eventSourceInit": {
                "property1": null,
                "property2": null
              },
              "reconnectionOptions": {},
              "requestInit": {
                "property1": null,
                "property2": null
              },
              "sessionId": "string",
              "type": "streamable_http"
            }
          },
          "type": "mcp"
        },
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "resource_789",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "triggers": {
      "property1": {
        "authentication": {
          "headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        },
        "createdAt": "string",
        "description": "string",
        "enabled": true,
        "id": "resource_789",
        "inputSchema": {
          "property1": null,
          "property2": null
        },
        "messageTemplate": "string",
        "name": "string",
        "outputTransform": {
          "jmespath": "string",
          "objectTransformation": {
            "property1": "string",
            "property2": "string"
          }
        },
        "signatureVerification": {
          "algorithm": "sha256",
          "componentJoin": {
            "separator": "string",
            "strategy": "concatenate"
          },
          "encoding": "hex",
          "signature": {
            "key": "string",
            "prefix": "string",
            "regex": "string",
            "source": "header"
          },
          "signedComponents": [
            {
              "key": "string",
              "regex": "string",
              "required": true,
              "source": "header",
              "value": "string"
            }
          ],
          "validation": {
            "allowEmptyBody": true,
            "headerCaseSensitive": false,
            "normalizeUnicode": false
          }
        },
        "signingSecretCredentialReferenceId": "string",
        "updatedAt": "string"
      },
      "property2": {
        "authentication": {
          "headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        },
        "createdAt": "string",
        "description": "string",
        "enabled": true,
        "id": "resource_789",
        "inputSchema": {
          "property1": null,
          "property2": null
        },
        "messageTemplate": "string",
        "name": "string",
        "outputTransform": {
          "jmespath": "string",
          "objectTransformation": {
            "property1": "string",
            "property2": "string"
          }
        },
        "signatureVerification": {
          "algorithm": "sha256",
          "componentJoin": {
            "separator": "string",
            "strategy": "concatenate"
          },
          "encoding": "hex",
          "signature": {
            "key": "string",
            "prefix": "string",
            "regex": "string",
            "source": "header"
          },
          "signedComponents": [
            {
              "key": "string",
              "regex": "string",
              "required": true,
              "source": "header",
              "value": "string"
            }
          ],
          "validation": {
            "allowEmptyBody": true,
            "headerCaseSensitive": false,
            "normalizeUnicode": false
          }
        },
        "signingSecretCredentialReferenceId": "string",
        "updatedAt": "string"
      }
    }
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Full Agent

DELETE
/manage/tenants/{tenantId}/projects/{projectId}/agent/{agentId}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

Response Body

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X DELETE "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agent/agent_789"
Empty
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Update Full Agent

PUT
/manage/tenants/{tenantId}/projects/{projectId}/agent/{agentId}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

Request Body

application/json

contextConfigId?string
Lengthlength <= 256
createdAt?string
defaultSubAgentId?string

ID of the default sub-agent that handles initial user messages. Required at runtime but nullable on creation to avoid circular FK dependency. Workflow: 1) POST Agent (without defaultSubAgentId), 2) POST SubAgent, 3) PATCH Agent with defaultSubAgentId.

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

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255
models?|||||array<>|
name*string

Agent name

Length1 <= length
prompt?string
Lengthlength <= 5000
statusUpdates?|||||array<>|
stopWhen?|||||array<>|
updatedAt?string
contextConfig?
externalAgents?
functionTools?
functions?
subAgents*
teamAgents?
tools?
triggers?

Response Body

application/json

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X PUT "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agent/agent_789" \  -H "Content-Type: application/json" \  -d '{    "id": "resource_789",    "name": "string",    "subAgents": {      "property1": {        "id": "resource_789",        "name": "string",        "canUse": [          {            "toolId": "string"          }        ],        "type": "internal"      },      "property2": {        "id": "resource_789",        "name": "string",        "canUse": [          {            "toolId": "string"          }        ],        "type": "internal"      }    }  }'
{
  "data": {
    "contextConfigId": "string",
    "createdAt": "string",
    "defaultSubAgentId": "my-default-subagent",
    "description": "string",
    "id": "resource_789",
    "models": {
      "base": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      },
      "structuredOutput": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      },
      "summarizer": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      }
    },
    "name": "string",
    "prompt": "string",
    "statusUpdates": {
      "enabled": true,
      "numEvents": 1,
      "prompt": "string",
      "statusComponents": [
        {
          "description": "string",
          "detailsSchema": {
            "properties": {
              "property1": null,
              "property2": null
            },
            "required": [
              "string"
            ],
            "type": "object"
          },
          "type": "string"
        }
      ],
      "timeInSeconds": 1
    },
    "stopWhen": {
      "transferCountIs": 1
    },
    "updatedAt": "string",
    "contextConfig": {
      "contextVariables": {},
      "headersSchema": {},
      "id": "resource_789"
    },
    "externalAgents": {
      "property1": {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "functionTools": {
      "property1": {
        "createdAt": "string",
        "description": "string",
        "functionId": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "createdAt": "string",
        "description": "string",
        "functionId": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "functions": {
      "property1": {
        "createdAt": "string",
        "dependencies": "string",
        "executeCode": "string",
        "id": "resource_789",
        "inputSchema": "string",
        "updatedAt": "string"
      },
      "property2": {
        "createdAt": "string",
        "dependencies": "string",
        "executeCode": "string",
        "id": "resource_789",
        "inputSchema": "string",
        "updatedAt": "string"
      }
    },
    "subAgents": {
      "property1": {
        "conversationHistoryConfig": "string",
        "createdAt": "string",
        "description": "string",
        "id": "resource_789",
        "models": {
          "base": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "structuredOutput": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "summarizer": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          }
        },
        "name": "string",
        "prompt": "string",
        "stopWhen": "string",
        "updatedAt": "string",
        "artifactComponents": [
          "string"
        ],
        "canDelegateTo": [
          "string"
        ],
        "canTransferTo": [
          "string"
        ],
        "canUse": [
          {
            "agentToolRelationId": "string",
            "headers": {
              "property1": "string",
              "property2": "string"
            },
            "toolId": "string",
            "toolPolicies": {
              "property1": {
                "needsApproval": true
              },
              "property2": {
                "needsApproval": true
              }
            },
            "toolSelection": [
              "string"
            ]
          }
        ],
        "dataComponents": [
          "string"
        ],
        "type": "internal"
      },
      "property2": {
        "conversationHistoryConfig": "string",
        "createdAt": "string",
        "description": "string",
        "id": "resource_789",
        "models": {
          "base": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "structuredOutput": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "summarizer": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          }
        },
        "name": "string",
        "prompt": "string",
        "stopWhen": "string",
        "updatedAt": "string",
        "artifactComponents": [
          "string"
        ],
        "canDelegateTo": [
          "string"
        ],
        "canTransferTo": [
          "string"
        ],
        "canUse": [
          {
            "agentToolRelationId": "string",
            "headers": {
              "property1": "string",
              "property2": "string"
            },
            "toolId": "string",
            "toolPolicies": {
              "property1": {
                "needsApproval": true
              },
              "property2": {
                "needsApproval": true
              }
            },
            "toolSelection": [
              "string"
            ]
          }
        ],
        "dataComponents": [
          "string"
        ],
        "type": "internal"
      }
    },
    "teamAgents": {
      "property1": {
        "description": "string",
        "id": "string",
        "name": "string"
      },
      "property2": {
        "description": "string",
        "id": "string",
        "name": "string"
      }
    },
    "tools": {
      "property1": {
        "capabilities": "string",
        "config": {
          "mcp": {
            "activeTools": [
              "string"
            ],
            "prompt": "string",
            "server": {
              "url": "http://example.com"
            },
            "toolOverrides": {
              "property1": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              },
              "property2": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              }
            },
            "transport": {
              "eventSourceInit": {
                "property1": null,
                "property2": null
              },
              "reconnectionOptions": {},
              "requestInit": {
                "property1": null,
                "property2": null
              },
              "sessionId": "string",
              "type": "streamable_http"
            }
          },
          "type": "mcp"
        },
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "resource_789",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "capabilities": "string",
        "config": {
          "mcp": {
            "activeTools": [
              "string"
            ],
            "prompt": "string",
            "server": {
              "url": "http://example.com"
            },
            "toolOverrides": {
              "property1": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              },
              "property2": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              }
            },
            "transport": {
              "eventSourceInit": {
                "property1": null,
                "property2": null
              },
              "reconnectionOptions": {},
              "requestInit": {
                "property1": null,
                "property2": null
              },
              "sessionId": "string",
              "type": "streamable_http"
            }
          },
          "type": "mcp"
        },
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "resource_789",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "triggers": {
      "property1": {
        "authentication": {
          "headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        },
        "createdAt": "string",
        "description": "string",
        "enabled": true,
        "id": "resource_789",
        "inputSchema": {
          "property1": null,
          "property2": null
        },
        "messageTemplate": "string",
        "name": "string",
        "outputTransform": {
          "jmespath": "string",
          "objectTransformation": {
            "property1": "string",
            "property2": "string"
          }
        },
        "signatureVerification": {
          "algorithm": "sha256",
          "componentJoin": {
            "separator": "string",
            "strategy": "concatenate"
          },
          "encoding": "hex",
          "signature": {
            "key": "string",
            "prefix": "string",
            "regex": "string",
            "source": "header"
          },
          "signedComponents": [
            {
              "key": "string",
              "regex": "string",
              "required": true,
              "source": "header",
              "value": "string"
            }
          ],
          "validation": {
            "allowEmptyBody": true,
            "headerCaseSensitive": false,
            "normalizeUnicode": false
          }
        },
        "signingSecretCredentialReferenceId": "string",
        "updatedAt": "string"
      },
      "property2": {
        "authentication": {
          "headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        },
        "createdAt": "string",
        "description": "string",
        "enabled": true,
        "id": "resource_789",
        "inputSchema": {
          "property1": null,
          "property2": null
        },
        "messageTemplate": "string",
        "name": "string",
        "outputTransform": {
          "jmespath": "string",
          "objectTransformation": {
            "property1": "string",
            "property2": "string"
          }
        },
        "signatureVerification": {
          "algorithm": "sha256",
          "componentJoin": {
            "separator": "string",
            "strategy": "concatenate"
          },
          "encoding": "hex",
          "signature": {
            "key": "string",
            "prefix": "string",
            "regex": "string",
            "source": "header"
          },
          "signedComponents": [
            {
              "key": "string",
              "regex": "string",
              "required": true,
              "source": "header",
              "value": "string"
            }
          ],
          "validation": {
            "allowEmptyBody": true,
            "headerCaseSensitive": false,
            "normalizeUnicode": false
          }
        },
        "signingSecretCredentialReferenceId": "string",
        "updatedAt": "string"
      }
    }
  }
}
{
  "data": {
    "contextConfigId": "string",
    "createdAt": "string",
    "defaultSubAgentId": "my-default-subagent",
    "description": "string",
    "id": "resource_789",
    "models": {
      "base": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      },
      "structuredOutput": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      },
      "summarizer": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      }
    },
    "name": "string",
    "prompt": "string",
    "statusUpdates": {
      "enabled": true,
      "numEvents": 1,
      "prompt": "string",
      "statusComponents": [
        {
          "description": "string",
          "detailsSchema": {
            "properties": {
              "property1": null,
              "property2": null
            },
            "required": [
              "string"
            ],
            "type": "object"
          },
          "type": "string"
        }
      ],
      "timeInSeconds": 1
    },
    "stopWhen": {
      "transferCountIs": 1
    },
    "updatedAt": "string",
    "contextConfig": {
      "contextVariables": {},
      "headersSchema": {},
      "id": "resource_789"
    },
    "externalAgents": {
      "property1": {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "functionTools": {
      "property1": {
        "createdAt": "string",
        "description": "string",
        "functionId": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "createdAt": "string",
        "description": "string",
        "functionId": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "functions": {
      "property1": {
        "createdAt": "string",
        "dependencies": "string",
        "executeCode": "string",
        "id": "resource_789",
        "inputSchema": "string",
        "updatedAt": "string"
      },
      "property2": {
        "createdAt": "string",
        "dependencies": "string",
        "executeCode": "string",
        "id": "resource_789",
        "inputSchema": "string",
        "updatedAt": "string"
      }
    },
    "subAgents": {
      "property1": {
        "conversationHistoryConfig": "string",
        "createdAt": "string",
        "description": "string",
        "id": "resource_789",
        "models": {
          "base": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "structuredOutput": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "summarizer": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          }
        },
        "name": "string",
        "prompt": "string",
        "stopWhen": "string",
        "updatedAt": "string",
        "artifactComponents": [
          "string"
        ],
        "canDelegateTo": [
          "string"
        ],
        "canTransferTo": [
          "string"
        ],
        "canUse": [
          {
            "agentToolRelationId": "string",
            "headers": {
              "property1": "string",
              "property2": "string"
            },
            "toolId": "string",
            "toolPolicies": {
              "property1": {
                "needsApproval": true
              },
              "property2": {
                "needsApproval": true
              }
            },
            "toolSelection": [
              "string"
            ]
          }
        ],
        "dataComponents": [
          "string"
        ],
        "type": "internal"
      },
      "property2": {
        "conversationHistoryConfig": "string",
        "createdAt": "string",
        "description": "string",
        "id": "resource_789",
        "models": {
          "base": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "structuredOutput": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "summarizer": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          }
        },
        "name": "string",
        "prompt": "string",
        "stopWhen": "string",
        "updatedAt": "string",
        "artifactComponents": [
          "string"
        ],
        "canDelegateTo": [
          "string"
        ],
        "canTransferTo": [
          "string"
        ],
        "canUse": [
          {
            "agentToolRelationId": "string",
            "headers": {
              "property1": "string",
              "property2": "string"
            },
            "toolId": "string",
            "toolPolicies": {
              "property1": {
                "needsApproval": true
              },
              "property2": {
                "needsApproval": true
              }
            },
            "toolSelection": [
              "string"
            ]
          }
        ],
        "dataComponents": [
          "string"
        ],
        "type": "internal"
      }
    },
    "teamAgents": {
      "property1": {
        "description": "string",
        "id": "string",
        "name": "string"
      },
      "property2": {
        "description": "string",
        "id": "string",
        "name": "string"
      }
    },
    "tools": {
      "property1": {
        "capabilities": "string",
        "config": {
          "mcp": {
            "activeTools": [
              "string"
            ],
            "prompt": "string",
            "server": {
              "url": "http://example.com"
            },
            "toolOverrides": {
              "property1": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              },
              "property2": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              }
            },
            "transport": {
              "eventSourceInit": {
                "property1": null,
                "property2": null
              },
              "reconnectionOptions": {},
              "requestInit": {
                "property1": null,
                "property2": null
              },
              "sessionId": "string",
              "type": "streamable_http"
            }
          },
          "type": "mcp"
        },
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "resource_789",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "capabilities": "string",
        "config": {
          "mcp": {
            "activeTools": [
              "string"
            ],
            "prompt": "string",
            "server": {
              "url": "http://example.com"
            },
            "toolOverrides": {
              "property1": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              },
              "property2": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              }
            },
            "transport": {
              "eventSourceInit": {
                "property1": null,
                "property2": null
              },
              "reconnectionOptions": {},
              "requestInit": {
                "property1": null,
                "property2": null
              },
              "sessionId": "string",
              "type": "streamable_http"
            }
          },
          "type": "mcp"
        },
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "resource_789",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "triggers": {
      "property1": {
        "authentication": {
          "headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        },
        "createdAt": "string",
        "description": "string",
        "enabled": true,
        "id": "resource_789",
        "inputSchema": {
          "property1": null,
          "property2": null
        },
        "messageTemplate": "string",
        "name": "string",
        "outputTransform": {
          "jmespath": "string",
          "objectTransformation": {
            "property1": "string",
            "property2": "string"
          }
        },
        "signatureVerification": {
          "algorithm": "sha256",
          "componentJoin": {
            "separator": "string",
            "strategy": "concatenate"
          },
          "encoding": "hex",
          "signature": {
            "key": "string",
            "prefix": "string",
            "regex": "string",
            "source": "header"
          },
          "signedComponents": [
            {
              "key": "string",
              "regex": "string",
              "required": true,
              "source": "header",
              "value": "string"
            }
          ],
          "validation": {
            "allowEmptyBody": true,
            "headerCaseSensitive": false,
            "normalizeUnicode": false
          }
        },
        "signingSecretCredentialReferenceId": "string",
        "updatedAt": "string"
      },
      "property2": {
        "authentication": {
          "headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        },
        "createdAt": "string",
        "description": "string",
        "enabled": true,
        "id": "resource_789",
        "inputSchema": {
          "property1": null,
          "property2": null
        },
        "messageTemplate": "string",
        "name": "string",
        "outputTransform": {
          "jmespath": "string",
          "objectTransformation": {
            "property1": "string",
            "property2": "string"
          }
        },
        "signatureVerification": {
          "algorithm": "sha256",
          "componentJoin": {
            "separator": "string",
            "strategy": "concatenate"
          },
          "encoding": "hex",
          "signature": {
            "key": "string",
            "prefix": "string",
            "regex": "string",
            "source": "header"
          },
          "signedComponents": [
            {
              "key": "string",
              "regex": "string",
              "required": true,
              "source": "header",
              "value": "string"
            }
          ],
          "validation": {
            "allowEmptyBody": true,
            "headerCaseSensitive": false,
            "normalizeUnicode": false
          }
        },
        "signingSecretCredentialReferenceId": "string",
        "updatedAt": "string"
      }
    }
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

List Agents

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

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

Query Parameters

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

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents"
{
  "data": [
    {
      "contextConfigId": "string",
      "createdAt": "string",
      "defaultSubAgentId": "string",
      "description": "string",
      "id": "string",
      "models": "string",
      "name": "string",
      "prompt": "string",
      "statusUpdates": "string",
      "stopWhen": "string",
      "updatedAt": "string"
    }
  ],
  "pagination": {
    "limit": 10,
    "page": 1,
    "pages": 0,
    "total": 0
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Create Agent

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

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

Request Body

application/json

contextConfigId?string
Lengthlength <= 256
createdAt?string
defaultSubAgentId?string

ID of the default sub-agent that handles initial user messages. Required at runtime but nullable on creation to avoid circular FK dependency. Workflow: 1) POST Agent (without defaultSubAgentId), 2) POST SubAgent, 3) PATCH Agent with defaultSubAgentId.

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

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255
models?|||||array<>|
name*string

Agent name

Length1 <= length
prompt?string
statusUpdates?|||||array<>|
stopWhen?|||||array<>|
updatedAt?string

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents" \  -H "Content-Type: application/json" \  -d '{    "id": "resource_789",    "name": "string"  }'
{
  "data": {
    "contextConfigId": "string",
    "createdAt": "string",
    "defaultSubAgentId": "string",
    "description": "string",
    "id": "string",
    "models": "string",
    "name": "string",
    "prompt": "string",
    "statusUpdates": "string",
    "stopWhen": "string",
    "updatedAt": "string"
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Full Agent Definition

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/full

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/full"
{
  "data": {
    "contextConfigId": "string",
    "createdAt": "string",
    "defaultSubAgentId": "my-default-subagent",
    "description": "string",
    "id": "resource_789",
    "models": {
      "base": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      },
      "structuredOutput": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      },
      "summarizer": {
        "model": "string",
        "providerOptions": {
          "property1": null,
          "property2": null
        }
      }
    },
    "name": "string",
    "prompt": "string",
    "statusUpdates": {
      "enabled": true,
      "numEvents": 1,
      "prompt": "string",
      "statusComponents": [
        {
          "description": "string",
          "detailsSchema": {
            "properties": {
              "property1": null,
              "property2": null
            },
            "required": [
              "string"
            ],
            "type": "object"
          },
          "type": "string"
        }
      ],
      "timeInSeconds": 1
    },
    "stopWhen": {
      "transferCountIs": 1
    },
    "updatedAt": "string",
    "contextConfig": {
      "contextVariables": {},
      "headersSchema": {},
      "id": "resource_789"
    },
    "externalAgents": {
      "property1": {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "functionTools": {
      "property1": {
        "createdAt": "string",
        "description": "string",
        "functionId": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "createdAt": "string",
        "description": "string",
        "functionId": "string",
        "id": "resource_789",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "functions": {
      "property1": {
        "createdAt": "string",
        "dependencies": "string",
        "executeCode": "string",
        "id": "resource_789",
        "inputSchema": "string",
        "updatedAt": "string"
      },
      "property2": {
        "createdAt": "string",
        "dependencies": "string",
        "executeCode": "string",
        "id": "resource_789",
        "inputSchema": "string",
        "updatedAt": "string"
      }
    },
    "subAgents": {
      "property1": {
        "conversationHistoryConfig": "string",
        "createdAt": "string",
        "description": "string",
        "id": "resource_789",
        "models": {
          "base": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "structuredOutput": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "summarizer": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          }
        },
        "name": "string",
        "prompt": "string",
        "stopWhen": "string",
        "updatedAt": "string",
        "artifactComponents": [
          "string"
        ],
        "canDelegateTo": [
          "string"
        ],
        "canTransferTo": [
          "string"
        ],
        "canUse": [
          {
            "agentToolRelationId": "string",
            "headers": {
              "property1": "string",
              "property2": "string"
            },
            "toolId": "string",
            "toolPolicies": {
              "property1": {
                "needsApproval": true
              },
              "property2": {
                "needsApproval": true
              }
            },
            "toolSelection": [
              "string"
            ]
          }
        ],
        "dataComponents": [
          "string"
        ],
        "type": "internal"
      },
      "property2": {
        "conversationHistoryConfig": "string",
        "createdAt": "string",
        "description": "string",
        "id": "resource_789",
        "models": {
          "base": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "structuredOutput": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          },
          "summarizer": {
            "model": "string",
            "providerOptions": {
              "property1": null,
              "property2": null
            }
          }
        },
        "name": "string",
        "prompt": "string",
        "stopWhen": "string",
        "updatedAt": "string",
        "artifactComponents": [
          "string"
        ],
        "canDelegateTo": [
          "string"
        ],
        "canTransferTo": [
          "string"
        ],
        "canUse": [
          {
            "agentToolRelationId": "string",
            "headers": {
              "property1": "string",
              "property2": "string"
            },
            "toolId": "string",
            "toolPolicies": {
              "property1": {
                "needsApproval": true
              },
              "property2": {
                "needsApproval": true
              }
            },
            "toolSelection": [
              "string"
            ]
          }
        ],
        "dataComponents": [
          "string"
        ],
        "type": "internal"
      }
    },
    "teamAgents": {
      "property1": {
        "description": "string",
        "id": "string",
        "name": "string"
      },
      "property2": {
        "description": "string",
        "id": "string",
        "name": "string"
      }
    },
    "tools": {
      "property1": {
        "capabilities": "string",
        "config": {
          "mcp": {
            "activeTools": [
              "string"
            ],
            "prompt": "string",
            "server": {
              "url": "http://example.com"
            },
            "toolOverrides": {
              "property1": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              },
              "property2": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              }
            },
            "transport": {
              "eventSourceInit": {
                "property1": null,
                "property2": null
              },
              "reconnectionOptions": {},
              "requestInit": {
                "property1": null,
                "property2": null
              },
              "sessionId": "string",
              "type": "streamable_http"
            }
          },
          "type": "mcp"
        },
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "resource_789",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "updatedAt": "string"
      },
      "property2": {
        "capabilities": "string",
        "config": {
          "mcp": {
            "activeTools": [
              "string"
            ],
            "prompt": "string",
            "server": {
              "url": "http://example.com"
            },
            "toolOverrides": {
              "property1": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              },
              "property2": {
                "description": "string",
                "displayName": "string",
                "schema": null,
                "transformation": "string"
              }
            },
            "transport": {
              "eventSourceInit": {
                "property1": null,
                "property2": null
              },
              "reconnectionOptions": {},
              "requestInit": {
                "property1": null,
                "property2": null
              },
              "sessionId": "string",
              "type": "streamable_http"
            }
          },
          "type": "mcp"
        },
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "resource_789",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "updatedAt": "string"
      }
    },
    "triggers": {
      "property1": {
        "authentication": {
          "headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        },
        "createdAt": "string",
        "description": "string",
        "enabled": true,
        "id": "resource_789",
        "inputSchema": {
          "property1": null,
          "property2": null
        },
        "messageTemplate": "string",
        "name": "string",
        "outputTransform": {
          "jmespath": "string",
          "objectTransformation": {
            "property1": "string",
            "property2": "string"
          }
        },
        "signatureVerification": {
          "algorithm": "sha256",
          "componentJoin": {
            "separator": "string",
            "strategy": "concatenate"
          },
          "encoding": "hex",
          "signature": {
            "key": "string",
            "prefix": "string",
            "regex": "string",
            "source": "header"
          },
          "signedComponents": [
            {
              "key": "string",
              "regex": "string",
              "required": true,
              "source": "header",
              "value": "string"
            }
          ],
          "validation": {
            "allowEmptyBody": true,
            "headerCaseSensitive": false,
            "normalizeUnicode": false
          }
        },
        "signingSecretCredentialReferenceId": "string",
        "updatedAt": "string"
      },
      "property2": {
        "authentication": {
          "headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        },
        "createdAt": "string",
        "description": "string",
        "enabled": true,
        "id": "resource_789",
        "inputSchema": {
          "property1": null,
          "property2": null
        },
        "messageTemplate": "string",
        "name": "string",
        "outputTransform": {
          "jmespath": "string",
          "objectTransformation": {
            "property1": "string",
            "property2": "string"
          }
        },
        "signatureVerification": {
          "algorithm": "sha256",
          "componentJoin": {
            "separator": "string",
            "strategy": "concatenate"
          },
          "encoding": "hex",
          "signature": {
            "key": "string",
            "prefix": "string",
            "regex": "string",
            "source": "header"
          },
          "signedComponents": [
            {
              "key": "string",
              "regex": "string",
              "required": true,
              "source": "header",
              "value": "string"
            }
          ],
          "validation": {
            "allowEmptyBody": true,
            "headerCaseSensitive": false,
            "normalizeUnicode": false
          }
        },
        "signingSecretCredentialReferenceId": "string",
        "updatedAt": "string"
      }
    }
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Associate Artifact Component with Agent

POST
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agent-artifact-components

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

Request Body

application/json

agentId*string
Lengthlength <= 256
artifactComponentId*string

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255
subAgentId*string

Resource identifier

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

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/json

application/problem+json

application/problem+json

curl -X POST "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agent-artifact-components" \  -H "Content-Type: application/json" \  -d '{    "agentId": "string",    "artifactComponentId": "resource_789",    "subAgentId": "resource_789"  }'
{
  "data": {
    "artifactComponentId": "string",
    "createdAt": "string",
    "id": "string",
    "subAgentId": "string"
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "details": null,
  "error": "string",
  "message": "string"
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Artifact Components for Agent

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agent-artifact-components/agent/{subAgentId}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

subAgentId*string

Sub-agent identifier

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agent-artifact-components/agent/sub_agent_123"
{
  "data": [
    {
      "createdAt": "string",
      "description": "string",
      "id": "string",
      "name": "string",
      "props": "string",
      "render": "string",
      "updatedAt": "string"
    }
  ]
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Remove Artifact Component from Agent

DELETE
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agent-artifact-components/agent/{subAgentId}/component/{artifactComponentId}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

subAgentId*string

Sub-agent identifier

artifactComponentId*string

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X DELETE "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agent-artifact-components/agent/sub_agent_123/component/string"
{
  "message": "string",
  "removed": true
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Check if Artifact Component is Associated with Agent

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agent-artifact-components/agent/{subAgentId}/component/{artifactComponentId}/exists

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

subAgentId*string

Sub-agent identifier

artifactComponentId*string

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agent-artifact-components/agent/sub_agent_123/component/string/exists"
{
  "exists": true
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Agents Using Artifact Component

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agent-artifact-components/component/{artifactComponentId}/agents

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

artifactComponentId*string

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agent-artifact-components/component/string/agents"
{
  "data": [
    {
      "createdAt": "string",
      "subAgentId": "string"
    }
  ]
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Associate Data Component with Agent

POST
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agent-data-components

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

Request Body

application/json

agentId*string
Lengthlength <= 256
dataComponentId*string
Lengthlength <= 256
subAgentId*string
Lengthlength <= 256

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/json

application/problem+json

application/problem+json

curl -X POST "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agent-data-components" \  -H "Content-Type: application/json" \  -d '{    "agentId": "string",    "dataComponentId": "string",    "subAgentId": "string"  }'
{
  "data": {
    "createdAt": "string",
    "dataComponentId": "string",
    "id": "string",
    "subAgentId": "string"
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "details": null,
  "error": "string",
  "message": "string"
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Data Components for Agent

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agent-data-components/agent/{subAgentId}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

subAgentId*string

Sub-agent identifier

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agent-data-components/agent/sub_agent_123"
{
  "data": [
    {
      "createdAt": "string",
      "description": "string",
      "id": "string",
      "name": "string",
      "props": "string",
      "render": "string",
      "updatedAt": "string"
    }
  ]
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Remove Data Component from Agent

DELETE
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agent-data-components/agent/{subAgentId}/component/{dataComponentId}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

subAgentId*string

Sub-agent identifier

dataComponentId*string

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X DELETE "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agent-data-components/agent/sub_agent_123/component/string"
{
  "message": "string",
  "removed": true
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Check if Data Component is Associated with Agent

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agent-data-components/agent/{subAgentId}/component/{dataComponentId}/exists

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

subAgentId*string

Sub-agent identifier

dataComponentId*string

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agent-data-components/agent/sub_agent_123/component/string/exists"
{
  "exists": true
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Agents Using Data Component

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agent-data-components/component/{dataComponentId}/agents

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

dataComponentId*string

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agent-data-components/component/string/agents"
{
  "data": [
    {
      "createdAt": "string",
      "subAgentId": "string"
    }
  ]
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}
GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/sub-agents/{subAgentId}/related

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

subAgentId*string

Sub-agent identifier

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/agent_789/sub-agents/sub_agent_123/related"
{
  "data": [
    {
      "description": "string",
      "id": "string",
      "name": "string"
    }
  ],
  "pagination": {
    "limit": 10,
    "page": 1,
    "pages": 0,
    "total": 0
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Get Agent

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

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

id*string

Resource identifier

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

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/resource_789"
{
  "data": {
    "contextConfigId": "string",
    "createdAt": "string",
    "defaultSubAgentId": "string",
    "description": "string",
    "id": "string",
    "models": "string",
    "name": "string",
    "prompt": "string",
    "statusUpdates": "string",
    "stopWhen": "string",
    "updatedAt": "string"
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}

Delete Agent

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

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

id*string

Resource identifier

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

Response Body

application/json

curl -X DELETE "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/resource_789"
Empty
{
  "details": null,
  "error": "string",
  "message": "string"
}

Update Agent

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

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.

In: cookie

Path Parameters

tenantId*string

Tenant identifier

projectId*string

Project identifier

id*string

Resource identifier

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

Request Body

application/json

contextConfigId?string
Lengthlength <= 256
createdAt?string
defaultSubAgentId?string

ID of the default sub-agent that handles initial user messages. Required at runtime but nullable on creation to avoid circular FK dependency. Workflow: 1) POST Agent (without defaultSubAgentId), 2) POST SubAgent, 3) PATCH Agent with defaultSubAgentId.

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

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255
models?|||||array<>|
name?string

Agent name

Length1 <= length
prompt?string
statusUpdates?|||||array<>|
stopWhen?|||||array<>|
updatedAt?string

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X PUT "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project_456/agents/resource_789" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "contextConfigId": "string",
    "createdAt": "string",
    "defaultSubAgentId": "string",
    "description": "string",
    "id": "string",
    "models": "string",
    "name": "string",
    "prompt": "string",
    "statusUpdates": "string",
    "stopWhen": "string",
    "updatedAt": "string"
  }
}
{
  "code": "bad_request",
  "detail": "Bad Request",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 400,
  "title": "Bad Request",
  "error": {
    "code": "bad_request",
    "message": "Bad Request"
  }
}
{
  "code": "unauthorized",
  "detail": "Unauthorized",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 401,
  "title": "Unauthorized",
  "error": {
    "code": "unauthorized",
    "message": "Unauthorized"
  }
}
{
  "code": "forbidden",
  "detail": "Forbidden",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 403,
  "title": "Forbidden",
  "error": {
    "code": "forbidden",
    "message": "Forbidden"
  }
}
{
  "code": "not_found",
  "detail": "Not Found",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 404,
  "title": "Not Found",
  "error": {
    "code": "not_found",
    "message": "Not Found"
  }
}
{
  "code": "unprocessable_entity",
  "detail": "Unprocessable Entity",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 422,
  "title": "Unprocessable Entity",
  "error": {
    "code": "unprocessable_entity",
    "message": "Unprocessable Entity"
  }
}
{
  "code": "internal_server_error",
  "detail": "Internal Server Error",
  "instance": "/conversations/123",
  "requestId": "req_1234567890",
  "status": 500,
  "title": "Internal Server Error",
  "error": {
    "code": "internal_server_error",
    "message": "Internal Server Error"
  }
}