curl --request POST \
--url https://api.range.org/v2/cases \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"subject": {
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"tx_hash": "0xabc...",
"name": "<string>"
},
"source_id": "<string>",
"title": "High-risk address detected: 0x742d...bD28",
"assignee": "compliance@example.com"
}
'import requests
url = "https://api.range.org/v2/cases"
payload = {
"subject": {
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"tx_hash": "0xabc...",
"name": "<string>"
},
"source_id": "<string>",
"title": "High-risk address detected: 0x742d...bD28",
"assignee": "compliance@example.com"
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subject: {
address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
network: 'ethereum',
tx_hash: '0xabc...',
name: '<string>'
},
source_id: '<string>',
title: 'High-risk address detected: 0x742d...bD28',
assignee: 'compliance@example.com'
})
};
fetch('https://api.range.org/v2/cases', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.range.org/v2/cases",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'subject' => [
'address' => '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
'network' => 'ethereum',
'tx_hash' => '0xabc...',
'name' => '<string>'
],
'source_id' => '<string>',
'title' => 'High-risk address detected: 0x742d...bD28',
'assignee' => 'compliance@example.com'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.range.org/v2/cases"
payload := strings.NewReader("{\n \"subject\": {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"tx_hash\": \"0xabc...\",\n \"name\": \"<string>\"\n },\n \"source_id\": \"<string>\",\n \"title\": \"High-risk address detected: 0x742d...bD28\",\n \"assignee\": \"compliance@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.range.org/v2/cases")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"tx_hash\": \"0xabc...\",\n \"name\": \"<string>\"\n },\n \"source_id\": \"<string>\",\n \"title\": \"High-risk address detected: 0x742d...bD28\",\n \"assignee\": \"compliance@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.range.org/v2/cases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subject\": {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"tx_hash\": \"0xabc...\",\n \"name\": \"<string>\"\n },\n \"source_id\": \"<string>\",\n \"title\": \"High-risk address detected: 0x742d...bD28\",\n \"assignee\": \"compliance@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"workspace_id": "<string>",
"title": "<string>",
"status": "open",
"severity": "severe",
"source_type": "risk_screen",
"subject": {
"type": "address",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"tx_hash": "0xabc...",
"name": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"viewed": true,
"autopilot_status": "queued",
"autopilot_recommendation": "escalate",
"available_actions": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"label": "<string>",
"kind": "select",
"options": [
"open"
],
"requires_note": true
}
],
"comments": [
{
"id": "<string>",
"author": "analyst@range.org",
"body": "<string>",
"created_at": "<string>"
}
],
"autopilot": {
"run_id": "<string>",
"status": "queued",
"runs_count": 123,
"recommendation": "escalate",
"confidence": "low",
"headline": "<string>",
"report": {},
"started_at": "<string>",
"completed_at": "<string>"
},
"resolution": "dismissed",
"source_id": "<string>",
"client_entity_id": "550e8400-e29b-41d4-a716-446655440000",
"assignee": "<string>",
"created_by": "<string>",
"resolved_at": "<string>",
"counterparty_deleted": true,
"evidence_summary": {}
}Create a case (manual)
curl --request POST \
--url https://api.range.org/v2/cases \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"subject": {
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"tx_hash": "0xabc...",
"name": "<string>"
},
"source_id": "<string>",
"title": "High-risk address detected: 0x742d...bD28",
"assignee": "compliance@example.com"
}
'import requests
url = "https://api.range.org/v2/cases"
payload = {
"subject": {
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"tx_hash": "0xabc...",
"name": "<string>"
},
"source_id": "<string>",
"title": "High-risk address detected: 0x742d...bD28",
"assignee": "compliance@example.com"
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subject: {
address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
network: 'ethereum',
tx_hash: '0xabc...',
name: '<string>'
},
source_id: '<string>',
title: 'High-risk address detected: 0x742d...bD28',
assignee: 'compliance@example.com'
})
};
fetch('https://api.range.org/v2/cases', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.range.org/v2/cases",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'subject' => [
'address' => '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
'network' => 'ethereum',
'tx_hash' => '0xabc...',
'name' => '<string>'
],
'source_id' => '<string>',
'title' => 'High-risk address detected: 0x742d...bD28',
'assignee' => 'compliance@example.com'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.range.org/v2/cases"
payload := strings.NewReader("{\n \"subject\": {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"tx_hash\": \"0xabc...\",\n \"name\": \"<string>\"\n },\n \"source_id\": \"<string>\",\n \"title\": \"High-risk address detected: 0x742d...bD28\",\n \"assignee\": \"compliance@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.range.org/v2/cases")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"tx_hash\": \"0xabc...\",\n \"name\": \"<string>\"\n },\n \"source_id\": \"<string>\",\n \"title\": \"High-risk address detected: 0x742d...bD28\",\n \"assignee\": \"compliance@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.range.org/v2/cases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subject\": {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"tx_hash\": \"0xabc...\",\n \"name\": \"<string>\"\n },\n \"source_id\": \"<string>\",\n \"title\": \"High-risk address detected: 0x742d...bD28\",\n \"assignee\": \"compliance@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"workspace_id": "<string>",
"title": "<string>",
"status": "open",
"severity": "severe",
"source_type": "risk_screen",
"subject": {
"type": "address",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"tx_hash": "0xabc...",
"name": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"viewed": true,
"autopilot_status": "queued",
"autopilot_recommendation": "escalate",
"available_actions": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"label": "<string>",
"kind": "select",
"options": [
"open"
],
"requires_note": true
}
],
"comments": [
{
"id": "<string>",
"author": "analyst@range.org",
"body": "<string>",
"created_at": "<string>"
}
],
"autopilot": {
"run_id": "<string>",
"status": "queued",
"runs_count": 123,
"recommendation": "escalate",
"confidence": "low",
"headline": "<string>",
"report": {},
"started_at": "<string>",
"completed_at": "<string>"
},
"resolution": "dismissed",
"source_id": "<string>",
"client_entity_id": "550e8400-e29b-41d4-a716-446655440000",
"assignee": "<string>",
"created_by": "<string>",
"resolved_at": "<string>",
"counterparty_deleted": true,
"evidence_summary": {}
}Authorizations
Authorization method required to allow user to access the api endpoints.
Body
risk_screen, sanctions_screen, alert_event, manual, regulatory_filing Show child attributes
Show child attributes
Required for risk_screen and alert_event (screen_id / event_id).
256200"High-risk address detected: 0x742d...bD28"
Required when source_type is manual; inherited from the source otherwise.
severe, high, medium, low "compliance@example.com"
Response
open, in_review, resolved severe, high, medium, low risk_screen, sanctions_screen, alert_event, manual, regulatory_filing, tie_out_break, corridor_discrepancy, redemption, transaction_screening, counterparty_screening Show child attributes
Show child attributes
In list responses, whether this case is read for the caller.
Status of the latest Autopilot run on this case, or null when Autopilot has not touched it.
queued, running, completed, failed, skipped Recommendation of the latest Autopilot run, or null when it has none yet.
escalate, dismiss, review Actions supported by this source and status. Existing write permissions still apply. Resolving via set_status requires resolution=dismissed.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The latest Autopilot run on this case, or null. Its report is model output: render it as text, never as HTML.
Show child attributes
Show child attributes
dismissed, escalated, paid The client entity the case concerns (screening cases).
"550e8400-e29b-41d4-a716-446655440000"
Counterparty screening cases on one counterparty address or wallet: true when that counterparty entity or wallet account has since been deleted from the register. The case stays open. Absent on other cases.
What the case was opened on. A redemption case carries redemption_id, burn_time and deadline, linking it to GET /v2/redemptions/{id}.
Was this page helpful?