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

Case spine

Judgments

Court judgments recorded against a matter, validated deterministically, with a merged enforcement route.

POST/v1/judgments/intakeIntake judgment
GET/v1/judgments/{judgment_id}Get judgment
PATCH/v1/judgments/{judgment_id}Update judgment
POST/v1/judgments/{judgment_id}/validateValidate judgment readiness
GET/v1/judgments/{judgment_id}/deadlinesGet judgment deadlines
POST/v1/judgments/{judgment_id}/enforcementSet enforcement posture
POST/v1/judgments/intake

Intake judgment

Creates a structured judgment record from entered fields and optional uploaded source references.

scope · judgments:write
§ Body
FieldType
matter_id
required
string
court
required
string
case_number
required
string
jurisdiction
required
string
creditor
required
string
debtor
required
string
amount
required
object · Monetary amount with valuation timestamp.
date_entered
required
string
# sandbox: full surface, no production data
curl -X POST https://api.kineticanvil.com/v1/judgments/intake \
  -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \
  -H "Anvil-Version: 2026-07-05" \
  -H "Content-Type: application/json" \
  -d '{"matter_id":"string","court":"string","case_number":"string","jurisdiction":"string","creditor":"string","debtor":"string","amount":{"amount":0,"currency":"string","valuation_time":"2026-07-05T00:00:00Z"},"date_entered":"string"}'
import requests

resp = requests.post(
    "https://api.kineticanvil.com/v1/judgments/intake",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
    json={"matter_id":"string","court":"string","case_number":"string","jurisdiction":"string","creditor":"string","debtor":"string","amount":{"amount":0,"currency":"string","valuation_time":"2026-07-05T00:00:00Z"},"date_entered":"string"},
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/judgments/intake", {
  method: "POST",
  headers: {
    "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
    "Anvil-Version": "2026-07-05",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"matter_id":"string","court":"string","case_number":"string","jurisdiction":"string","creditor":"string","debtor":"string","amount":{"amount":0,"currency":"string","valuation_time":"2026-07-05T00:00:00Z"},"date_entered":"string"}),
});
console.log(await resp.json());
● 201Anvil-Request-Id: req_01J…
201 Response
{
  "judgment_id": "string",
  "matter_id": "string",
  "court": "string",
  "case_number": "string",
  "jurisdiction": "string",
  "date_entered": "string",
  "creditor": "string",
  "debtor": "string"
}
GET/v1/judgments/{judgment_id}

Get judgment

Gets judgment, validation, deadlines, linked matter, and balance summary.

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

resp = requests.get(
    "https://api.kineticanvil.com/v1/judgments/{judgment_id}",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/judgments/{judgment_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
{
  "judgment_id": "string",
  "matter_id": "string",
  "court": "string",
  "case_number": "string",
  "jurisdiction": "string",
  "date_entered": "string",
  "creditor": "string",
  "debtor": "string"
}
PATCH/v1/judgments/{judgment_id}

Update judgment

Updates judgment metadata and review flags.

scope · judgments:write
§ Path parameters
ParameterType
judgment_id
required · path
string
§ Body
FieldType
status
optional
string
appeal_stay_status
optional
string
bankruptcy_status
optional
string
renewal_deadline
optional
string
review_state
optional
object
# sandbox: full surface, no production data
curl -X PATCH https://api.kineticanvil.com/v1/judgments/{judgment_id} \
  -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \
  -H "Anvil-Version: 2026-07-05" \
  -H "Content-Type: application/json" \
  -d '{"status":"string","appeal_stay_status":"string","bankruptcy_status":"string","renewal_deadline":"string","review_state":{"review_required":true,"review_status":"string","review_owner":"string","review_notes":"string"}}'
import requests

resp = requests.patch(
    "https://api.kineticanvil.com/v1/judgments/{judgment_id}",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
    json={"status":"string","appeal_stay_status":"string","bankruptcy_status":"string","renewal_deadline":"string","review_state":{"review_required":true,"review_status":"string","review_owner":"string","review_notes":"string"}},
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/judgments/{judgment_id}", {
  method: "PATCH",
  headers: {
    "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
    "Anvil-Version": "2026-07-05",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"status":"string","appeal_stay_status":"string","bankruptcy_status":"string","renewal_deadline":"string","review_state":{"review_required":true,"review_status":"string","review_owner":"string","review_notes":"string"}}),
});
console.log(await resp.json());
● 200Anvil-Request-Id: req_01J…
200 Response
{
  "judgment_id": "string",
  "matter_id": "string",
  "court": "string",
  "case_number": "string",
  "jurisdiction": "string",
  "date_entered": "string",
  "creditor": "string",
  "debtor": "string"
}
POST/v1/judgments/{judgment_id}/validate

Validate judgment readiness

Runs authority, stay/appeal/bankruptcy, consumer/commercial, and required-document gates.

scope · judgments:validate
§ Path parameters
ParameterType
judgment_id
required · path
string
§ Body
FieldType
checks
optional
array
consumer_debt
optional
boolean
bankruptcy_known
optional
boolean
appeal_stay_known
optional
boolean
# sandbox: full surface, no production data
curl -X POST https://api.kineticanvil.com/v1/judgments/{judgment_id}/validate \
  -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \
  -H "Anvil-Version: 2026-07-05" \
  -H "Content-Type: application/json" \
  -d '{"checks":[],"consumer_debt":true,"bankruptcy_known":true,"appeal_stay_known":true}'
import requests

resp = requests.post(
    "https://api.kineticanvil.com/v1/judgments/{judgment_id}/validate",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
    json={"checks":[],"consumer_debt":true,"bankruptcy_known":true,"appeal_stay_known":true},
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/judgments/{judgment_id}/validate", {
  method: "POST",
  headers: {
    "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
    "Anvil-Version": "2026-07-05",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"checks":[],"consumer_debt":true,"bankruptcy_known":true,"appeal_stay_known":true}),
});
console.log(await resp.json());
● 200Anvil-Request-Id: req_01J…
200 Response
{
  "judgment_id": "string",
  "enforcement_ready": true,
  "review_required": true,
  "missing_items": [
    "string"
  ],
  "gates": [
    {
      "gate": "string",
      "status": "string",
      "reasons": "string",
      "required_actions": "string"
    }
  ]
}
GET/v1/judgments/{judgment_id}/deadlines

Get judgment deadlines

Returns renewal, service, response, hearing, packet, and monitoring deadlines.

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

resp = requests.get(
    "https://api.kineticanvil.com/v1/judgments/{judgment_id}/deadlines",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/judgments/{judgment_id}/deadlines", {
  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": [
    {
      "deadline_id": "string",
      "type": "string",
      "date": "string",
      "owner": "string",
      "status": "string"
    }
  ],
  "has_more": true
}
POST/v1/judgments/{judgment_id}/enforcement

Set enforcement posture

Record the enforcement strategy, venues, and priorities on a judgment. Replaces the v2 enforcement-profile and enforcement-plan pair with one persisted object.

scope · judgments:write
§ Path parameters
ParameterType
judgment_id
required · path
string
§ Body
FieldType
strategy
optional
string
venues
optional
array
priorities
optional
array
notes
optional
string
# sandbox: full surface, no production data
curl -X POST https://api.kineticanvil.com/v1/judgments/{judgment_id}/enforcement \
  -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \
  -H "Anvil-Version: 2026-07-05" \
  -H "Content-Type: application/json" \
  -d '{"strategy":"string","venues":[],"priorities":[],"notes":"string"}'
import requests

resp = requests.post(
    "https://api.kineticanvil.com/v1/judgments/{judgment_id}/enforcement",
    headers={
        "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
        "Anvil-Version": "2026-07-05",
    },
    json={"strategy":"string","venues":[],"priorities":[],"notes":"string"},
)
print(resp.json())
const resp = await fetch("https://api.kineticanvil.com/v1/judgments/{judgment_id}/enforcement", {
  method: "POST",
  headers: {
    "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
    "Anvil-Version": "2026-07-05",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"strategy":"string","venues":[],"priorities":[],"notes":"string"}),
});
console.log(await resp.json());
● 200Anvil-Request-Id: req_01J…
200 Response
{
  "object": "enforcement",
  "judgment_id": "string",
  "strategy": "string",
  "venues": [
    "string"
  ],
  "priorities": [
    "string"
  ],
  "notes": "string",
  "review_required": true,
  "updated_at": "2026-07-05T00:00:00Z"
}