API reference

KYE Protocol™ Core API — v3 Entity Hierarchy + Relationships

46 operations · core.openapi.yaml

Servers
https://api.kyeprotocol.com
Version
3.0.0
Source
core.openapi.yaml

CRUD endpoints for the v3 KYE™ entity hierarchy (Tenant → Workspace → Principal, Team, Project, Resource, Policy, Legal Entity, Billing Account, Domain, Model, Tool, External App, Audit Stream) and the five typed relationship tables (member-of, acts-in, applies-to, granted-access-to, uses).

Base path: /api/v1/

tenants

GET/api/v1/tenantsList tenants

Auth: bearerAuth

Parameters

nameintypedescription
envquerystring
statequerystring

Responses

  • 200 List of tenants
POST/api/v1/tenantsCreate a tenant

Auth: bearerAuth

Request body (required)

fieldtypedescription
slug requiredstring
name requiredstring
env requiredstringOne of prod, sandbox, test
regionstring
owner_emailstring
sla_tierstring

Responses

  • 201 Created
GET/api/v1/tenants/{tenant_id}Get a tenant

Auth: bearerAuth

Parameters

nameintypedescription
tenant_id requiredpathstring

Responses

  • 200 Tenant
  • 404 Not found
PUT/api/v1/tenants/{tenant_id}Update tenant metadata

Auth: bearerAuth

Parameters

nameintypedescription
tenant_id requiredpathstring

Request body (required)

fieldtypedescription
namestring
statestring
notesstring

Responses

  • 200 Updated
DELETE/api/v1/tenants/{tenant_id}Delete (soft-delete) a tenant

Auth: bearerAuth

Parameters

nameintypedescription
tenant_id requiredpathstring

Responses

  • 204 Deleted

workspaces

GET/api/v1/workspacesList workspaces

Auth: bearerAuth

Parameters

nameintypedescription
tenant_idquerystring
envquerystring
statequerystring

Responses

  • 200 List of workspaces
POST/api/v1/workspacesCreate a workspace

Auth: bearerAuth

Request body (required)

fieldtypedescription
schema_versionstring
id requiredstring
tenant_id requiredstring
slug requiredstring
name requiredstring
env requiredstringOne of prod, sandbox, test, dev
region requiredstring
kindstring
data_residencystring,null
policy_idstring,null
state requiredstringOne of provisioning, active, archived, deleted
created_by requiredstring
created_at requiredstring
deleted_atstring,null

Responses

  • 201 Created
GET/api/v1/workspaces/{workspace_id}Get a workspace

Auth: bearerAuth

Parameters

nameintypedescription
workspace_id requiredpathstring

Responses

  • 200 Workspace
  • 404 Not found
PUT/api/v1/workspaces/{workspace_id}Update workspace

Auth: bearerAuth

Parameters

nameintypedescription
workspace_id requiredpathstring

Request body (required)

fieldtypedescription
schema_versionstring
id requiredstring
tenant_id requiredstring
slug requiredstring
name requiredstring
env requiredstringOne of prod, sandbox, test, dev
region requiredstring
kindstring
data_residencystring,null
policy_idstring,null
state requiredstringOne of provisioning, active, archived, deleted
created_by requiredstring
created_at requiredstring
deleted_atstring,null

Responses

  • 200 Updated
DELETE/api/v1/workspaces/{workspace_id}Delete workspace

Auth: bearerAuth

Parameters

nameintypedescription
workspace_id requiredpathstring

Responses

  • 204 Deleted

principals

GET/api/v1/principalsList principals

Auth: bearerAuth

Parameters

nameintypedescription
tenant_idquerystring
principal_classquerystring
statequerystring

Responses

  • 200 List of principals
POST/api/v1/principalsCreate a principal

Auth: bearerAuth

Request body (required)

fieldtypedescription
schema_versionstring
id requiredstring
tenant_id requiredstring
workspace_idstring,null
principal_class requiredstringOne of human, system, agent, external_app
subclassstring
display_name requiredstring
state requiredstringOne of pending, active, suspended, revoked, deleted
humanobject,null
systemobject,null
agentobject,null
external_appobject,null
created_at requiredstring
updated_atstring,null
deleted_atstring,null

Responses

  • 201 Created
POST/api/v1/principals/inviteInvite a human principal by email

Auth: bearerAuth

Request body (required)

fieldtypedescription
tenant_id requiredstring
principal_class requiredstringOne of human
display_name requiredstring
statestring
humanobject
invite requiredobject

Responses

  • 201 Invited
GET/api/v1/principals/{principal_id}Get a principal

Auth: bearerAuth

Parameters

nameintypedescription
principal_id requiredpathstring

Responses

  • 200 Principal
  • 404 Not found
PUT/api/v1/principals/{principal_id}Update a principal

Auth: bearerAuth

Parameters

nameintypedescription
principal_id requiredpathstring

Request body (required)

fieldtypedescription
schema_versionstring
id requiredstring
tenant_id requiredstring
workspace_idstring,null
principal_class requiredstringOne of human, system, agent, external_app
subclassstring
display_name requiredstring
state requiredstringOne of pending, active, suspended, revoked, deleted
humanobject,null
systemobject,null
agentobject,null
external_appobject,null
created_at requiredstring
updated_atstring,null
deleted_atstring,null

Responses

  • 200 Updated
DELETE/api/v1/principals/{principal_id}Delete a principal

Auth: bearerAuth

Parameters

nameintypedescription
principal_id requiredpathstring

Responses

  • 204 Deleted

teams

GET/api/v1/teamsList teams

Auth: bearerAuth

Parameters

nameintypedescription
tenant_idquerystring

Responses

  • 200 Teams
POST/api/v1/teamsCreate a team

Auth: bearerAuth

Request body (required)

fieldtypedescription
schema_versionstring
id requiredstring
tenant_id requiredstring
workspace_idstring,null
slug requiredstring
name requiredstring
statestring
created_bystring
created_at requiredstring

Responses

  • 201 Created
GET/api/v1/teams/{team_id}Get a team

Auth: bearerAuth

Parameters

nameintypedescription
team_id requiredpathstring

Responses

  • 200 Team
PUT/api/v1/teams/{team_id}Update a team

Auth: bearerAuth

Parameters

nameintypedescription
team_id requiredpathstring

Request body (required)

fieldtypedescription
schema_versionstring
id requiredstring
tenant_id requiredstring
workspace_idstring,null
slug requiredstring
name requiredstring
statestring
created_bystring
created_at requiredstring

Responses

  • 200 Updated
DELETE/api/v1/teams/{team_id}Delete a team

Auth: bearerAuth

Parameters

nameintypedescription
team_id requiredpathstring

Responses

  • 204 Deleted

projects

GET/api/v1/projectsList projects

Auth: bearerAuth

Parameters

nameintypedescription
workspace_idquerystring

Responses

  • 200 Projects
POST/api/v1/projectsCreate a project

Auth: bearerAuth

Request body (required)

fieldtypedescription
schema_versionstring
id requiredstring
tenant_id requiredstring
workspace_id requiredstring
slug requiredstring
name requiredstring
statestring
created_bystring
created_at requiredstring

Responses

  • 201 Created
GET/api/v1/projects/{project_id}Get a project

Auth: bearerAuth

Parameters

nameintypedescription
project_id requiredpathstring

Responses

  • 200 Project
PUT/api/v1/projects/{project_id}Update a project

Auth: bearerAuth

Parameters

nameintypedescription
project_id requiredpathstring

Request body (required)

fieldtypedescription
schema_versionstring
id requiredstring
tenant_id requiredstring
workspace_id requiredstring
slug requiredstring
name requiredstring
statestring
created_bystring
created_at requiredstring

Responses

  • 200 Updated
DELETE/api/v1/projects/{project_id}Delete a project

Auth: bearerAuth

Parameters

nameintypedescription
project_id requiredpathstring

Responses

  • 204 Deleted

resources

GET/api/v1/resourcesList resources

Auth: bearerAuth

Parameters

nameintypedescription
workspace_idquerystring
tenant_idquerystring

Responses

  • 200 Resources
POST/api/v1/resourcesCreate a resource

Auth: bearerAuth

Request body (required)

fieldtypedescription
schema_versionstring
id requiredstring
tenant_id requiredstring
workspace_idstring,null
name requiredstring
resource_typestring
statestring
created_bystring
created_at requiredstring

Responses

  • 201 Created
GET/api/v1/resources/{resource_id}Get a resource

Auth: bearerAuth

Parameters

nameintypedescription
resource_id requiredpathstring

Responses

  • 200 Resource
PUT/api/v1/resources/{resource_id}Update a resource

Auth: bearerAuth

Parameters

nameintypedescription
resource_id requiredpathstring

Request body (required)

fieldtypedescription
schema_versionstring
id requiredstring
tenant_id requiredstring
workspace_idstring,null
name requiredstring
resource_typestring
statestring
created_bystring
created_at requiredstring

Responses

  • 200 Updated
DELETE/api/v1/resources/{resource_id}Delete a resource

Auth: bearerAuth

Parameters

nameintypedescription
resource_id requiredpathstring

Responses

  • 204 Deleted

relationships

GET/api/v1/relationships/member-ofList principal-team membership rows

Auth: bearerAuth

Parameters

nameintypedescription
principal_idquerystring
team_idquerystring

Responses

  • 200 Member-of rows
POST/api/v1/relationships/member-ofAdd principal to team

Auth: bearerAuth

Request body (required)

fieldtypedescription
schema_versionstring
principal_id requiredstring
team_id requiredstring
role requiredstringOne of owner, admin, member, approver, viewer, auditor
joined_at requiredstring
left_atstring,null

Responses

  • 201 Created
DELETE/api/v1/relationships/member-of/{id}Remove principal from team

Auth: bearerAuth

Parameters

nameintypedescription
id requiredpathstring

Responses

  • 204 Deleted
GET/api/v1/relationships/acts-inList principal-workspace binding rows

Auth: bearerAuth

Parameters

nameintypedescription
principal_idquerystring
workspace_idquerystring

Responses

  • 200 Acts-in rows
POST/api/v1/relationships/acts-inGrant principal workspace access

Auth: bearerAuth

Request body (required)

fieldtypedescription
schema_versionstring
principal_id requiredstring
workspace_id requiredstring
since requiredstring
untilstring,null
allowed_actionsarray

Responses

  • 201 Created
DELETE/api/v1/relationships/acts-in/{id}Revoke principal workspace access

Auth: bearerAuth

Parameters

nameintypedescription
id requiredpathstring

Responses

  • 204 Deleted
GET/api/v1/relationships/applies-toList policy-target binding rows

Auth: bearerAuth

Parameters

nameintypedescription
policy_idquerystring
target_idquerystring

Responses

  • 200 Applies-to rows
POST/api/v1/relationships/applies-toBind a policy to a target

Auth: bearerAuth

Request body (required)

fieldtypedescription
schema_versionstring
policy_id requiredstring
target_class requiredstring
target_id requiredstring
effective_fromstring
effective_untilstring,null

Responses

  • 201 Created
DELETE/api/v1/relationships/applies-to/{id}Remove policy binding

Auth: bearerAuth

Parameters

nameintypedescription
id requiredpathstring

Responses

  • 204 Deleted
GET/api/v1/relationships/granted-access-toList resource access grant rows

Auth: bearerAuth

Parameters

nameintypedescription
grantee_idquerystring
resource_idquerystring

Responses

  • 200 Granted-access-to rows
POST/api/v1/relationships/granted-access-toGrant resource access

Auth: bearerAuth

Request body (required)

fieldtypedescription
schema_versionstring
grantee_id requiredstring
grantee_kind requiredstring
resource_id requiredstring
access_level requiredstringOne of read, write, admin, execute, owner
granted_by requiredstring
granted_at requiredstring
expires_atstring,null
revoked_atstring,null

Responses

  • 201 Created
DELETE/api/v1/relationships/granted-access-to/{id}Revoke resource access

Auth: bearerAuth

Parameters

nameintypedescription
id requiredpathstring

Responses

  • 204 Deleted
GET/api/v1/relationships/usesList agent-tool/model usage rows

Auth: bearerAuth

Parameters

nameintypedescription
agent_idquerystring
used_idquerystring

Responses

  • 200 Uses rows
POST/api/v1/relationships/usesBind an agent to a tool or model

Auth: bearerAuth

Request body (required)

fieldtypedescription
schema_versionstring
agent_id requiredstring
used_id requiredstring
usage_kind requiredstring
allowed requiredboolean
sincestring
untilstring,null

Responses

  • 201 Created
DELETE/api/v1/relationships/uses/{id}Remove agent-tool binding

Auth: bearerAuth

Parameters

nameintypedescription
id requiredpathstring

Responses

  • 204 Deleted