← Back to Juri
API Overview
The Juri API provides programmatic access to our data jurisdiction risk assessment platform. Analyze IP addresses and domains to understand data sovereignty implications, applicable laws, regulatory agencies, and compliance risks.
Base URL: https://juri.host
API Version: v1
Response Format: JSON
HTTPS: Required for all requests
Key Features
- GLARS Scoring: Geo-Legal Access Risk Score assessment (see www.glars.io)
- Citation Links: Direct links to applicable legislation
- Agency Information: Regulatory departments with website links
- CDN Detection: Identify content delivery network usage
- Risk Assessment: Detailed scoring with explanations
- Bulk Processing: Analyze multiple addresses simultaneously
Authentication
Currently, the Juri API operates without authentication for public access. All endpoints are accessible via standard HTTPS requests.
Note: Rate limiting is in effect to ensure fair usage. See the
Rate Limits section for details.
Single Address Analysis
Analyze a single IP address or domain for data jurisdiction risk assessment.
Endpoint
GET
/analyze
Parameters
Parameter |
Type |
Required |
Description |
host |
string |
Required |
IP address or domain name to analyze |
Example Request
curl -X GET "https://juri.host/analyze?host=8.8.8.8"
Example Response
HTTP 200 OK
{
"host_country": {
"name": "United States",
"code": "US",
"flag": "https://flagcdn.com/w40/us.png"
},
"overall_risk_assessment": {
"risk_score": 50,
"risk_level": "Medium",
"base_score": 45
},
"glars_components": {
"judicial_oversight": 65,
"agency_powers": 75,
"technical_requirements": 40,
"extraterritoriality": 80,
"transparency": 55,
"embargo_impact": 0,
"sanction_severity": 10
},
"laws": [
{
"law_name": "CLOUD Act",
"citations": ["https://www.congress.gov/bill/115th-congress/house-bill/4943"]
}
],
"sanctions": [],
"embargoes": [],
"agencies": [
{
"name": "Federal Bureau of Investigation (FBI)",
"agency_name": "FBI",
"website_url": "https://www.fbi.gov"
}
],
"cdn_info": {
"is_detected": true,
"provider_name": "Google Cloud",
"company_domicile": "United States",
"company_domicile_code": "US"
}
}
Bulk Analysis
Analyze multiple IP addresses or domains in a single request for efficient batch processing.
Endpoint
POST
/analyze/bulk
Request Body
Field |
Type |
Required |
Description |
addresses |
array[string] |
Required |
Array of IP addresses or domain names (max 100) |
Example Request
curl -X POST "https://juri.host/analyze/bulk" \
-H "Content-Type: application/json" \
-d '{
"addresses": [
"8.8.8.8",
"github.com",
"1.1.1.1"
]
}'
Example Response
HTTP 200 OK
{
"total_submitted": 3,
"total_analyzed": 3,
"total_removed": 0,
"removal_message": "",
"removed_domains": [],
"results": [
{
"query": "8.8.8.8",
"ip": "8.8.8.8",
"host_country": {
"name": "United States",
"code": "US",
"flag": "https://flagcdn.com/w40/us.png"
},
"overall_risk_assessment": {
"risk_score": 50,
"risk_level": "Medium",
"base_score": 45
},
"laws": [...],
"agencies": [...],
"cdn_info": {...},
"glars_components": {...}
}
]
}
Export Endpoints
Export analysis results in various formats for integration with external systems.
JSON Export
GET
/export/json
curl -X GET "https://juri.host/export/json?host=example.com"
CSV Export
GET
/export/csv
curl -X GET "https://juri.host/export/csv?host=example.com" \
-o analysis_report.csv
Markdown Export
GET
/export/markdown
curl -X GET "https://juri.host/export/markdown?host=example.com" \
-o analysis_report.md
PDF Export
GET
/export/pdf
curl -X GET "https://juri.host/export/pdf?host=example.com" \
-o analysis_report.pdf
Error Handling
The API uses standard HTTP status codes and provides detailed error messages in JSON format.
Common HTTP Status Codes
Status Code |
Description |
Example Response |
200 |
Success |
Request completed successfully |
400 |
Bad Request |
{"error": "Missing 'host' query parameter"} |
429 |
Too Many Requests |
{"error": "Rate limit exceeded"} |
500 |
Internal Server Error |
{"error": "Internal server error occurred"} |
Error Response Format
{
"error": "Description of the error",
"code": "ERROR_CODE",
"timestamp": "2025-05-29T21:30:00Z"
}
Rate Limits
To ensure fair usage and system stability, the following rate limits are enforced:
Endpoint |
Rate Limit |
Time Window |
Single Analysis |
60 requests |
Per minute |
Bulk Analysis |
10 requests |
Per minute |
Export Endpoints |
30 requests |
Per minute |
Rate Limit Headers: All responses include X-RateLimit-Remaining
and X-RateLimit-Reset
headers to help you manage your usage.
Practical Examples
Usage examples to help you integrate with the Juri API.
Example 1: Security Assessment Pipeline
# Analyze multiple suspicious IPs
curl -X POST "https://juri.host/analyze/bulk" \
-H "Content-Type: application/json" \
-d '{
"addresses": [
"fsb.ru",
"1.2.3.4",
"suspicious-domain.com"
]
}' | jq '.results[] | select(.overall_risk_assessment.risk_level == "High")'
Example 2: Compliance Report Generation
# Generate compliance report
curl -X GET "https://juri.host/analyze?host=myapp.example.com" \
| jq '{
jurisdiction: .host_country.name,
risk_level: .overall_risk_assessment.risk_level,
applicable_laws: [.laws[].law_name],
agencies: [.agencies[].name],
glars_score: .overall_risk_assessment.risk_score
}'
Example 3: CDN Analysis
# Check if domains use CDN and assess jurisdiction risks
curl -X POST "https://juri.host/analyze/bulk" \
-H "Content-Type: application/json" \
-d '{
"addresses": [
"cdn1.example.com",
"cdn2.example.com",
"origin.example.com"
]
}' | jq '.results[] | {
domain: .query,
uses_cdn: .cdn_info.is_detected,
cdn_provider: .cdn_info.provider_name,
jurisdiction: .host_country.name,
risk: .overall_risk_assessment.risk_level
}'
Example 4: Automated Monitoring
#!/bin/bash
# Monitor infrastructure for jurisdiction changes
DOMAINS=("api.myapp.com" "cdn.myapp.com" "db.myapp.com")
WEBHOOK_URL="https://monitoring.example.com/webhook"
for domain in "${DOMAINS[@]}"; do
response=$(curl -s "https://juri.host/analyze?host=$domain")
risk_level=$(echo "$response" | jq -r '.overall_risk_assessment.risk_level')
if [ "$risk_level" = "High" ]; then
echo "HIGH RISK DETECTED: $domain"
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d "{\"alert\": \"High jurisdiction risk detected for $domain\"}"
fi
done
Example 5: Data Governance Dashboard
# Python example for dashboard integration
import requests
import json
def analyze_infrastructure(domains):
"""Analyze multiple domains and return risk summary"""
response = requests.post(
'https://juri.host/analyze/bulk',
headers={'Content-Type': 'application/json'},
json={'addresses': domains}
)
if response.status_code == 200:
data = response.json()
return {
'total_analyzed': data['total_analyzed'],
'high_risk_count': len([r for r in data['results']
if r['overall_risk_assessment']['risk_level'] == 'High']),
'jurisdictions': list(set([r['host_country']['name']
for r in data['results']])),
'average_score': sum([r['overall_risk_assessment']['risk_score']
for r in data['results']]) / len(data['results'])
}
return None
# Usage
domains = ['api.example.com', 'cdn.example.com', 'db.example.com']
summary = analyze_infrastructure(domains)
print(json.dumps(summary, indent=2))
Need Help? For additional support or questions about the Juri API, please contact our development team or visit our main application for interactive testing.