Delete an API endpoint
Removes the endpoint together with every API permission that references it. The cascade is NOT atomic: RemoveAPIEndpoint opens Conn.Transaction(...) but discards the handle it is given and issues both deletes on the outer *gorm.DB, so a failure on the second leaves the grants deleted and the endpoint in place behind a 500 common.database_error. Neither this route nor the PUT on the same path invalidates the API-permission cache, which CanCallAPIv0 reads and which is written with a 24-hour TTL: an actor whose grants went with the endpoint keeps passing the check until that entry expires. The api-permission routes do invalidate.
Authorization
bearerAuth In: header
Path Parameters
API endpoint id
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/v1/rbac/endpoints/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"status": 200,
"message": "OK"
}{
"status": 400,
"code": "common.invalid_input",
"message": "Invalid input data",
"details": [
{
"field": "actor_id",
"rule": "required",
"param": "string",
"message": "actor_id is required"
}
],
"class": "validation",
"retryable": false
}{
"status": 400,
"code": "common.invalid_input",
"message": "Invalid input data",
"details": [
{
"field": "actor_id",
"rule": "required",
"param": "string",
"message": "actor_id is required"
}
],
"class": "validation",
"retryable": false
}{
"status": 400,
"code": "common.invalid_input",
"message": "Invalid input data",
"details": [
{
"field": "actor_id",
"rule": "required",
"param": "string",
"message": "actor_id is required"
}
],
"class": "validation",
"retryable": false
}{
"status": 400,
"code": "common.invalid_input",
"message": "Invalid input data",
"details": [
{
"field": "actor_id",
"rule": "required",
"param": "string",
"message": "actor_id is required"
}
],
"class": "validation",
"retryable": false
}{
"status": 429,
"message": "Global rate limit exceeded",
"code": "Global rate limit exceeded",
"class": "temporary",
"retryable": true
}{
"status": 400,
"code": "common.invalid_input",
"message": "Invalid input data",
"details": [
{
"field": "actor_id",
"rule": "required",
"param": "string",
"message": "actor_id is required"
}
],
"class": "validation",
"retryable": false
}{
"overall_status": "unhealthy",
"message": "Service is shutting down",
"timestamp": "2026-08-27T15:04:05Z"
}