API Reference

Credentials

Copy page

Operations for managing credentials

List Credentials

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

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/credentials"
{
  "data": [
    {
      "createdAt": "string",
      "createdBy": "string",
      "credentialStoreId": "string",
      "externalAgents": [
        {
          "baseUrl": "string",
          "createdAt": "string",
          "credentialReferenceId": "string",
          "description": "string",
          "id": "string",
          "name": "string",
          "projectId": "string",
          "tenantId": "string",
          "updatedAt": "string"
        }
      ],
      "id": "string",
      "name": "string",
      "retrievalParams": "string",
      "toolId": "string",
      "tools": [
        {
          "capabilities": "string",
          "config": "string",
          "createdAt": "string",
          "credentialReferenceId": "string",
          "credentialScope": "string",
          "description": "string",
          "headers": "string",
          "id": "string",
          "imageUrl": "string",
          "lastError": "string",
          "name": "string",
          "projectId": "string",
          "tenantId": "string",
          "updatedAt": "string"
        }
      ],
      "type": "memory",
      "updatedAt": "string",
      "userId": "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 Credential

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

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

createdAt?string
createdBy?string
Lengthlength <= 256
credentialStoreId*string

Resource identifier

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

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255
name*string
Lengthlength <= 256
retrievalParams?
toolId?string
Lengthlength <= 256
type*string
Value in"memory" | "keychain" | "nango"
updatedAt?string
userId?string
Lengthlength <= 256

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/credentials" \  -H "Content-Type: application/json" \  -d '{    "credentialStoreId": "resource_789",    "id": "resource_789",    "name": "string",    "type": "memory"  }'
{
  "data": {
    "createdAt": "string",
    "createdBy": "string",
    "credentialStoreId": "string",
    "externalAgents": [
      {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "string",
        "name": "string",
        "projectId": "string",
        "tenantId": "string",
        "updatedAt": "string"
      }
    ],
    "id": "string",
    "name": "string",
    "retrievalParams": "string",
    "toolId": "string",
    "tools": [
      {
        "capabilities": "string",
        "config": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "string",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "projectId": "string",
        "tenantId": "string",
        "updatedAt": "string"
      }
    ],
    "type": "memory",
    "updatedAt": "string",
    "userId": "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 Credential

GET
/manage/tenants/{tenantId}/projects/{projectId}/credentials/{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/credentials/resource_789"
{
  "data": {
    "createdAt": "string",
    "createdBy": "string",
    "credentialStoreId": "string",
    "externalAgents": [
      {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "string",
        "name": "string",
        "projectId": "string",
        "tenantId": "string",
        "updatedAt": "string"
      }
    ],
    "id": "string",
    "name": "string",
    "retrievalParams": "string",
    "toolId": "string",
    "tools": [
      {
        "capabilities": "string",
        "config": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "string",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "projectId": "string",
        "tenantId": "string",
        "updatedAt": "string"
      }
    ],
    "type": "memory",
    "updatedAt": "string",
    "userId": "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 Credential

DELETE
/manage/tenants/{tenantId}/projects/{projectId}/credentials/{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/credentials/resource_789"
Empty
{
  "details": null,
  "error": "string",
  "message": "string"
}

Update Credential

PUT
/manage/tenants/{tenantId}/projects/{projectId}/credentials/{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

createdAt?string
createdBy?string
Lengthlength <= 256
credentialStoreId?string

Resource identifier

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

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255
name?string
Lengthlength <= 256
retrievalParams?
toolId?string
Lengthlength <= 256
type?string
Value in"memory" | "keychain" | "nango"
updatedAt?string
userId?string
Lengthlength <= 256

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/credentials/resource_789" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "createdAt": "string",
    "createdBy": "string",
    "credentialStoreId": "string",
    "externalAgents": [
      {
        "baseUrl": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "description": "string",
        "id": "string",
        "name": "string",
        "projectId": "string",
        "tenantId": "string",
        "updatedAt": "string"
      }
    ],
    "id": "string",
    "name": "string",
    "retrievalParams": "string",
    "toolId": "string",
    "tools": [
      {
        "capabilities": "string",
        "config": "string",
        "createdAt": "string",
        "credentialReferenceId": "string",
        "credentialScope": "string",
        "description": "string",
        "headers": "string",
        "id": "string",
        "imageUrl": "string",
        "lastError": "string",
        "name": "string",
        "projectId": "string",
        "tenantId": "string",
        "updatedAt": "string"
      }
    ],
    "type": "memory",
    "updatedAt": "string",
    "userId": "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"
  }
}