● Case spine
Parties
Every person or entity attached to a matter. One noun; role separates claimants, debtors, and counterparties.
| POST | /v1/parties | Create a party |
| GET | /v1/parties | List parties |
| GET | /v1/parties/{party_id} | Retrieve a party |
| PATCH | /v1/parties/{party_id} | Update a party |
| GET | /v1/matters/{matter_id}/parties | List 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
| Field | Type |
|---|---|
| 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
| Parameter | Type |
|---|---|
| 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
| Parameter | Type |
|---|---|
| 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
| Parameter | Type |
|---|---|
| party_id required · path | string |
§ Body
| Field | Type |
|---|---|
| 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
| Parameter | Type |
|---|---|
| matter_id required · path | string |
§ Query parameters
| Parameter | Type |
|---|---|
| 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
}