PDF Scanner & Editor by Kaagaz 数据 API
PDF Scanner & Editor by Kaagaz 是面向印度的拍照转 PDF 应用,其私有 API 覆盖登录后的保险库,而不仅是端侧扫描。在 /v1/auth/otp/request 完成 OTP 后,GET /v1/account/quota 返回 maxSize、currentSize、numOfDocs 与嵌套 userPlan;GET /v1/vault/folders 恢复恢复任务下载的文件夹树。
分享、检索与资金走同一会话:POST /v1/shares/create 签发有时限 URL,POST /v1/ocr/pages 存储页文本以便跨设备搜索,GET /v1/referrals/wallet 暴露推荐 totalPoints,GET /v1/billing/plans 与 POST /v1/billing/orders 为 Premium 云配额打开 Razorpay 或 Play Billing。Kaagaz AI 把扫描 PDF 变成由 /v1/assistant/credits 门控的 POST /v1/assistant/messages 回答。
PDF Scanner & Editor by Kaagaz 是 Kaagaz Apps 面向印度的拍照转 PDF 超级应用:扫描、OCR 检索、电子签名、分享,并把文档备份到印度境内的第一方保险库。手机号 OTP(/v1/auth/otp/request)登录后客户端保存 authorization 令牌,再从 /v1/account/quota 读取配额与套餐(maxSize、currentSize、userPlan、aiConsent),从 /v1/vault/folders 恢复文件夹树,签发分享链接、同步 OCR 文本、在 /v1/assistant/messages 消耗 Kaagaz AI 积分,并通过 /v1/referrals/wallet 兑现推荐积分。高级套餐由 /v1/billing/plans 报价,经 Razorpay 或 Play Billing 在 /v1/billing/orders 下单。
应用截图
API 端点一览
发送手机 OTP
POST
/v1/auth/otp/requestopendata从登录页启动 Kaagaz 云登录:向随后由验证页确认的手机号发送短信 OTP。
认证方式: 无需登录。请求体以印度手机号识别用户;同一登录页可选 Truecaller SDK。
- mobile
- response
- exists
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/auth/otp/request HTTP/1.1 Content-Type: application/json { "mobile": 9876543210 }{ "response": "OTP_SENT", "exists": true }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据手机 OTP 登录页重建响应模型携带 response 与 exists
核验 OTP 并签发会话
POST
/v1/auth/otp/confirmopendata在验证页确认 OTP,返回会话令牌以及账户获赠的免费云配额(spaceAlloted,通常 100 MB)。
认证方式: 无需登录。请求体携带短信 OTP 与登录页手机号。响应 authorization 在后续 Kaagaz 调用中作为 Authorization 请求头发送。
- mobile
- otp
- newUser
- spaceAlloted
- authorization
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/auth/otp/confirm HTTP/1.1 Content-Type: application/json { "mobile": 9876543210, "otp": "482193" }{ "newUser": false, "spaceAlloted": 104857600, "authorization": "kgz_live_8f3c1d2e7a9b4c5e" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据 OTP 验证页重建会话载荷含 newUser、spaceAlloted 与 authorization
读取账户配额与套餐
GET
/v1/account/quotaopendata返回首页与设置页使用的已登录保险库快照:已用/获配云字节、文档数、广告/推荐开关、AI 同意,以及嵌套的 UserPlan(名称、到期、总限额、积分)。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- id
- obfuscatedId
- maxSize
- currentSize
- numOfDocs
- exists
- showAds
- showReferral
- everPremium
- recurring
- aiConsent
- userPlan
- name
- expiry
- overallLimit
- topPlan
- totalPoints
- trial
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/account/quota HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e{ "id": 18422109, "obfuscatedId": "usr_8f3c1d2e", "maxSize": 1073741824, "currentSize": 248576000, "numOfDocs": 142, "exists": true, "showAds": false, "showReferral": true, "everPremium": true, "recurring": true, "aiConsent": true, "userPlan": { "name": "Kaagaz Premium", "expiry": 1767225600000, "overallLimit": 1073741824, "topPlan": true, "totalPoints": 450, "trial": false, "recentlyActivated": false, "userDurationOnKaagaz": 86400000 } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据首页与设置页配额快照重建与高级状态徽章上的 UserPlan 字段一致
获取用户资料
GET
/v1/vault/ownerosint读取资料页记录:显示名、邮箱、手机号、WhatsApp 同意以及资料补全底部弹层开关。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- name
- mobile
- whatsappConsent
- shouldShowProfileBottomSheet
- elements
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/vault/owner HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e{ "name": "Anita Sharma", "email": "[email protected]", "mobile": 9876543210, "whatsappConsent": true, "shouldShowProfileBottomSheet": false, "elements": [] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据资料页重建字段 name、email、mobile、whatsappConsent 与可编辑资料表单一致
恢复云文档保险库
GET
/v1/vault/foldersopendata返回恢复任务使用的云保险库:按用户的文件夹树(显示名)、页面文件(key、size、sequence、ocrBackup)以及对照 /v1/account/quota 配额的 totalPages。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- userId
- totalPages
- folders
- name
- givenName
- createDate
- modiDate
- lastAccess
- files
- key
- size
- sequence
- ocrBackup
- link
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/vault/folders HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e{ "userId": 18422109, "totalPages": 36, "folders": [ { "name": "folder_20260901_1015", "givenName": "GST invoice Sep", "createDate": "2026-09-01T10:15:00.000+05:30", "modiDate": "2026-09-12T18:40:00.000+05:30", "lastAccess": "2026-09-20T09:02:00.000+05:30", "files": [ { "name": "page_001.jpg", "key": "18422109/folder_20260901_1015/page_001.jpg", "size": 842113, "sequence": 1, "ocrBackup": true, "link": "/obj/18422109/folder_20260901_1015/page_001.jpg" } ], "tag": [] } ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据云恢复与文档列表流程重建文件夹与文件字段与保险库浏览器一致(givenName、sequence、ocrBackup)
创建文档分享链接
POST
/v1/shares/createopendata为扫描文件夹签发有时限的公开 URL(Link.link、Link.expires),无需把文件导出设备即可分享 PDF。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- folderName
- extension
- link
- expires
- error
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/shares/create HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e Content-Type: application/json { "folderName": "folder_20260901_1015", "extension": 7 }{ "link": "/s/a8f3c1d2", "expires": 1761955200000, "error": null }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据扫描文件夹上的分享链接创建流程重建响应携带 link、expires 与 error
列出有效分享链接
GET
/v1/sharesopendata列出该账户已签发的全部有效分享,含 folderName、createdAt/expiresAt 与剩余延期天数——分享管理界面与后台分享链接刷新任务。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- link
- folderName
- createdAt
- expiresAt
- extension
- error
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/shares HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e[ { "link": "/s/a8f3c1d2", "folderName": "GST invoice Sep", "createdAt": "2026-09-12T18:41:00.000+05:30", "expiresAt": "2026-10-12T18:41:00.000+05:30", "extension": 7, "error": null } ]依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据分享管理界面重建每行携带 folderName、createdAt、expiresAt 与 extension
备份单页 OCR 文本
POST
/v1/ocr/pagesopendata上传一页扫描件的端侧 OCR 索引(纯文本加序列化块坐标),以便跨设备重建检索。配套恢复提交一批 page id,返回 fileList。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- ocrText
- serializedText
- folderName
- fileName
- pageId
- response
- exists
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/ocr/pages HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e Content-Type: application/json { "ocrText": "GSTIN 07AABCU9603R1ZX Invoice No. INV-2041", "serializedText": "{\"blocks\":[{\"text\":\"GSTIN 07AABCU9603R1ZX\"}]}", "folderName": "folder_20260901_1015", "fileName": "page_001.jpg", "pageId": 900112 }{ "response": "OK", "exists": true }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据支撑跨设备检索的逐页 OCR 备份重建载荷字段 ocrText、serializedText、folderName、fileName 与 pageId
读取 AI / 工具积分余额
GET
/v1/credits/balanceopenfinance返回剩余积分徽章与 PDF 工具付费墙使用的整数积分余额。流水列出同一账户的积分交易。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- credits-balance
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/credits/balance HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e42依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据 AI 剩余积分徽章重建整数余额门控 PDF 工具付费墙
读取推荐钱包
GET
/v1/referrals/walletopenfinance返回钱包流水页背后的推荐积分账本:累计 totalPoints、可兑换 saleItems(code、points、text)与 walletHistory 流水(cat、rewardType、rewardCreditTime)。消耗路径用积分兑换目录商品。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- totalPoints
- saleItems
- code
- image
- points
- text
- desc
- walletHistory
- id
- cat
- rewardType
- rewardCreditTime
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/referrals/wallet HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e{ "totalPoints": 450, "saleItems": [ { "code": "PREMIUM_1M", "image": "/ads/kaagaz-premium.jpg", "points": 400, "text": "1 month Premium", "desc": "Redeem 400 points for a month of Kaagaz Premium" } ], "walletHistory": [ { "id": "wh_9012", "cat": "REFERRAL", "points": 50, "text": "Friend joined Kaagaz", "rewardType": "CREDIT", "rewardCreditTime": "2026-09-18T11:20:00.000+05:30" } ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据推荐钱包流水页重建账本字段 totalPoints、saleItems 与 walletHistory
获取推荐码与邀请记录
GET
/v1/referrals/codeopendata加载推荐分享卡片:个人推荐 url,以及具名被邀请人与每次转化计入的积分。权益文案为配套的活动条款读取。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- url
- totalPoints
- history
- name
- points
- referralTime
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/referrals/code HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e{ "url": "/r/ANITA50", "totalPoints": 450, "history": [ { "name": "Ravi Kumar", "points": 50, "referralTime": "2026-09-18T11:20:00.000+05:30" } ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据推荐分享卡片重建字段 url、totalPoints 与被邀请人记录(name、points、referralTime)
列出高级套餐
GET
/v1/billing/plansopenfinance返回付费墙目录:各套餐 INR 现价/原价、Razorpay 订阅码、Play 商品 id、trialValid,以及是否隐藏 Razorpay 改走 Play Billing。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。查询参数在 Play Billing 与 Razorpay、一次付与订阅目录之间切换。
- title
- subHeading
- buttonText
- hideRazorPay
- launchPlayBilling
- trialValid
- plans
- name
- price
- actualPrice
- oldPrice
- currency
- validity
- offer
- razorPaySubscriptionCode
- playSubscriptionId
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/billing/plans HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e{ "title": "Go Premium", "subHeading": "Remove ads, unlock 1 GB cloud", "buttonText": "Continue", "hideRazorPay": false, "launchPlayBilling": true, "trialValid": true, "plans": [ { "name": "Yearly", "price": "599", "actualPrice": "999", "oldPrice": "999", "currency": "₹", "validity": "12 months", "offer": "40% off", "razorPaySubscriptionCode": "plan_KaagazYearly", "playSubscriptionId": "kaagaz_premium_yearly", "selected": true } ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据 Premium 付费墙目录重建套餐行携带 price、razorPaySubscriptionCode 与 playSubscriptionId
创建 Razorpay / Play 订单
POST
/v1/billing/ordersopenfinance开立可支付订单,其 orderId/amount/subscriptionId 供 Razorpay 结账或 Play Billing 使用。状态在配套的支付状态路由轮询;确认提交 paymentId、orderId、signature(Razorpay)或 purchaseToken(Play)。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- planName
- razorPaySubscriptionCode
- playSubscriptionId
- orderId
- amount
- subscriptionId
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/billing/orders HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e Content-Type: application/json { "planName": "Yearly", "razorPaySubscriptionCode": "plan_KaagazYearly", "playSubscriptionId": "kaagaz_premium_yearly" }{ "orderId": "order_N8f3c1d2e7a9", "amount": 59900, "subscriptionId": "sub_KaagazYearly_001" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据打开 Razorpay 或 Play Billing 的 Premium 结账流程重建订单载荷返回 orderId、amount 与 subscriptionId
就 PDF 与 Kaagaz AI 对话
POST
/v1/assistant/messagesopendata在扫描 PDF 上跑一轮 Kaagaz AI:客户端提交 userChat 与 Bot 会话(assistId、fileId、threadId、vectorStore),返回 botChat、自动摘要、建议文件夹名 suggestedName 与追问。配套的摘要与对话响应调用完成同一助手线程。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。消耗 /v1/assistant/credits 跟踪的 AI 积分。
- userChat
- botChat
- summary
- suggestedName
- questions
- bot
- assistId
- fileId
- fileName
- fileType
- origFileName
- pdfPath
- sessId
- threadId
- runId
- vectorStore
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/assistant/messages HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e Content-Type: application/json { "userChat": "What is the GSTIN and invoice total?", "bot": { "assistId": "asst_kaagaz_pdf", "fileId": "file_9c1", "fileName": "gst_invoice_sep.pdf", "fileType": "pdf", "origFileName": "GST invoice Sep.pdf", "pdfPath": "18422109/folder_20260901_1015/gst_invoice_sep.pdf", "sessId": "sess_44ab", "threadId": "thread_7e2", "runId": "run_01", "vectorStore": "vs_kaagaz_18422109" } }{ "botChat": "GSTIN 07AABCU9603R1ZX. Invoice total is ₹12,480 including 18% GST.", "summary": "September GST invoice, total ₹12,480.", "suggestedName": "GST invoice Sep 2026", "questions": [ "Who is the vendor?", "When is payment due?" ], "userChat": "What is the GSTIN and invoice total?", "bot": { "assistId": "asst_kaagaz_pdf", "fileId": "file_9c1", "threadId": "thread_7e2", "runId": "run_02", "sessId": "sess_44ab", "vectorStore": "vs_kaagaz_18422109", "fileName": "gst_invoice_sep.pdf", "fileType": "pdf", "origFileName": "GST invoice Sep.pdf", "pdfPath": "18422109/folder_20260901_1015/gst_invoice_sep.pdf" } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用内 PDF 助手对话重建回合载荷携带 userChat 与 Bot 会话 id(assistId、fileId、threadId、vectorStore)
读取剩余 Kaagaz AI 积分
GET
/v1/assistant/creditsopenfinance返回积分提示条上的剩余 Kaagaz AI 积分数(AiCredit.value),/v1/assistant/messages 运行前会读取。
认证方式: /v1/auth/otp/confirm 签发的 Authorization 令牌。
- response
- value
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/assistant/credits HTTP/1.1 Authorization: kgz_live_8f3c1d2e7a9b4c5e{ "response": "OK", "value": 12 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据对话前的 AI 积分提示条重建AiCredit 字段 response、value
数据类别
- 身份
- 云存储
- 文档分享
- OCR 索引
- 积分
- 推荐
- 订阅
- AI 对话
数据使用场景与案例
印度托管的文档保险库同步
以同一 Kaagaz 账户登录的档案机器人可轮询 GET /v1/account/quota 读取 maxSize/currentSize/numOfDocs,再拉取 GET /v1/vault/folders 清点每个文件夹的 givenName、页面 key 与 ocrBackup 标记——用于 GST 发票归档而无需刮取相册。
分享链接到期监控
合规任务列出 GET /v1/shares 并把 expiresAt 与策略对比;仍有延期天数的链接可续期,过期的 GST/KYC 包从同一分享管理面撤销。
推荐积分与高级套餐对账
财务栈读取 GET /v1/referrals/wallet(totalPoints、walletHistory)与 GET /v1/referrals/code(被邀请人名、积分、referralTime),再把 POST /v1/billing/orders 的 orderId/amount/subscriptionId 与结账后的 Razorpay 或 Play 收据对齐。
扫描 PDF 上的发票问答
OCR 在 POST /v1/ocr/pages 备份后,助手把 Bot 会话(fileId、threadId、vectorStore)发到 POST /v1/assistant/messages 并保存 botChat 与 summary;GET /v1/assistant/credits.value 门控剩余轮次。
常见问题
Kaagaz Scanner 如何鉴权云保险库?
用户在登录页输入手机号;POST /v1/auth/otp/request 下发短信验证码,POST /v1/auth/otp/confirm 返回 authorization、newUser 与 spaceAlloted(免费 100 MB 配额)。之后对账户、保险库、账单与 OCR 路由的调用将该令牌作为 Authorization 发送。同一登录页可选 Truecaller。
备份 API 返回哪些文档数据?
GET /v1/vault/folders 返回 userId、totalPages 与 folders 数组。每个文件夹含 name、givenName、createDate/modiDate/lastAccess,以及带 key、size、sequence、ocrBackup 与下载链接的 files 列表。门控保险库的配额在 GET /v1/account/quota 的 maxSize 与 currentSize。
哪些端点暴露积分、推荐或订阅?
GET /v1/credits/balance 与 GET /v1/assistant/credits.value 是可消耗计数。GET /v1/referrals/wallet 返回 totalPoints、saleItems 与 walletHistory;GET /v1/referrals/code 补充个人 url 与被邀请人记录。高级目录是 GET /v1/billing/plans(price、razorPaySubscriptionCode、playSubscriptionId);POST /v1/billing/orders 创建可支付 orderId。
这是公开的开发者 API 吗?
不是。这些是 Android 客户端在 OTP 登录后调用的第一方端点。这里记录路径与字段名,是为了让集成方认出应用已经展示的同一份数据——并非开放的开发者计划。
相关主题
- Kaagaz 扫描器 API
- Kaagaz PDF 云备份
- Kaagaz OCR 备份
- Kaagaz 推荐钱包
- Kaagaz AI 积分
- Kaagaz Razorpay 套餐
- 印度 PDF 扫描数据 API
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业