diff --git a/repeater/web/api_endpoints.py b/repeater/web/api_endpoints.py
index b7573ce..401f2c4 100644
--- a/repeater/web/api_endpoints.py
+++ b/repeater/web/api_endpoints.py
@@ -2651,6 +2651,9 @@ class APIEndpoints:
diff --git a/repeater/web/openapi.yaml b/repeater/web/openapi.yaml
index eef60f9..8b063c8 100644
--- a/repeater/web/openapi.yaml
+++ b/repeater/web/openapi.yaml
@@ -645,6 +645,133 @@ paths:
items:
$ref: '#/components/schemas/Identity'
+ /acl_info:
+ get:
+ tags: [ACL]
+ summary: Get ACL information
+ description: Get access control list information for identities
+ parameters:
+ - name: identity_hash
+ in: query
+ schema:
+ type: string
+ pattern: '^0x[0-9a-fA-F]{2}$'
+ description: Identity hash
+ example: "0x42"
+ - name: identity_name
+ in: query
+ schema:
+ type: string
+ description: Identity name
+ example: "General"
+ responses:
+ '200':
+ description: ACL information
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ success:
+ type: boolean
+ data:
+ type: object
+
+ /acl_clients:
+ get:
+ tags: [ACL]
+ summary: List ACL clients
+ description: Get list of clients in access control list
+ parameters:
+ - name: identity_hash
+ in: query
+ schema:
+ type: string
+ pattern: '^0x[0-9a-fA-F]{2}$'
+ description: Identity hash
+ example: "0x42"
+ - name: identity_name
+ in: query
+ schema:
+ type: string
+ description: Identity name
+ example: "General"
+ responses:
+ '200':
+ description: ACL clients list
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ success:
+ type: boolean
+ data:
+ type: object
+ properties:
+ clients:
+ type: array
+ items:
+ $ref: '#/components/schemas/ACLEntry'
+
+ /acl_remove_client:
+ post:
+ tags: [ACL]
+ summary: Remove client from ACL
+ description: Remove a client from the access control list
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required: [identity_hash, client_pubkey]
+ properties:
+ identity_hash:
+ type: string
+ pattern: '^0x[0-9a-fA-F]{2}$'
+ description: Identity hash
+ example: "0x42"
+ identity_name:
+ type: string
+ description: Identity name (alternative to hash)
+ example: "General"
+ client_pubkey:
+ type: string
+ pattern: '^[0-9a-fA-F]{64}$'
+ description: Client public key to remove
+ example: "abc123def456..."
+ responses:
+ '200':
+ description: Client removed from ACL
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SuccessResponse'
+
+ /acl_stats:
+ get:
+ tags: [ACL]
+ summary: Get ACL statistics
+ description: Get statistics about access control lists
+ responses:
+ '200':
+ description: ACL statistics
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ success:
+ type: boolean
+ data:
+ type: object
+ properties:
+ total_entries:
+ type: integer
+ by_identity:
+ type: object
+
/room_messages:
get:
tags: [Room Server]