curl --request PATCH \
--url https://www.presolve.com/api/v1/cases/{caseId} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{}'const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://www.presolve.com/api/v1/cases/{caseId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://www.presolve.com/api/v1/cases/{caseId}"
payload = {}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"success": true
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}Update mutable case fields
Updates mutable case fields (financial projections, scoring, descriptions). Case-state changes are NOT accepted here — state moves only through dedicated transition endpoints. Legacy partner keys and OIDC bearers keep working; integration keys require cases:write.
Supports one selected organization via organizationId. Omit it to use the key’s organization. HQ descendant access requires an active acting attorney with hq:view_child_orgs, cases:view, cases:view_all, hq:view_all_cases, hq:manage_child_orgs, cases:edit, cases:assign, cases:change_status, intake:edit. Existing key scopes still apply. The selector requires an integration API key; legacy partner/OIDC routing is unchanged. Repeat the selector on every cursor page, related mutation, upload completion, and detail/download request. Mutation key scopes, idempotency, revisions, and resource-specific eligibility still apply. See HQ authorization.
Requires the cases:write scope. Legacy partner API keys and OIDC bearer tokens are also accepted on this endpoint (shipped behavior, unchanged); integration keys are scope-enforced. Rate tier: write.
curl --request PATCH \
--url https://www.presolve.com/api/v1/cases/{caseId} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{}'const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://www.presolve.com/api/v1/cases/{caseId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://www.presolve.com/api/v1/cases/{caseId}"
payload = {}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"success": true
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}Authorizations
Org-issued integration API key (service account credential). The plaintext secret is shown once at creation.
Path Parameters
Case id
Query Parameters
Select one organization for this request. Defaults to the key organization. An HQ key may select an active descendant when its active acting attorney has the required HQ and resource permissions. Repeat the same organizationId on related mutations, upload completion, detail requests, and every cursor page. See /authorization.
Body
Legacy partner-API body validated imperatively by the route (see docs/api/v1-public-api.md for the field list). Integration keys may use this endpoint with the scope noted above.