Skip to main content
GET
/
v1
/
policies
curl -X GET "https://api.trusec.io/v1/policies" \
  -H "Authorization: Bearer trusec_sk_your_api_key"
{
  "data": [
    {
      "id": "pol_abc123",
      "name": "admin-full-access",
      "effect": "allow",
      "principals": ["role:admin"],
      "actions": ["*"],
      "resources": ["*"],
      "createdAt": "2024-01-10T10:00:00Z"
    }
  ],
  "pagination": {
    "hasMore": false
  }
}

List Policies

Retrieve all security policies.
limit
integer
default:"20"
Number of policies to return (1-100)
cursor
string
Pagination cursor
curl -X GET "https://api.trusec.io/v1/policies" \
  -H "Authorization: Bearer trusec_sk_your_api_key"
{
  "data": [
    {
      "id": "pol_abc123",
      "name": "admin-full-access",
      "effect": "allow",
      "principals": ["role:admin"],
      "actions": ["*"],
      "resources": ["*"],
      "createdAt": "2024-01-10T10:00:00Z"
    }
  ],
  "pagination": {
    "hasMore": false
  }
}

Get Policy

Retrieve a specific policy by ID.
id
string
required
The policy ID
curl -X GET "https://api.trusec.io/v1/policies/pol_abc123" \
  -H "Authorization: Bearer trusec_sk_your_api_key"
{
  "data": {
    "id": "pol_abc123",
    "name": "admin-full-access",
    "description": "Grants full access to administrators",
    "effect": "allow",
    "principals": ["role:admin"],
    "actions": ["*"],
    "resources": ["*"],
    "conditions": {},
    "createdAt": "2024-01-10T10:00:00Z",
    "updatedAt": "2024-01-15T12:00:00Z"
  }
}

Create Policy

Create a new security policy.
name
string
required
Unique policy name
description
string
Policy description
effect
string
required
Policy effect: allow or deny
principals
array
required
Array of principals (users, roles, or groups)
actions
array
required
Array of allowed/denied actions
resources
array
required
Array of resource patterns
conditions
object
Optional conditions object
curl -X POST "https://api.trusec.io/v1/policies" \
  -H "Authorization: Bearer trusec_sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "user-read-own-data",
    "effect": "allow",
    "principals": ["user:${self}"],
    "actions": ["read"],
    "resources": ["users/${self}/*"]
  }'
{
  "data": {
    "id": "pol_def456",
    "name": "user-read-own-data",
    "effect": "allow",
    "principals": ["user:${self}"],
    "actions": ["read"],
    "resources": ["users/${self}/*"],
    "createdAt": "2024-01-20T10:00:00Z"
  }
}

Update Policy

Update an existing policy.
id
string
required
The policy ID
name
string
Updated policy name
description
string
Updated description
conditions
object
Updated conditions
curl -X PATCH "https://api.trusec.io/v1/policies/pol_abc123" \
  -H "Authorization: Bearer trusec_sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "conditions": {
      "ip": {
        "allowlist": ["10.0.0.0/8"]
      }
    }
  }'
{
  "data": {
    "id": "pol_abc123",
    "name": "admin-full-access",
    "effect": "allow",
    "principals": ["role:admin"],
    "actions": ["*"],
    "resources": ["*"],
    "conditions": {
      "ip": {
        "allowlist": ["10.0.0.0/8"]
      }
    },
    "updatedAt": "2024-01-20T16:00:00Z"
  }
}

Delete Policy

Delete a security policy.
id
string
required
The policy ID
Deleting a policy immediately removes its access grants. Ensure this won’t break critical access.
curl -X DELETE "https://api.trusec.io/v1/policies/pol_abc123" \
  -H "Authorization: Bearer trusec_sk_your_api_key"

Simulate Policy

Test policy evaluation without making changes.
principal
string
required
The principal to test
action
string
required
The action to test
resource
string
required
The resource to test
context
object
Optional context (IP, time, etc.)
curl -X POST "https://api.trusec.io/v1/policies/simulate" \
  -H "Authorization: Bearer trusec_sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "principal": "user:user_123",
    "action": "delete",
    "resource": "documents/confidential/report.pdf",
    "context": {
      "ip": "192.168.1.100"
    }
  }'
{
  "data": {
    "allowed": false,
    "effect": "deny",
    "matchedPolicies": [
      {
        "id": "pol_xyz789",
        "name": "deny-confidential-delete",
        "effect": "deny"
      }
    ],
    "evaluationTimeMs": 2
  }
}