KINETIC
KINETIC ANVILProtocol · API reference
Anvil-Version 2026-07-05 Start in the sandbox

Case spine

Parties

Every person or entity attached to a matter. One noun; role separates claimants, debtors, and counterparties.

POST/v1/partiesCreate a party
GET/v1/partiesList parties
GET/v1/parties/{party_id}Retrieve a party
PATCH/v1/parties/{party_id}Update a party
GET/v1/matters/{matter_id}/partiesList parties on a matter
POST/v1/parties

Create a party

Attach a party to a matter. role separates claimants, debtors, and counterparties.

scope · parties:write
§ Body
FieldType
matter_id
required
string
role
required
string · claimant | debtor | counterparty
name
required
string
legal_name
optional
string
type
optional
string
aliases
optional
array
identifiers
optional
object
wallets
optional
array
economics
optional
object
contact
optional
object
# sandbox: full surface, no production data
curl -X POST https://api.kineticanvil.com/v1/parties \
  -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \
  -H "Anvil-Version: 2026-07-05" \
  -H "Content-Type: application/json" \
  -d '{"matter_id":"string","role":"claimant","name":"string","legal_name":"string","type":"string","aliases":[],"identifiers":{},"wallets":[],"economics":{},"contact":{}}'
import requests

resp = requests.post(
    "https://api.kineticanvil.com/v1/parties",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
    json={"matter_id":"string","role":"claimant","name":"string","legal_name":"string","type":"string","aliases":[],"identifiers":{},"wallets":[],"economics":{},"contact":{}},
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/parties", {
  method: "POST",
  headers: {
    "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
    "Anvil-Version": "2026-07-05",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"matter_id":"string","role":"claimant","name":"string","legal_name":"string","type":"string","aliases":[],"identifiers":{},"wallets":[],"economics":{},"contact":{}}),
});
console.log(await resp.json());
● 201Anvil-Request-Id: req_01J…
201 Response
{
  "party_id": "string",
  "object": "party",
  "matter_id": "string",
  "role": "claimant",
  "name": "string",
  "legal_name": "string",
  "type": "string",
  "aliases": [
    "string"
  ],
  "identifiers": {},
  "wallets": [
    "string"
  ],
  "economics": {},
  "contact": {}
}
GET/v1/parties

List parties

List parties across your matters. Filter by role or matter_id.

scope · parties:read
§ Query parameters
ParameterType
role
optional · query
string
matter_id
optional · query
string
# sandbox: full surface, no production data
curl https://api.kineticanvil.com/v1/parties \
  -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \
  -H "Anvil-Version: 2026-07-05"
import requests

resp = requests.get(
    "https://api.kineticanvil.com/v1/parties",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/parties", {
  method: "GET",
  headers: {
    "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
    "Anvil-Version": "2026-07-05",
  },
});
console.log(await resp.json());
● 200Anvil-Request-Id: req_01J…
200 Response
{
  "object": "list",
  "data": [
    {
      "party_id": "string",
      "object": "party",
      "matter_id": "string",
      "role": "claimant",
      "name": "string",
      "legal_name": "string",
      "type": "string",
      "aliases": [],
      "identifiers": {},
      "wallets": [],
      "economics": {},
      "contact": {}
    }
  ],
  "has_more": true
}
GET/v1/parties/{party_id}

Retrieve a party

Retrieve a party by id. Unknown ids return 404.

scope · parties:read
§ Path parameters
ParameterType
party_id
required · path
string
# sandbox: full surface, no production data
curl https://api.kineticanvil.com/v1/parties/{party_id} \
  -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \
  -H "Anvil-Version: 2026-07-05"
import requests

resp = requests.get(
    "https://api.kineticanvil.com/v1/parties/{party_id}",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/parties/{party_id}", {
  method: "GET",
  headers: {
    "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
    "Anvil-Version": "2026-07-05",
  },
});
console.log(await resp.json());
● 200Anvil-Request-Id: req_01J…
200 Response
{
  "party_id": "string",
  "object": "party",
  "matter_id": "string",
  "role": "claimant",
  "name": "string",
  "legal_name": "string",
  "type": "string",
  "aliases": [
    "string"
  ],
  "identifiers": {},
  "wallets": [
    "string"
  ],
  "economics": {},
  "contact": {}
}
PATCH/v1/parties/{party_id}

Update a party

Update fields on a stored party. Unknown ids return 404.

scope · parties:write
§ Path parameters
ParameterType
party_id
required · path
string
§ Body
FieldType
name
optional
string
legal_name
optional
string
role
optional
string · claimant | debtor | counterparty
aliases
optional
array
identifiers
optional
object
wallets
optional
array
economics
optional
object
contact
optional
object
status
optional
string
# sandbox: full surface, no production data
curl -X PATCH https://api.kineticanvil.com/v1/parties/{party_id} \
  -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \
  -H "Anvil-Version: 2026-07-05" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","legal_name":"string","role":"claimant","aliases":[],"identifiers":{},"wallets":[],"economics":{},"contact":{},"status":"string"}'
import requests

resp = requests.patch(
    "https://api.kineticanvil.com/v1/parties/{party_id}",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
    json={"name":"string","legal_name":"string","role":"claimant","aliases":[],"identifiers":{},"wallets":[],"economics":{},"contact":{},"status":"string"},
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/parties/{party_id}", {
  method: "PATCH",
  headers: {
    "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
    "Anvil-Version": "2026-07-05",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name":"string","legal_name":"string","role":"claimant","aliases":[],"identifiers":{},"wallets":[],"economics":{},"contact":{},"status":"string"}),
});
console.log(await resp.json());
● 200Anvil-Request-Id: req_01J…
200 Response
{
  "party_id": "string",
  "object": "party",
  "matter_id": "string",
  "role": "claimant",
  "name": "string",
  "legal_name": "string",
  "type": "string",
  "aliases": [
    "string"
  ],
  "identifiers": {},
  "wallets": [
    "string"
  ],
  "economics": {},
  "contact": {}
}
GET/v1/matters/{matter_id}/parties

List parties on a matter

All parties attached to one matter. Filter by role.

scope · parties:read
§ Path parameters
ParameterType
matter_id
required · path
string
§ Query parameters
ParameterType
role
optional · query
string
# sandbox: full surface, no production data
curl https://api.kineticanvil.com/v1/matters/{matter_id}/parties \
  -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \
  -H "Anvil-Version: 2026-07-05"
import requests

resp = requests.get(
    "https://api.kineticanvil.com/v1/matters/{matter_id}/parties",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/matters/{matter_id}/parties", {
  method: "GET",
  headers: {
    "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
    "Anvil-Version": "2026-07-05",
  },
});
console.log(await resp.json());
● 200Anvil-Request-Id: req_01J…
200 Response
{
  "object": "list",
  "data": [
    {
      "party_id": "string",
      "object": "party",
      "matter_id": "string",
      "role": "claimant",
      "name": "string",
      "legal_name": "string",
      "type": "string",
      "aliases": [],
      "identifiers": {},
      "wallets": [],
      "economics": {},
      "contact": {}
    }
  ],
  "has_more": true
}