Get the fields of a case, merged across documents
curl --request GET \
--url https://app.sahlfinancial.com/api/v1/cases/{case_id}/fields \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.sahlfinancial.com/api/v1/cases/{case_id}/fields', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.sahlfinancial.com/api/v1/cases/{case_id}/fields"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"case_id": "7e3b9a14-2d6c-4c85-b1f0-6a8d4e2c9b37",
"document_count": 1,
"field_count": 1,
"fields": [
{
"field_name": "employer_name",
"value": "Test Employer SARL",
"confidence": 0.97,
"source_document_id": "a8f1c3e5-6b2d-4974-8e0a-1d5c7b9f3e26",
"source_document_type": "payslip",
"source_page": 1,
"validation_status": "valid",
"has_conflict": false
}
],
"conflicts": [],
"conflict_summary": {},
"fingerprint": "b7c1e0..."
}{
"detail": "Invalid or expired token"
}{
"detail": "Insufficient permissions"
}{
"detail": "Case not found"
}{
"detail": [
{
"type": "missing",
"loc": [
"body",
"bank_code"
],
"msg": "Field required",
"input": {}
}
]
}{
"code": "rate_limit_exceeded",
"message": "Too many requests. Please slow down."
}Get the fields of a case, merged across documents
Who can call it: Any signed-in member of the workspace.
Every field the case knows, with the document and page each value comes from, its confidence and any conflict between documents.
Auth: dashboard session (Authorization: Bearer <access token>). Not available with a partner API key.
Get the fields of a case, merged across documents
curl --request GET \
--url https://app.sahlfinancial.com/api/v1/cases/{case_id}/fields \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.sahlfinancial.com/api/v1/cases/{case_id}/fields', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.sahlfinancial.com/api/v1/cases/{case_id}/fields"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"case_id": "7e3b9a14-2d6c-4c85-b1f0-6a8d4e2c9b37",
"document_count": 1,
"field_count": 1,
"fields": [
{
"field_name": "employer_name",
"value": "Test Employer SARL",
"confidence": 0.97,
"source_document_id": "a8f1c3e5-6b2d-4974-8e0a-1d5c7b9f3e26",
"source_document_type": "payslip",
"source_page": 1,
"validation_status": "valid",
"has_conflict": false
}
],
"conflicts": [],
"conflict_summary": {},
"fingerprint": "b7c1e0..."
}{
"detail": "Invalid or expired token"
}{
"detail": "Insufficient permissions"
}{
"detail": "Case not found"
}{
"detail": [
{
"type": "missing",
"loc": [
"body",
"bank_code"
],
"msg": "Field required",
"input": {}
}
]
}{
"code": "rate_limit_exceeded",
"message": "Too many requests. Please slow down."
}Authorizations
The access token (JWT) of a signed-in console user, from POST /v1/auth/login. It lasts 30 minutes. It is not an API key: a partner API key is refused here. There is no cookie.
Path Parameters
Query Parameters
Response
OK
The response is of type Response Get Case Aggregated Fields Api V1 Cases Case Id Fields Get · object.