د اوبو میټر OCR API
د اوبو میټر OCR API. دا پاڼه هغه عامه HTTP API ثبتوی چې د ویب سایټ شاته برخه کې د دریمې ډلې ادغام لپاره افشا شوی.
له اصلی اپلوډ څخه پیل وکړئ
لومړی ثبت شئ، خپل د اوبو میټر عکس په کاری ځای کې اپلوډ کړئ، او بیا کله چې د ادغام لپاره چمتو یاست، API کیلی جوړ کړئ.
عمومی کتنه
- د ټولو بهرنیو ادغامونو لپاره د ویب پاڼې شاته برخه وکاروئ.
- له دریمې ډلې پروګرامونو څخه مستقیم waterMeterAi مه زنګوه.
- خلاص API د ویب پورټل په څېر کاروونکی، کوټا، کش، دندو، او د تفتیش قواعد شریکوی.
- شاته برخه د ځای پر ځای کولو د ترتیب له مخې بېلابېل ښکته AI خدمتونه هدف ګرځولی شي.
- د دندو ځوابونه اوس یو عمومي result_summary شی لري، څو بېلابېل خدمتونه د پایلو بېلابېل ډولونه وښيي.
تصدیق
- په ویب سایټ کې ننوتل وکړئ او د API کیلی پاڼه کې د API کیلی جوړ کړئ.
- بشپړ API یوازې یو ځل ښودل کیږی کله چې جوړ شی.
- د هرې غوښتنې لپاره کیلي په Authorization سرلیک کې واستوئ.
Authorization: Bearer wm_xxxxxxxxxxxxxxxxx
API Key Permissions and Limits
- Each API key can have independent scopes, an IPv4/IPv6/CIDR allowlist, a total requests-per-minute limit, and a task submissions-per-minute limit.
- A valid key without the required scope or outside its source IP allowlist returns 403.
- Every valid-key request consumes the total request limit, including requests rejected by scope, IP, or submission policy.
- Batch requests consume one total request unit and one submission unit per uploaded file.
- Rate-limited responses return 429 with Retry-After and both X-RateLimit-* and X-SubmissionLimit-* headers.
- Task creation also has a per-key concurrency limit and returns X-ConcurrencyLimit-* headers; a concurrency rejection uses 429.
- For batch concurrency, only files that pass image validation reserve slots, and success headers report the actual active slots after task binding.
Retry-After: 30 X-RateLimit-Limit: 60 X-RateLimit-Remaining: 59 X-RateLimit-Reset: 1785902400 X-SubmissionLimit-Limit: 10 X-SubmissionLimit-Remaining: 9 X-ConcurrencyLimit-Limit: 3 X-ConcurrencyLimit-Active: 1 X-ConcurrencyLimit-Remaining: 2
د اپلوډ قواعد
- اعظمی فایل اندازه: د هر عکس لپاره 20MB.
- ملاتړ شوی فورمټونه: JPEG، PNG، WEBP.
- شاته برخه اصلی فایل منځپانګه تاییدوی، نه یوازې د فایل پسوند.
د اپلوډ اندازه پلی کول
- بیچ اپلوډونه په ډیفالټ ډول تر 8 انځورونو پورې منی، د هر عکس لپاره 20MB حد او 20MB ټولیز فایل منځپانګې محدودیت.
- یو فایل یا بیچ چې له حد څخه زیات شی، د عکس اعتبار یا دندې جوړولو مخکې 413 بیرته راولی؛ هیڅ جزوی ډله نه جوړېږی.
- شاته برخه د ترلاسه شوی بایټ شمېر عملی کوی حتی کله چې Content-Length نشته، یا د برخې انتقال کارول کېږی.
دندې حالتونه
- queued: منل شوی او د AI پروسس ته انتظار باسي.
- running: اوس پروسس کېږي، یا ډیسپیچر ته سپارل شوی او د وروستۍ پایلې حالت یې په دورهيي ډول کتل کېږي.
- batch_waiting_ai: د ډلې هر توکی د دې انتظار کوی چې AI خدمت بېرته آنلاین شی.
- batch_running: بیچ لا دمخه ډیسپیچر ته سپارل شوی او لا هم پروسس کوی.
- done: په بریالیتوب پای ته ورسېد.
- failed: پروسس ناکام شو.
- waiting_ai: تر هغه په قطار کې پاتې کېږي چې AI خدمت بېرته انلاین شي، بیا په اوتومات ډول دوام کوي.
د پایلو سرچینې
- fresh: د AI له نوې ځغلونې څخه جوړ شوی.
- cached_exact: د اوسنی AI نسخه کش سره سمون خوری.
- cached_stale: AI آفلاین شو، وروستۍ کش شوې پایله بېرته راغله.
- pending: تر اوسه وروستۍ پایله نشته.
- failed: دنده ناکامه شوه.
- کله چې کومه دنده لا نه وی بشپړه شوې، error_message وګورئ چې د بیا هڅې یا انتظار دلیل شته.
کوټه او بیلینګ
- `GET /api/open/quota` وکاروئ مخکې له دې چې لوی کاری بارونه وړاندې کړئ که ستاسو ادغام د کوټا ناکامیو مخنیوی لپاره اړتیا لری.
- یوازې `fresh` AI منډې کوټا مصرفوی.
- `cached_exact`، `cached_stale`، `pending`، او `failed` پایلې کوټه نه مصرفوی.
- وړیا حسابونه لومړی ورځنی کوټه کاروی. تادیه شوی حسابونه فعاله دوره ای کوټا پیکجونه کاروی، بیا د بیک اینډ پالیسۍ له مخې موقتی یا ثابت کوټا کاروی.
- کله چې کوټا ختمه شی، دنده سپارل بیرته `429` او د نوې دندې پر ځای د تېروتنې پیغام شامل کوی.
کیش او د پایلې تازگی
- بیک اینډ بریالۍ پایلې د انځور هاش او AI نسخې له مخې کیش کوي، او د ښکته خدمت namespace هم پکې شاملوي.
- `cached_exact` معنا لری چې هماغه انځور لا دمخه د اوسنی AI نسخې لپاره بریالی نتیجه لری، نو نوې AI ته اړتیا نه وه.
- `cached_stale` معنا لری چې AI خدمت آفلاین دی او شاته برخه یې وروستۍ موجوده تاریخی نتیجه بېرته راولی.
- کله چې د `is_latest_ai_version` ارزښت false وي، پایله د کارېدونکو خو بیاکتنې ته اړتیا لرونکو تاریخي معلوماتو په توګه وساتئ.
- د هرې `done` کوټه مه فرض کوئ؛ وګوره `result_source`.
Task completion webhooks
- Send signed task completion events to your HTTPS endpoint with automatic retries.
- This API key is inactive. Existing records remain available, but new, enabled, test, and secret-rotation operations are blocked.
X-WaterMeter-Webhook-Id: whev_new_event X-WaterMeter-Webhook-Replay-Of: whev_original_event replay_of_event_id: whev_original_event blocked endpoint management: HTTP 409 canceled delivery status: canceled
GET/api/open/quota
/api/open/quotaاوسنی کوټا او پاتې کارونه ولولئ.
د غوښتنې مثال
curl -X GET "https://watermeterai.com/api/open/quota" \ -H "Authorization: Bearer wm_xxxxxxxxxxxxxxxxx"
د ځواب مثال
{
"ok": true,
"email": "[email protected]",
"quota": {
"account_type": "free",
"daily_limit": 20,
"used": 3,
"remaining": 17,
"day_tag": "2026-06-01",
"is_unlimited": false,
"monthly_remaining": 0,
"monthly_bonus_remaining": 0,
"fixed_remaining": 0,
"nearest_expire_at": null,
"quota_summary_text": "Free daily quota: 3/20 used today. Remaining: 17."
}
}GET/api/open/ai-status
/api/open/ai-statusد دندې سپارلو او کیش شوو پایلو ته د بېرته تګ لپاره د عامه خدمت حالت ولولئ.
د غوښتنې مثال
curl -X GET "https://watermeterai.com/api/open/ai-status" \ -H "Authorization: Bearer wm_xxxxxxxxxxxxxxxxx"
د ځواب مثال
{
"ok": true,
"is_online": true,
"busy": false,
"active_jobs": 0,
"public_status": "online",
"public_status_label": "online",
"public_status_reason": "ready",
"accepts_new_tasks": true,
"can_return_cached_result": true,
"queue_state": "idle",
"queue_count": 0,
"current_ai_version": "water_v2:wm-ai-v2-2026-06-01",
"last_checked_at": "2026-06-01T06:15:30Z"
}POST/api/open/tasks
/api/open/tasksیوه انځور اپلوډ کړه او یوه دنده جوړه کړه.
د غوښتنې مثال
curl -X POST "https://watermeterai.com/api/open/tasks" \ -H "Authorization: Bearer wm_xxxxxxxxxxxxxxxxx" \ -F "file=@D:\data\meter_001.jpg"
د ځواب مثال
{
"ok": true,
"task_id": "8e6c4d1f8f8348c0bc53e2e39d2dc111",
"status": "queued",
"result_source": "pending",
"visibility": "private",
"ai_online": true,
"is_latest_ai_version": false,
"final_reading": "-",
"result_summary": {
"resultKind": "unknown",
"primaryLabel": "Result",
"primaryValue": "-",
"secondaryLabel": "Detail",
"secondaryValue": "-",
"summaryText": "No result is available yet."
},
"error_message": "",
"created_at": "2026-06-01T06:16:10Z"
}GET/api/open/tasks/{task_id}
/api/open/tasks/{task_id}یوه دنده حالت او وروستۍ لوستنه.
د غوښتنې مثال
curl -X GET "https://watermeterai.com/api/open/tasks/task_a" \ -H "Authorization: Bearer wm_xxxxxxxxxxxxxxxxx"
د ځواب مثال
{
"ok": true,
"task_id": "8e6c4d1f8f8348c0bc53e2e39d2dc111",
"status": "done",
"result_source": "fresh",
"ai_online": true,
"is_latest_ai_version": true,
"final_reading": "123.45",
"meter_type": "pointer",
"success": "yes",
"result_summary": {
"resultKind": "water_meter",
"primaryLabel": "Final Reading",
"primaryValue": "123.45",
"secondaryLabel": "Meter Type",
"secondaryValue": "pointer",
"summaryText": "Water meter recognition finished."
},
"error_message": "",
"created_at": "2026-06-01T06:16:10Z"
}GET/api/open/tasks
/api/open/tasksوروستی دندې ولولئ چې د اوسنی API کیلی کارونکی ملکیت دی.
د غوښتنې مثال
curl -X GET "https://watermeterai.com/api/open/tasks?limit=20" \ -H "Authorization: Bearer wm_xxxxxxxxxxxxxxxxx"
د ځواب مثال
{
"ok": true,
"items": [
{
"task_id": "8e6c4d1f8f8348c0bc53e2e39d2dc111",
"status": "done",
"result_source": "cached_exact",
"final_reading": "123.45",
"meter_type": "pointer",
"success": "yes",
"result_summary": {},
"ai_online": true,
"is_latest_ai_version": true,
"created_at": "2026-06-01T06:16:10Z",
"error_message": ""
}
]
}POST/api/open/batches
/api/open/batchesپه یوه غوښتنه کې څو انځورونه اپلوډ کړئ.
د غوښتنې مثال
curl -X POST "https://watermeterai.com/api/open/batches" \ -H "Authorization: Bearer wm_xxxxxxxxxxxxxxxxx" \ -F "files=@D:\data\meter_001.jpg" \ -F "files=@D:\data\meter_002.jpg"
د ځواب مثال
{
"ok": true,
"batch_id": "5a14f4e5f6d34fdabce00e62c0dd0001",
"status": "batch_running",
"total_count": 2,
"done_count": 0,
"failed_count": 0,
"pending_count": 2,
"items": [
{
"index": 0,
"file_name": "meter_001.jpg",
"task_id": "task_a",
"status": "queued",
"result_source": "pending",
"final_reading": "-",
"failure_kind": "",
"error_message": ""
},
{
"index": 1,
"file_name": "meter_002.jpg",
"task_id": "task_b",
"status": "queued",
"result_source": "pending",
"final_reading": "-",
"failure_kind": "",
"error_message": ""
}
]
}GET/api/open/batches/{batch_id}
/api/open/batches/{batch_id}د بیچ پرمختګ او د هر فایل دندې حالتونه ولولئ.
د غوښتنې مثال
curl -X GET "https://watermeterai.com/api/open/batches/5a14f4e5f6d34fdabce00e62c0dd0001" \ -H "Authorization: Bearer wm_xxxxxxxxxxxxxxxxx"
د ځواب مثال
{
"ok": true,
"batch_id": "5a14f4e5f6d34fdabce00e62c0dd0001",
"status": "batch_done",
"total_count": 2,
"done_count": 2,
"failed_count": 0,
"pending_count": 0,
"items": [
{
"index": 0,
"file_name": "meter_001.jpg",
"task_id": "task_a",
"status": "done",
"result_source": "fresh",
"final_reading": "123.45",
"failure_kind": "",
"error_message": ""
},
{
"index": 1,
"file_name": "meter_002.jpg",
"task_id": "task_b",
"status": "done",
"result_source": "cached_exact",
"final_reading": "456.78",
"failure_kind": "",
"error_message": ""
}
]
}سپارښتل شوی جریان
- `GET /api/open/ai-status` مخکې له دې چې لوی کاری بار واستول شی، وګوره.
- `task_id` یا `batch_id` سمدستی وروسته له سپارلو په خپل سیسټم کې ذخیره کړئ.
- `queued`، `running`، `waiting_ai`، `batch_waiting_ai` او `batch_running` غیر وروستي حالتونه وګڼئ او د حالت دورهيي کتنه روانه وساتئ.
- کله چې بیک اینډ ته د شبکې لاره ډېره ځنډ ولري او ځای پر ځای شوی خدمت د بیچ حالت ملاتړ کوي، د بیچ غوښتنې وکاروئ.
- د بیچ غوښتنې اوس مهال د `webBackend -> dispatchCenter -> waterMeterAi` له لارې تېرېږي.
- `batch_waiting_ai` معنی لری چې هر توکی لا هم د AI خدمت ته انتظار کوی، لا هم فعاله نه ده.
- کله چې ځای پر ځای شوی خدمت `CAD` وي، اوس `POST /api/open/tasks` وکاروئ او بیچ اپلوډ نشت وګڼئ.
تېروتنې یادښتونه
- 400: غوښتنه ناسمه ده، یا ځای پر ځای شوی خدمت د بیچ اپلوډ ملاتړ نه کوي.
- 401: نشته، ناسم، ختم شوی، یا غیر فعال API کیلی.
- 403: the user account is not active, the key lacks the required scope, or the source IP is outside the key allowlist.
- 404: ټاسک یا بیچ نه موندل شوی، یا د اوسنی کارونکی ملکیت نه دی.
- 413: فایل ډېر لوی دی.
- 415: بې ملاتړ د انځور ډول یا ناسم انځور منځپانګې.
- 429: quota exhausted or the API key request, submission, or concurrency limit was exceeded.
400 بیچ اپلوډ شتون نه لري
{
"detail": "batch upload is not supported for business: cax"
}401 کیلی ورک یا ناسم API
{
"ok": false,
"error": "unauthorized",
"message": "Missing or invalid API key."
}413 فایل ډېر لوی دی
{
"ok": false,
"error": "file_too_large",
"message": "Maximum file size is 20MB."
}429 کوټه ختمه شوه
{
"ok": false,
"error": "quota_exhausted",
"message": "Quota exhausted.",
"quota": {
"remaining": 0,
"quota_summary_text": "Free daily quota: 20/20 used today. Remaining: 0."
}
}چمتو یې چې د کاری بهیر ازموینه وکړې؟
د لومړی عکس لپاره د ویب ورک اسپیس وکاروئ، بیا کله چې نتیجه فورمټ ستاسو سیسټم ته برابر شی، API کیلی ته لاړ شئ.