Documentation
Documentation
https://www.kita.ai/documentation
APIReference
https://github.com/Kita-Technologies/kita-api-examples/blob/main/API.md
openapi: 3.1.0
info:
title: Kita Capture Applications Processing API
version: v1
summary: Document intelligence — extract structured, validated, fraud-checked data from bank statements, payslips, IDs, credit reports and 30+ other document types.
description: 'Kita Capture turns scanned or photographed financial and identity documents into clean
JSON — transactions, metadata, metrics, and fraud signals. Upload a file (multipart or
base64), submit a URL, or batch up to 100 documents, then poll for results or receive an
HMAC-signed webhook.
Authentication uses an organization API key prefixed `kita_prod_` sent as
`Authorization: Bearer <key>`. Errors return `{ "error": ..., "message": ... }`.
Rate limiting is per organization; 429 responses carry a `Retry-After` header.
NOTE: Kita does not publish a machine-readable OpenAPI description. This document was
generated by the API Evangelist enrichment pipeline from Kita''s own published API
documentation (shipped verbatim inside the official `kita-docs-mcp` npm package and
served at https://www.kita.ai/documentation). Only operations, parameters, fields and
status codes that Kita documents are represented here.
'
contact:
name: Kita Support
email: support@kita.ai
url: https://www.kita.ai/documentation
x-source:
- https://www.kita.ai/documentation
- https://unpkg.com/kita-docs-mcp@0.4.0/docs/Documentation.md
x-generated-by: api-evangelist-enrichment-pipeline
x-generated: '2026-07-19'
servers:
- url: https://portal.usekita.com
description: Production (default; override with the KITA_API_URL environment variable)
security:
- BearerAuth: []
tags:
- name: Processing
description: Submit documents for extraction.
paths:
/api/process-async:
post:
tags:
- Processing
operationId: processDocumentAsync
summary: Submit a document for extraction
description: 'Accepts two upload modes on the same URL. Multipart sends the raw `file` plus a
`document_type`. JSON sends `file_base64` (a data-URI prefix is accepted and stripped)
plus `filename` and `document_type`. Returns a `documentId` to poll. An optional
one-shot `webhook_url` delivers the result instead of polling.
'
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- file
- document_type
properties:
file:
type: string
format: binary
description: PDF, PNG, JPG, TIFF or BMP.
document_type:
$ref: '#/components/schemas/DocumentType'
password:
type: string
description: PDF password if the file is encrypted.
webhook_url:
type: string
format: uri
description: One-shot delivery URL for this upload.
application/json:
schema:
type: object
required:
- file_base64
- filename
- document_type
properties:
file_base64:
type: string
description: Base64-encoded file contents. A `data:` URI prefix is accepted and stripped automatically.
filename:
type: string
description: Filename with extension; the extension drives file-type validation.
document_type:
$ref: '#/components/schemas/DocumentType'
password:
type: string
webhook_url:
type: string
format: uri
example:
file_base64: JVBERi0xLjQg...
filename: statement.pdf
document_type: bank_statement
responses:
'200':
description: Document queued for processing.
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessAccepted'
example:
documentId: 12345
status: pending
message: Document queued for processing
'202':
description: Accepted — poll for results.
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessAccepted'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/ServerError'
components:
responses:
Forbidden:
description: Upgrade required, or the document type is not enabled for this organization.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
RateLimited:
description: Rate limited. Wait and retry; check the `Retry-After` header.
headers:
Retry-After:
description: Seconds to wait before retrying.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Invalid or missing API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad request — check the request body and parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: Bad Request
message: documents array is required and must not be empty
ServerError:
description: Server error — retry after a brief delay.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
properties:
error:
type: string
description: Short error label.
message:
type: string
description: Human-readable description.
ProcessAccepted:
type: object
properties:
documentId:
type: integer
status:
$ref: '#/components/schemas/JobStatus'
message:
type: string
JobStatus:
type: string
enum:
- pending
- processing
- completed
- failed
DocumentType:
type: string
description: 'Document type slug. Case-insensitive. Three types run the legacy stage-config pipeline
(`bank_statement`, `audited_financial_statement`, `general_information_sheet`); the rest
run the universal vocabulary-driven pipeline. Slugs without a dedicated vocabulary fall
back to the `other_document` extractor.
'
enum:
- bank_statement
- audited_financial_statement
- general_information_sheet
- bank_certificate
- credit_card_statement
- loan_statement
- mobile_banking_screenshot
- passbook
- payslip
- business_financials
- bill
- receipt
- remittance_slip
- sales_invoice
- government_id
- certificate_of_employment
- barangay_clearance
- credit_report
- slik
- acta_constitutiva
- mx_legal
- indo_legal
- combined_document
- other_document
- bir_2303
- bir_2307
- tin_id
- secretarys_certificate
- business_registration_dti
- business_registration_sec
- certificate_of_incorporation
- business_permit
- mayors_permit
- purchase_order
- bill_of_lading
- proof_of_billing
- land_title
- vehicle_registration
- insurance_policy
- loan_agreement
- income_tax_return
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: 'Organization API key prefixed `kita_prod_`, issued from the Kita dashboard at
https://portal.usekita.com and sent as `Authorization: Bearer <key>`.
'