Skip to main content

Governance API

FieldValue
Document IDASCEND-API-004
Version2026.04
Last UpdatedApril 2026
AuthorAscend Engineering Team
PublisherOW-KAI Technologies Inc.
ClassificationEnterprise Client Documentation
ComplianceSOC 2 CC6.1/CC6.2, PCI-DSS 7.1/8.3, HIPAA 164.312, NIST 800-53 AC-2/SI-4

Reading Time: 8 minutes | Skill Level: Intermediate

Overview

The Governance API allows you to configure policies, smart rules, and approval workflows that control how AI agent actions are evaluated and processed.

note

Governance API endpoints that create or modify policies require admin-level API keys. Policy changes take effect immediately for all subsequent action evaluations.

Base URL

https://pilot.owkai.app/api/governance

Smart Rules

Create Smart Rule

POST /api/smart-rules
Authorization: Bearer <admin_jwt>
Content-Type: application/json
{
"name": "High-Value Trade Approval",
"description": "Require manager approval for trades over $50,000",
"is_active": true,
"priority": 100,
"conditions": {
"action_type": "trade_execution",
"parameters.amount": {"$gte": 50000}
},
"action": "REQUIRE_APPROVAL",
"approval_level": 3,
"notifications": {
"channels": ["slack-trading-alerts"],
"priority": "high"
}
}

Condition Operators

OperatorDescriptionExample
$eqEqual to{"risk_score": {"$eq": 50}}
$neNot equal{"status": {"$ne": "blocked"}}
$gtGreater than{"amount": {"$gt": 1000}}
$gteGreater than or equal{"risk_score": {"$gte": 80}}
$ltLess than{"quantity": {"$lt": 100}}
$lteLess than or equal{"score": {"$lte": 30}}
$inIn array{"action_type": {"$in": ["read", "write"]}}
$ninNot in array{"agent_type": {"$nin": ["sandbox"]}}
$containsString contains{"description": {"$contains": "PII"}}
$regexRegex match{"email": {"$regex": "@company.com$"}}

Rule Actions

ActionDescriptionHTTP Response
AUTO_APPROVEAutomatically approve200
REQUIRE_APPROVALQueue for human approval202
DENYAutomatically deny403
ESCALATEEscalate to higher level202
NOTIFYApprove but notify200

Response

{
"status": "success",
"data": {
"rule_id": "rule_123",
"name": "High-Value Trade Approval",
"is_active": true,
"created_at": "2025-12-15T10:00:00Z"
}
}

List Smart Rules

GET /api/smart-rules?is_active=true
Authorization: Bearer <jwt_token>
{
"status": "success",
"data": {
"rules": [
{
"rule_id": "rule_123",
"name": "High-Value Trade Approval",
"priority": 100,
"is_active": true,
"action": "REQUIRE_APPROVAL",
"match_count_30d": 45
}
],
"total": 12
}
}

Delete Smart Rule

DELETE /api/smart-rules/{rule_id}
Authorization: Bearer <admin_jwt>

Risk Configuration

Get Risk Configuration

GET /api/risk-scoring/config
Authorization: Bearer <admin_jwt>
{
"status": "success",
"data": {
"weights": {
"data_sensitivity": 0.30,
"operation_type": 0.25,
"financial_impact": 0.20,
"compliance": 0.15,
"historical": 0.10
},
"thresholds": {
"auto_approve_max": 30,
"require_approval_min": 31,
"auto_deny_min": 95
},
"modifiers": {
"pii_data": 40,
"financial_data": 35,
"health_data": 45,
"delete_operation": 30,
"external_api": 20
}
}
}

Create Risk Configuration

POST /api/risk-scoring/config
Authorization: Bearer <admin_jwt>
Content-Type: application/json
{
"weights": {
"data_sensitivity": 0.35,
"financial_impact": 0.25
},
"thresholds": {
"auto_approve_max": 25,
"auto_deny_min": 90
}
}

Activate Risk Configuration

PUT /api/risk-scoring/config/{config_id}/activate
Authorization: Bearer <admin_jwt>

Policy Templates

List Templates

GET /api/governance/policies/templates
Authorization: Bearer <jwt_token>
{
"status": "success",
"data": {
"templates": [
{
"template_id": "tpl_financial",
"name": "Financial Services",
"description": "Pre-configured rules for financial operations",
"rules_count": 15,
"categories": ["trading", "payments", "compliance"]
},
{
"template_id": "tpl_healthcare",
"name": "Healthcare",
"description": "HIPAA-compliant governance rules",
"rules_count": 20,
"categories": ["phi", "consent", "audit"]
}
]
}
}

Create Policy from Template

POST /api/governance/policies/from-template
Authorization: Bearer <admin_jwt>
Content-Type: application/json
{
"template_id": "tpl_financial",
"name": "Custom Financial Policy",
"description": "Customized financial services policy"
}

Pending Approvals

List Pending Approvals

GET /api/governance/dashboard/pending-approvals
Authorization: Bearer <jwt_token>
{
"status": "success",
"data": {
"pending": [
{
"action_id": "act_xyz789",
"agent_id": "trading-bot-001",
"action_type": "trade_execution",
"risk_score": 75,
"submitted_at": "2025-12-15T10:30:00Z",
"summary": "Execute $75,000 AAPL trade"
}
],
"total": 5
}
}

Approve Workflow Action

POST /api/governance/workflows/{workflow_execution_id}/approve
Authorization: Bearer <admin_jwt>
X-CSRF-Token: <csrf_token>
Content-Type: application/json
{
"decision": "approved",
"comment": "Approved after review"
}

Smart Rules Analytics

For rule performance analytics, use the Smart Rules analytics endpoint:

GET /api/smart-rules/analytics
Authorization: Bearer <jwt_token>

See the Smart Rules documentation for details on analytics responses.

Creating Smart Rules

SDK coverage

Smart rule creation is not exposed through the Python or Node SDK today. Create and update rules via the Dashboard (Governance → Smart Rules) or via the REST API below. SDK-side helpers are tracked as SDK-NAMESPACE-FEATURE for SDK 2.5.

Create a Rule (REST API)

curl -X POST "https://pilot.owkai.app/api/smart-rules" \
-H "Authorization: Bearer $ASCEND_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Block After Hours Trading",
"conditions": {
"action_type": "trade_execution",
"time_of_day": {"$gte": "18:00", "$lte": "06:00"}
},
"action": "DENY"
}'

Update Risk Thresholds (REST API)

curl -X PATCH "https://pilot.owkai.app/api/risk-config" \
-H "Authorization: Bearer $ASCEND_API_KEY" \
-H "Content-Type: application/json" \
-d '{"thresholds": {"auto_approve_max": 25}}'

Evaluate Actions Against Rules (SDK)

While rule creation is REST-only, rule evaluation happens automatically for every evaluate_action / evaluateAction call:

from ascend import AscendClient

client = AscendClient(api_key="owkai_...")
decision = client.evaluate_action(
action_type="trade_execution",
resource="trading_api",
parameters={"symbol": "AAPL", "shares": 100},
)
# Smart rules applied server-side; decision.reason cites any rule match.

Next Steps


Document Version: 2026.04 | Last Updated: April 2026