The RegWatch API provides programmatic access to regulatory monitoring data, including compliance updates, sanctions lists, and policy changes. This REST API enables developers to integrate real-time regulatory intelligence into their applications, helping organizations maintain compliance and respond quickly to regulatory shifts.
Getting Started
Before making API calls, you'll need to register for an API key:
curl -X POST https://api.aaido.dev/signup \
-H "Content-Type: application/json" \
-d '{
"email": "developer@company.com",
"product": "regwatch"
}'
The signup endpoint returns your API credentials:
{
"api_key": "rw_live_abc123def456",
"status": "active",
"rate_limit": 1000,
"endpoints": ["regwatch"]
}
Basic API Usage
Retrieving Regulatory Updates
The primary endpoint fetches recent regulatory changes filtered by various parameters:
curl -X GET "https://api.aaido.dev/v1/products/regwatch?jurisdiction=US&type=sanctions&limit=10" \
-H "Authorization: Bearer rw_live_abc123def456" \
-H "Accept: application/json"
Response structure:
{
"data": [
{
"id": "reg_2024_001234",
"type": "sanctions",
"jurisdiction": "US",
"title": "OFAC Sanctions Update - Technology Sector",
"summary": "New sanctions targeting specific technology companies...",
"effective_date": "2024-01-15T00:00:00Z",
"published_date": "2024-01-10T14:30:00Z",
"source": "OFAC",
"severity": "high",
"entities": [
{
"name": "Example Tech Corp",
"type": "company",
"identifiers": ["12345678"]
}
],
"tags": ["technology", "export_controls", "national_security"]
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 45,
"has_more": true
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2024-01-10T15:45:30Z"
}
}
Query Parameters
The API supports several filtering parameters:
-
jurisdiction: Filter by regulatory jurisdiction (US, EU, UK, etc.) -
type: Regulation type (sanctions, compliance, policy, licensing) -
severity: Impact level (low, medium, high, critical) -
since: ISO 8601 timestamp for updates after specified date -
tags: Comma-separated list of regulatory tags -
limit: Results per page (1-100, default 20) -
page: Page number for pagination
Monitoring Specific Entities
Track regulatory changes affecting particular entities:
curl -X GET "https://api.aaido.dev/v1/products/regwatch/entities?name=Acme%20Corp&watch=true" \
-H "Authorization: Bearer rw_live_abc123def456"
This creates a watch for "Acme Corp" and returns any existing regulatory mentions:
{
"entity": {
"name": "Acme Corp",
"watching": true,
"watch_id": "watch_789xyz"
},
"recent_mentions": [
{
"regulation_id": "reg_2024_001100",
"context": "licensing_requirement",
"mention_type": "direct",
"relevance_score": 0.95
}
]
}
Practical Use Cases
Use Case 1: Compliance Dashboard
Build a real-time compliance monitoring dashboard by polling for high-severity updates:
# Get critical updates from the last 24 hours
curl -X GET "https://api.aaido.dev/v1/products/regwatch?severity=critical&since=2024-01-09T15:45:30Z" \
-H "Authorization: Bearer rw_live_abc123def456"
Parse the response to extract key information for dashboard widgets:
const criticalUpdates = response.data.filter(item =>
item.severity === 'critical' &&
new Date(item.effective_date) <= new Date(Date.now() + 30*24*60*60*1000) // 30 days
);
criticalUpdates.forEach(update => {
console.log(`Alert: ${update.title} (Effective: ${update.effective_date})`);
});
Use Case 2: Automated Sanctions Screening
Integrate sanctions list updates into your customer onboarding process:
# Check for recent sanctions updates
curl -X GET "https://api.aaido.dev/v1/products/regwatch?type=sanctions&jurisdiction=US,EU&since=2024-01-01T00:00:00Z" \
-H "Authorization: Bearer rw_live_abc123def456"
Process new sanctions entities for your screening database:
import requests
def update_sanctions_database(api_key):
response = requests.get(
'https://api.aaido.dev/v1/products/regwatch',
headers={'Authorization': f'Bearer {api_key}'},
params={'type': 'sanctions', 'since': get_last_update_timestamp()}
)
for update in response.json()['data']:
for entity in update.get('entities', []):
add_to_sanctions_list(entity['name'], entity['identifiers'])
log_sanctions_update(update['id'], entity['name'])
Use Case 3: Risk Assessment Integration
Monitor regulatory changes that might impact business operations:
# Track fintech-related regulations
curl -X GET "https://api.aaido.dev/v1/products/regwatch?tags=fintech,banking,payments&jurisdiction=US" \
-H "Authorization: Bearer rw_live_abc123def456"
CI/CD Integration Example
Integrate RegWatch into your deployment pipeline to catch compliance issues before production:
# .github/workflows/compliance-check.yml
name: Compliance Check
on:
pull_request:
branches: [main]
jobs:
regulatory_scan:
runs-on: ubuntu-latest
steps:
- name: Check Recent Regulatory Changes
run: |
RESPONSE=$(curl -s -X GET \
"https://api.aaido.dev/v1/products/regwatch?severity=high,critical&since=$(date -d '7 days ago' -Iseconds)" \
-H "Authorization: Bearer ${{ secrets.REGWATCH_API_KEY }}")
CRITICAL_COUNT=$(echo $RESPONSE | jq '.data | map(select(.severity == "critical")) | length')
if [ $CRITICAL_COUNT -gt 0 ]; then
echo "::warning::$CRITICAL_COUNT critical regulatory updates found in the last 7 days"
echo $RESPONSE | jq '.data[] | select(.severity == "critical") | .title'
fi
# Fail the build if any updates affect your specific business tags
RELEVANT=$(echo $RESPONSE | jq '.data | map(select(.tags[]? | contains("fintech"))) | length')
if [ $RELEVANT -gt 0 ]; then
echo "::error::Regulatory changes detected that may affect fintech operations"
exit 1
fi
- name: Update Compliance Documentation
if: success()
run: |
# Generate compliance report
curl -X GET "https://api.aaido.dev/v1/products/regwatch?format=summary&since=$(date -d '30 days ago' -Iseconds)" \
-H "Authorization: Bearer ${{ secrets.REGWATCH_API_KEY }}" \
> compliance-report.json
This pipeline checks for critical regulatory updates and fails the deployment if changes are detected that could impact your application's compliance posture.
Error Handling
The API returns standard HTTP status codes with detailed error messages:
{
"error": {
"code": "INVALID_JURISDICTION",
"message": "Jurisdiction 'XX' is not supported",
"supported_values": ["US", "EU", "UK", "CA", "AU"]
},
"request_id": "req_error_123"
}
Common status codes:
-
400: Bad Request (invalid parameters) -
401: Unauthorized (invalid API key) -
429: Rate Limit Exceeded -
500: Internal Server Error
Rate Limiting
The API enforces rate limits based on your subscription tier. Monitor the response headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1641811200
When approaching limits, implement exponential backoff in your applications to avoid service interruption.
The RegWatch API provides a robust foundation for building compliance-aware applications. By integrating regulatory monitoring into your development workflow, you can proactively address compliance requirements and reduce regulatory risk.
For complete API documentation and advanced features, visit https://api.aaido.dev/products/regwatch.
Top comments (0)