kriyam.aistudioAPI reference
Kriyam Docwise

Get a session details

GEThttps://studioapi.kriyam.ai/models/docwise/{session_id}

Returns a session with each document, its per-stage progress and whatever results are ready. status is completed, partial or failed once the work is over.

Request

curl -X GET "https://studioapi.kriyam.ai/models/docwise/{session_id}" \
  -H "X-API-Key: $KRIYAM_API_KEY"

Response

{8 items
"id":"e3a91b47-0c25-4d6f-9b8a-71f4c2..."
"status":"completed"
"capabilities":[2 items
0:"parse"
1:"extract"
]
"processing_mode":"fast"
"credits":14
"documents":[1 item
0:{6 items
"id":"1d7c4f92-8b3a-4e50-a6c1-9f28b5..."
"original_filename":"invoice.pdf"
"status":"completed"
"document_type":"invoice"
"page_count":3
"pages":[1 item
0:{2 items
"page_number":1
"images":[1 item
0:{4 items
"serial":"1.1.2"
"type":"image"
"url":"https://storage.example.com/cr..."
"bbox_2d":[4 items
0:442
1:10
2:558
3:100
]
}
]
}
]
}
]
"extract_status":"done"
"extraction":{3 items
"json_schema":{2 items
"type":"object"
"properties":{5 items
"invoice_number":{2 items
"type":"string"
"description":"The invoice number printed by ..."
}
"invoice_date":{2 items
"type":"string"
"description":"Date of issue, as YYYY-MM-DD"
}
"seller_gstin":{2 items
"type":"string"
"description":"GSTIN of the seller, not the b..."
}
"total_amount":{2 items
"type":"number"
"description":"Grand total payable including ..."
}
"line_items":{3 items
"type":"array"
"description":"One entry per billed line"
"items":{2 items
"type":"object"
"properties":{2 items
"description":{2 items
"type":"string"
"description":"What was billed"
}
"amount":{2 items
"type":"number"
"description":"Line total before tax"
}
}
}
}
}
}
"extracted_data":{5 items
"invoice_number":"INV-2026-0412"
"invoice_date":"2026-09-14"
"seller_gstin":"29ABCDE1234F1Z5"
"total_amount":118000
"line_items":[1 item
0:{2 items
"description":"Annual platform licence"
"amount":100000
}
]
}
"field_citations":{1 item
"invoice_number":{2 items
"element_serials":[1 item
0:"1.1.3"
]
"document_ids":[1 item
0:"1d7c4f92-8b3a-4e50-a6c1-9f28b5..."
]
}
}
}
}

Authentication

Send your key in the X-API-Key header. See Authentication.

Request

Path parameters

NameTypeRequiredDescription
session_idstringRequired

The session_id returned when the session was started.

Response

200 OK

FieldTypeDescription
iduuid

The session.

statusstring

processing while work remains; then completed, partial when some steps or documents finished and others didn't, or failed when nothing could be processed.

capabilitiesstring[]

The steps this session actually runs — what you asked for plus anything those depend on.

processing_modestring

fast or accurate, as sent.

creditsinteger

Charged so far. It rises as each step delivers, so it is only final once status is.

documents[]object[]

Each document with its own status and whatever results are ready.

documents[].statusstring

This document's own outcome — one can fail while its siblings succeed, which is what partial at the session level means.

documents[].document_typestring | null

What classify decided this is. Null when classify wasn't run, or when the file holds more than one kind of document.

documents[].page_countinteger | null

Pages found in this document.

documents[].pages[]object[]

Each page, in order, with what was read from it.

documents[].pages[].page_numberinteger

1-based, within the document.

documents[].pages[].parsed_ocrobject[] | null

The page's elements in reading order — {type, content, bbox_2d, serial, metadata}. An image element's content embeds its picture as a Markdown image; the same picture is in images below as a plain URL.

documents[].pages[].images[]object[]

Every image Docwise cut out of the page — photos, logos, signatures, stamps, figures — one entry per image. Empty when the page has none.

documents[].pages[].images[].urlstring

A presigned download URL, valid for one hour. Download and store the file if you need to keep it; read the session again for a fresh URL.

documents[].pages[].images[].serialstring | null

The serial of the element in parsed_ocr this image belongs to.

documents[].pages[].images[].typestring | null

That element's type, e.g. image.

documents[].pages[].images[].bbox_2dnumber[] | null

Where the image sits on the page, [x0, y0, x1, y1] on a 0-1000 scale.

extract_statusstring

Where extraction has got to: pending, in_progress, done or failed, or not_applicable when extract wasn't requested.

extractionobject | null

The extracted data, once extraction has produced it. One result covers the whole session, since a field can draw on more than one document.

extraction.json_schemaobject

The schema the values were extracted against — your extraction_schema when you sent one, otherwise the one Docwise generated from the documents.

extraction.extracted_dataobject

The values, shaped by that schema. A field the documents don't answer is null rather than guessed.

extraction.field_citationsobject | null

For each top-level field, the documents (document_ids) and the parsed elements (element_serials) its value was read from.

Errors

StatusCodeWhen
400—

No file was sent, more than 5 were, no step was requested, or a requested step is unknown or not currently available. Also when extraction_schema is sent without extract, isn't a JSON Schema object, or has a field with no description — the message names the field.

Every keyed call can also get401402403404429— see Errors.