KINETIC
KINETIC APIProtocol · API reference
MD-Version 2026-06-11 Request access

Compliance gates

Monitoring

Wallet watchlists, alert rules, movement alerts.

POST/v1/watchlistsCreate watchlist
GET/v1/watchlistsList watchlists
GET/v1/watchlists/{watchlist_id}Get watchlist
POST/v1/watchlists/{watchlist_id}/addressesAdd watchlist addresses
GET/v1/alertsList alerts
POST/v1/alerts/{alert_id}/triageTriage alert
POST/v1/watchlists

Create watchlist

Creates matter-tied wallet/token/exchange watchlist.

scope · monitoring:writeidempotent · Idempotency-Key
§ Body parameters
FieldType
matter_idstring
namestring
chainsarray
thresholdsobject
# sandbox: full surface, no production data
curl -X POST https://sandbox.api.microndelta.com/v1/watchlists \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 4f8a-bd31" \
  -d '{
  "matter_id": "string",
  "name": "string",
  "chains": [
    "string"
  ],
  "thresholds": {}
}'
import requests

resp = requests.post(
    "https://sandbox.api.microndelta.com/v1/watchlists",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
        "Idempotency-Key": "4f8a-bd31",
    },
    json={
        "matter_id": "string",
        "name": "string",
        "chains": [
            "string"
        ],
        "thresholds": {}
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/watchlists", {
  method: "POST",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
    "Content-Type": "application/json",
    "Idempotency-Key": "4f8a-bd31",
  },
  body: JSON.stringify({
    "matter_id": "string",
    "name": "string",
    "chains": [
      "string"
    ],
    "thresholds": {}
  }),
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
201 Response
{
  "watchlist_id": "string",
  "matter_id": "string",
  "name": "string",
  "addresses": [
    "string"
  ],
  "status": "string",
  "alert_rules": [
    {}
  ]
}
GET/v1/watchlists

List watchlists

Lists matter-tied watchlists.

scope · monitoring:read
# sandbox: full surface, no production data
curl https://sandbox.api.microndelta.com/v1/watchlists \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11"
import requests

resp = requests.get(
    "https://sandbox.api.microndelta.com/v1/watchlists",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/watchlists", {
  method: "GET",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
  },
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "object": "list",
  "data": [
    {
      "watchlist_id": "...",
      "matter_id": "...",
      "name": "...",
      "addresses": "...",
      "status": "...",
      "alert_rules": "..."
    }
  ],
  "has_more": false
}
GET/v1/watchlists/{watchlist_id}

Get watchlist

Gets watchlist and alert rules.

scope · monitoring:read
§ Path parameters
ParameterType
watchlist_id
required · path
string
# sandbox: full surface, no production data
curl https://sandbox.api.microndelta.com/v1/watchlists/wat_91Lk \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11"
import requests

resp = requests.get(
    "https://sandbox.api.microndelta.com/v1/watchlists/wat_91Lk",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/watchlists/wat_91Lk", {
  method: "GET",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
  },
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "watchlist_id": "string",
  "matter_id": "string",
  "name": "string",
  "addresses": [
    "string"
  ],
  "status": "string",
  "alert_rules": [
    {}
  ]
}
POST/v1/watchlists/{watchlist_id}/addresses

Add watchlist addresses

Adds matter-linked addresses to monitoring watchlist.

scope · monitoring:writeidempotent · Idempotency-Key
§ Path parameters
ParameterType
watchlist_id
required · path
string
§ Body parameters
FieldType
addressesarray
reasonstring
source_refsarray
# sandbox: full surface, no production data
curl -X POST https://sandbox.api.microndelta.com/v1/watchlists/wat_91Lk/addresses \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 4f8a-bd31" \
  -d '{
  "addresses": [
    "string"
  ],
  "reason": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ]
}'
import requests

resp = requests.post(
    "https://sandbox.api.microndelta.com/v1/watchlists/wat_91Lk/addresses",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
        "Idempotency-Key": "4f8a-bd31",
    },
    json={
        "addresses": [
            "string"
        ],
        "reason": "string",
        "source_refs": [
            {
                "source_id": "...",
                "source_type": "...",
                "title": "...",
                "uri": "...",
                "hash": "...",
                "chain_of_custody_id": "...",
                "admissibility_notes": "..."
            }
        ]
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/watchlists/wat_91Lk/addresses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
    "Content-Type": "application/json",
    "Idempotency-Key": "4f8a-bd31",
  },
  body: JSON.stringify({
    "addresses": [
      "string"
    ],
    "reason": "string",
    "source_refs": [
      {
        "source_id": "...",
        "source_type": "...",
        "title": "...",
        "uri": "...",
        "hash": "...",
        "chain_of_custody_id": "...",
        "admissibility_notes": "..."
      }
    ]
  }),
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "watchlist_id": "string",
  "matter_id": "string",
  "name": "string",
  "addresses": [
    "string"
  ],
  "status": "string",
  "alert_rules": [
    {}
  ]
}
GET/v1/alerts

List alerts

Lists wallet movement, exchange proximity, stablecoin exposure, sanctions, deadline, and compliance alerts.

scope · monitoring:read
# sandbox: full surface, no production data
curl https://sandbox.api.microndelta.com/v1/alerts \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11"
import requests

resp = requests.get(
    "https://sandbox.api.microndelta.com/v1/alerts",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/alerts", {
  method: "GET",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
  },
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "object": "list",
  "data": [
    {
      "alert_id": "...",
      "matter_id": "...",
      "type": "...",
      "severity": "...",
      "status": "...",
      "target": "...",
      "reason": "...",
      "created_at": "..."
    }
  ],
  "has_more": false
}
POST/v1/alerts/{alert_id}/triage

Triage alert

Marks alert actionability, creates linked actions/packets, or closes false positive.

scope · monitoring:writeidempotent · Idempotency-Key
§ Path parameters
ParameterType
alert_id
required · path
string
§ Body parameters
FieldType
statusstring
notesstring
create_actionboolean
create_packet_typestring
# sandbox: full surface, no production data
curl -X POST https://sandbox.api.microndelta.com/v1/alerts/ale_91Lk/triage \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 4f8a-bd31" \
  -d '{
  "status": "actionable",
  "notes": "string",
  "create_action": true,
  "create_packet_type": "string"
}'
import requests

resp = requests.post(
    "https://sandbox.api.microndelta.com/v1/alerts/ale_91Lk/triage",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
        "Idempotency-Key": "4f8a-bd31",
    },
    json={
        "status": "actionable",
        "notes": "string",
        "create_action": True,
        "create_packet_type": "string"
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/alerts/ale_91Lk/triage", {
  method: "POST",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
    "Content-Type": "application/json",
    "Idempotency-Key": "4f8a-bd31",
  },
  body: JSON.stringify({
    "status": "actionable",
    "notes": "string",
    "create_action": true,
    "create_packet_type": "string"
  }),
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "alert_id": "string",
  "matter_id": "string",
  "type": "string",
  "severity": "string",
  "status": "string",
  "target": "string",
  "reason": "string",
  "created_at": "2026-06-01T12:00:00Z"
}