AI UnderwriterAPI reference

Applications

Create, list, update and delete loan applications.

Single-call application intake

POST /intake

Push the borrower, loan terms and any files in one request. Intended for a core banking system or LOS.

Pass external_ref from the integrating system to make retries idempotent. When an external_ref already exists for the organization, this returns the existing application with HTTP 200 and idempotent: true, and skips the duplicate file upload.

POST/intake

curl

curl -X POST "https://underwriter.kita.ai/api/v1/intake" \
  -H "Authorization: ApiKey $KITA_UW_API_KEY" \
  -F 'application={"business_name":"<business_name>","borrower_email":"borrower@example.com"};type=application/json'

Request body · multipart/form-data

FieldTypeDescription
applicationrequiredobjectJSON metadata part.
  application.business_namerequiredstringBorrower business or legal name.
  application.borrower_emailrequiredstring(email)
  application.borrower_phonestring
  application.loan_typestringLoan product, such as `SBA 7(a)` or `Term loan`.
  application.loan_amountnumberRequested amount.
  application.application_contextstringLoan purpose or context.
  application.external_refstringIdempotency key from the integrating system.
  application.send_outreachbooleanWhen true, Kita may email the borrower for missing documents.
  application.trackstringParametric field for configured loan products.
  application.profilestringParametric field for configured loan products.
  application.asset_valuenumber
  application.term_monthsinteger
  application.scorecard_inputsobject
filefile[]
filesfile[]

Response · 200

FieldTypeDescription
dataobject
  data.idstring(uuid)
  data.app_idstringHuman-readable identifier, for example `APP-1042`.
  data.business_namestring
  data.borrower_emailstring(email)
  data.borrower_phonestring
  data.loan_typestring
  data.loan_amountnumber
  data.application_contextstring
  data.external_refstring
  data.statusstringApplication lifecycle status. One of: submitted, awaiting_docs, underwriting, question_raised, memo_drafted, approved, declined.
  data.document_countinteger
  data.created_atstring(date-time)
  data.updated_atstring(date-time)
idempotentbooleanOne of: true.

Errors

FieldTypeDescription
400errorMalformed request.
401errorInvalid API key.
403errorThe key is valid but lacks the scope this endpoint requires.
502errorPartial intake failure. The application was created but a document upload failed. Retry the upload against `POST /applications/{id}/documents`.

List applications

GET /applications

Lists applications in the organization, most-recently-active first.

GET/applications

curl

curl -X GET "https://underwriter.kita.ai/api/v1/applications" \
  -H "Authorization: ApiKey $KITA_UW_API_KEY"

Query parameters

FieldTypeDescription
statusstringOne of: submitted, awaiting_docs, underwriting, question_raised, memo_drafted, approved, declined.
limitinteger
offsetinteger

Response · 200

FieldTypeDescription
dataobject[]
  data[].idstring(uuid)
  data[].app_idstringHuman-readable identifier, for example `APP-1042`.
  data[].business_namestring
  data[].borrower_emailstring(email)
  data[].borrower_phonestring
  data[].loan_typestring
  data[].loan_amountnumber
  data[].application_contextstring
  data[].external_refstring
  data[].statusstringApplication lifecycle status. One of: submitted, awaiting_docs, underwriting, question_raised, memo_drafted, approved, declined.
  data[].document_countinteger
  data[].created_atstring(date-time)
  data[].updated_atstring(date-time)

Errors

FieldTypeDescription
400errorMalformed request.
401errorInvalid API key.

Create an application

POST /applications

Create an application without files. Body fields mirror /intake, except that idempotency belongs to /intake.

POST/applications

curl

curl -X POST "https://underwriter.kita.ai/api/v1/applications" \
  -H "Authorization: ApiKey $KITA_UW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "business_name": "<business_name>",
  "borrower_email": "borrower@example.com"
}'

Request body · application/json

FieldTypeDescription
business_namerequiredstringBorrower business or legal name.
borrower_emailrequiredstring(email)
borrower_phonestring
loan_typestringLoan product, such as `SBA 7(a)` or `Term loan`.
loan_amountnumberRequested amount.
application_contextstringLoan purpose or context.
external_refstringIdempotency key from the integrating system.
send_outreachbooleanWhen true, Kita may email the borrower for missing documents.
trackstringParametric field for configured loan products.
profilestringParametric field for configured loan products.
asset_valuenumber
term_monthsinteger
scorecard_inputsobject

Response · 201

FieldTypeDescription
dataobject
  data.idstring(uuid)
  data.app_idstringHuman-readable identifier, for example `APP-1042`.
  data.business_namestring
  data.borrower_emailstring(email)
  data.borrower_phonestring
  data.loan_typestring
  data.loan_amountnumber
  data.application_contextstring
  data.external_refstring
  data.statusstringApplication lifecycle status. One of: submitted, awaiting_docs, underwriting, question_raised, memo_drafted, approved, declined.
  data.document_countinteger
  data.created_atstring(date-time)
  data.updated_atstring(date-time)

Errors

FieldTypeDescription
400errorMalformed request.
401errorInvalid API key.
403errorThe key is valid but lacks the scope this endpoint requires.

Get an application

GET /applications/{id}

Includes document_count.

GET/applications/{id}

curl

curl -X GET "https://underwriter.kita.ai/api/v1/applications/{id}" \
  -H "Authorization: ApiKey $KITA_UW_API_KEY"

Path parameters

FieldTypeDescription
idrequiredstringApplication UUID or human `app_id`, for example `APP-1042`.

Response · 200

FieldTypeDescription
dataobject
  data.idstring(uuid)
  data.app_idstringHuman-readable identifier, for example `APP-1042`.
  data.business_namestring
  data.borrower_emailstring(email)
  data.borrower_phonestring
  data.loan_typestring
  data.loan_amountnumber
  data.application_contextstring
  data.external_refstring
  data.statusstringApplication lifecycle status. One of: submitted, awaiting_docs, underwriting, question_raised, memo_drafted, approved, declined.
  data.document_countinteger
  data.created_atstring(date-time)
  data.updated_atstring(date-time)

Errors

FieldTypeDescription
401errorInvalid API key.
404errorNot found, or belongs to another organization.

Update an application

PATCH /applications/{id}

PATCH/applications/{id}

curl

curl -X PATCH "https://underwriter.kita.ai/api/v1/applications/{id}" \
  -H "Authorization: ApiKey $KITA_UW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "business_name": "<business_name>",
  "loan_type": "<loan_type>",
  "loan_amount": 0,
  "application_context": "<application_context>"
}'

Path parameters

FieldTypeDescription
idrequiredstringApplication UUID or human `app_id`, for example `APP-1042`.

Request body · application/json

FieldTypeDescription
business_namestring
loan_typestring
loan_amountnumber
application_contextstring
statusstringApplication lifecycle status. One of: submitted, awaiting_docs, underwriting, question_raised, memo_drafted, approved, declined.
trackstring
profilestring
asset_valuenumber
asset_useful_life_yearsnumber
term_monthsinteger

Response · 200

FieldTypeDescription
dataobject
  data.idstring(uuid)
  data.app_idstringHuman-readable identifier, for example `APP-1042`.
  data.business_namestring
  data.borrower_emailstring(email)
  data.borrower_phonestring
  data.loan_typestring
  data.loan_amountnumber
  data.application_contextstring
  data.external_refstring
  data.statusstringApplication lifecycle status. One of: submitted, awaiting_docs, underwriting, question_raised, memo_drafted, approved, declined.
  data.document_countinteger
  data.created_atstring(date-time)
  data.updated_atstring(date-time)

Errors

FieldTypeDescription
400errorMalformed request.
403errorThe key is valid but lacks the scope this endpoint requires.
404errorNot found, or belongs to another organization.

Delete an application

DELETE /applications/{id}

Permanently deletes the application, its documents, storage files and the orphaned borrower record. This cannot be undone. The MCP tool requires confirm: true before calling it.

DELETE/applications/{id}

curl

curl -X DELETE "https://underwriter.kita.ai/api/v1/applications/{id}" \
  -H "Authorization: ApiKey $KITA_UW_API_KEY"

Path parameters

FieldTypeDescription
idrequiredstringApplication UUID or human `app_id`, for example `APP-1042`.

Response · 200

FieldTypeDescription
dataobject
  data.deletedboolean

Errors

FieldTypeDescription
403errorThe key is valid but lacks the scope this endpoint requires.
404errorNot found, or belongs to another organization.

On this page