curl --request GET \
--url https://api.example.com/api/policies/{id}{
"id": "<string>",
"name": "<string>",
"type": "<string>",
"prebuilt_type": {},
"rules_count": 123,
"rules": [
{
"rule_id": "<string>",
"name": "<string>",
"type": "<string>",
"severity": {},
"threshold": {},
"time_window": {},
"conditions": {},
"policy_excerpt": "<string>",
"policy_section": {},
"is_active": true
}
],
"created_at": "<string>",
"updated_at": "<string>",
"dirty": true,
"error": "<string>",
"message": "<string>"
}Retrieve a policy with all its rules and dirty state indicator
curl --request GET \
--url https://api.example.com/api/policies/{id}{
"id": "<string>",
"name": "<string>",
"type": "<string>",
"prebuilt_type": {},
"rules_count": 123,
"rules": [
{
"rule_id": "<string>",
"name": "<string>",
"type": "<string>",
"severity": {},
"threshold": {},
"time_window": {},
"conditions": {},
"policy_excerpt": "<string>",
"policy_section": {},
"is_active": true
}
],
"created_at": "<string>",
"updated_at": "<string>",
"dirty": true,
"error": "<string>",
"message": "<string>"
}Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Basit-Ali0/Yggdrasil/llms.txt
Use this file to discover all available pages before exploring further.
dirty flag indicating whether the policy has been modified since the last completed scan.
401 UNAUTHORIZED if not authenticated.
curl -X GET https://yourdomain.com/api/policies/550e8400-e29b-41d4-a716-446655440000 \
-H "Cookie: session=your_session_token"
pdf or prebuiltaml, gdpr, or soc2structuring, retention, encryption)CRITICAL, HIGH, or MEDIUMtrue: Policy has been updated (rules added/removed/modified) since last scanfalse: Policy unchanged since last scan, or no scans exist yet{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "AML Compliance Policy",
"type": "prebuilt",
"prebuilt_type": "aml",
"rules_count": 2,
"rules": [
{
"rule_id": "STRUCTURING_PATTERN",
"name": "Transaction Structuring Detection",
"type": "structuring",
"severity": "CRITICAL",
"threshold": 10000,
"time_window": 24,
"conditions": {
"AND": [
{
"field": "amount",
"operator": "greater_than",
"value": 9000
},
{
"field": "amount",
"operator": "less_than",
"value": 10000
}
]
},
"policy_excerpt": "31 CFR § 1010.314 - Structured transactions to evade BSA reporting",
"policy_section": "31 CFR § 1010.314",
"is_active": true
},
{
"rule_id": "RAPID_MOVEMENT",
"name": "Rapid Fund Movement",
"type": "velocity",
"severity": "HIGH",
"threshold": null,
"time_window": 48,
"conditions": {
"AND": [
{
"field": "deposit_timestamp",
"operator": "exists",
"value": true
},
{
"field": "withdrawal_timestamp",
"operator": "exists",
"value": true
}
]
},
"policy_excerpt": "FinCEN Advisory FIN-2012-A001 - Rapid movement patterns",
"policy_section": "FinCEN Advisory FIN-2012-A001",
"is_active": false
}
],
"created_at": "2026-02-28T10:00:00Z",
"updated_at": "2026-02-28T10:30:00Z",
"dirty": true
}
{
"error": "NOT_FOUND",
"message": "Policy not found"
}
{
"error": "INTERNAL_ERROR",
"message": "An unexpected error occurred"
}
dirty flag helps track whether a policy needs to be rescanned:
policy.updated_at against the latest completed scan’s completed_at timestamptrue if the policy was modified after the last scanfalse if unchanged or if no scans exist yetcreated_at in ascending order (oldest first)threshold field is parsed as a float for numeric compatibility[] if no rules exist for the policy