API Documentation

API HUB — REST API সার্ভিস। নিচে প্রতিটি API-র আলাদা documentation, request example এবং response format দেখানো হয়েছে।

সব API এক নজরে

 Successful result হলেই charge কাটা হয়। Result না পেলে কোনো charge নেই।

Authentication

সব API request-এ একটি valid API key লাগবে। Key পেতে Register করুন।

Option 1 — Header (Recommended)
HTTP Header
X-API-Key: vbn_your_api_key_here
Option 2 — Query Param
URL
?api_key=vbn_your_api_key_here
Base URL
Endpoint Prefix
https://my-api.top/api/v1

Land Tax Dakhila Finder

GET https://my-api.top/api/v1/find_dakhila

Find Land Tax Dakhila PDFs from a portal URL. Returns PDF download links when dakhila records are found.

৳150.00/call
Parameters
Name Type Required Description
input string ✓ Required The portal URL to search for dakhila
api_key string ✓ Yes* Your API key (*or pass via X-API-Key header)
Request Examples
cURL / Shell
curl --location 'https://my-api.top/api/v1/find_dakhila?input=YOUR_VALUE' \
--header 'X-API-Key: vbn_your_api_key_here'
HTTP Raw
GET /api/v1/find_dakhila?input=YOUR_VALUE HTTP/1.1
Host: my-api.top
X-API-Key: vbn_your_api_key_here
Python (requests)
import requests

response = requests.get(
    'https://my-api.top/api/v1/find_dakhila',
    headers={'X-API-Key': 'vbn_your_api_key_here'},
    params={
    "input": "YOUR_VALUE"
}
)
data = response.json()
print(data)
JavaScript (fetch)
const response = await fetch(
  'https://my-api.top/api/v1/find_dakhila?input=YOUR_VALUE',
  { headers: { 'X-API-Key': 'vbn_your_api_key_here' } }
);
const data = await response.json();
console.log(data);
Response Examples
Success — charged ৳150.00
200 OK
{
    "success": true,
    "pdf_urls": ["https://example.com/file1.pdf","https://example.com/file2.pdf"],
    "charged": 150,
    "remaining_balance": 850.00
}
No Result — ৳0 charge
200 OK
{
    "success": false,
    "charged": 0,
    "remaining_balance": 1000.00,
    "message": "Record not found"
}

Birth Certificate Verification

POST https://my-api.top/api/v1/birth

জন্ম নিবন্ধন সনদ যাচাই। UBRN এবং জন্ম তারিখ দিয়ে সম্পূর্ণ তথ্য পান। / Verify Bangladesh Birth Registration Certificate using UBRN and date of birth.

৳2.00/call
Parameters
Name Type Required Description Location
ubrn string ✓ Required Birth Registration Number (জন্ম নিবন্ধন নম্বর) — 17 digits JSON Body
dob string ✓ Required Date of Birth in YYYY-MM-DD format (e.g. 2004-04-04) JSON Body
api_key string ✓ Yes* Your API key (*or pass via X-API-Key header) Header / Query
Request Examples
cURL / Shell
curl --location 'https://my-api.top/api/v1/birth' \
--header 'X-API-Key: vbn_your_api_key_here' \
--header 'Content-Type: application/json' \
--data '{
    "ubrn": "YOUR_VALUE",
    "dob": "YOUR_VALUE"
}'
HTTP Raw
POST /api/v1/birth HTTP/1.1
Host: my-api.top
X-API-Key: vbn_your_api_key_here
Content-Type: application/json

{
    "ubrn": "YOUR_VALUE",
    "dob": "YOUR_VALUE"
}
Python (requests)
import requests

response = requests.post(
    'https://my-api.top/api/v1/birth',
    headers={'X-API-Key': 'vbn_your_api_key_here'},
    json={
    "ubrn": 'YOUR_VALUE',
    "dob": 'YOUR_VALUE'
}
)
data = response.json()
print(data)
JavaScript (fetch)
const response = await fetch(
  'https://my-api.top/api/v1/birth',
  {
    method: 'POST',
    headers: {
      'X-API-Key': 'vbn_your_api_key_here',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({"ubrn":"YOUR_VALUE","dob":"YOUR_VALUE"})
  }
);
const data = await response.json();
console.log(data);
Response Examples
Success — charged ৳2.00
200 OK
{
    "success": true,
    "data": {
        "field1": "value",
        "field2": "value",
        "...": "..."
    },
    "charged": 2,
    "remaining_balance": 850.00
}
No Result — ৳0 charge
200 OK
{
    "success": false,
    "charged": 0,
    "remaining_balance": 1000.00,
    "message": "Record not found"
}

Land Password Reset

GET https://my-api.top/api/v1/land-password-reset

ভূমি সেবা পোর্টালে মোবাইল এবং নতুন পাসওয়ার্ড দিয়ে পাসওয়ার্ড রিসেট করুন। / Reset land portal password using mobile number and new password.

৳200.00/call
Parameters
Name Type Required Description
mobile string ✓ Required Mobile Number (e.g. 1724825564)
password string Optional New Password (Optional, auto-generated if empty)
api_key string ✓ Yes* Your API key (*or pass via X-API-Key header)
Request Examples
cURL / Shell
curl --location 'https://my-api.top/api/v1/land-password-reset?mobile=YOUR_VALUE&password=YOUR_VALUE' \
--header 'X-API-Key: vbn_your_api_key_here'
HTTP Raw
GET /api/v1/land-password-reset?mobile=YOUR_VALUE&password=YOUR_VALUE HTTP/1.1
Host: my-api.top
X-API-Key: vbn_your_api_key_here
Python (requests)
import requests

response = requests.get(
    'https://my-api.top/api/v1/land-password-reset',
    headers={'X-API-Key': 'vbn_your_api_key_here'},
    params={
    "mobile": "YOUR_VALUE",
    "password": "YOUR_VALUE"
}
)
data = response.json()
print(data)
JavaScript (fetch)
const response = await fetch(
  'https://my-api.top/api/v1/land-password-reset?mobile=YOUR_VALUE&password=YOUR_VALUE',
  { headers: { 'X-API-Key': 'vbn_your_api_key_here' } }
);
const data = await response.json();
console.log(data);
Response Examples
Success — charged ৳200.00
200 OK
{
    "success": true,
    "success": ["...results..."],
    "charged": 200,
    "remaining_balance": 850.00
}
No Result — ৳0 charge
200 OK
{
    "success": false,
    "charged": 0,
    "remaining_balance": 1000.00,
    "message": "Record not found"
}

NID Auto Sign Copy

GET https://my-api.top/api/v1/nid-sign-copy

NID অটো সাইন কপি। NID নম্বর, মোবাইল নম্বর, BRN, বা ফর্ম নম্বর দিয়ে তথ্য যাচাই করুন। / NID Auto Sign Copy — Verify information using NID Number, Mobile Number, BRN, or Form Number.

৳50.00/call
Parameters
Name Type Required Description
search string ✓ Required NID Number, Mobile Number, BRN, or Form Number to search
api_key string ✓ Yes* Your API key (*or pass via X-API-Key header)
Request Examples
cURL / Shell
curl --location 'https://my-api.top/api/v1/nid-sign-copy?search=YOUR_VALUE' \
--header 'X-API-Key: vbn_your_api_key_here'
HTTP Raw
GET /api/v1/nid-sign-copy?search=YOUR_VALUE HTTP/1.1
Host: my-api.top
X-API-Key: vbn_your_api_key_here
Python (requests)
import requests

response = requests.get(
    'https://my-api.top/api/v1/nid-sign-copy',
    headers={'X-API-Key': 'vbn_your_api_key_here'},
    params={
    "search": "YOUR_VALUE"
}
)
data = response.json()
print(data)
JavaScript (fetch)
const response = await fetch(
  'https://my-api.top/api/v1/nid-sign-copy?search=YOUR_VALUE',
  { headers: { 'X-API-Key': 'vbn_your_api_key_here' } }
);
const data = await response.json();
console.log(data);
Response Examples
Success — charged ৳50.00
200 OK
{
    "success": true,
    "success": ["...results..."],
    "charged": 50,
    "remaining_balance": 850.00
}
No Result — ৳0 charge
200 OK
{
    "success": false,
    "charged": 0,
    "remaining_balance": 1000.00,
    "message": "Record not found"
}

NID USER PASS

POST https://my-api.top/api/v1/nid-secure-gateway

NID Verification via NID Secure Gateway. Requires a Photo File, and either a QR File or Cipher.

৳30.00/call
Parameters
Name Type Required Description
photo_file file ✓ Required Uploaded Photo File image (Required)
qr_file file Optional Uploaded QR File image (Optional if cipher_b64 is provided)
cipher_b64 string Optional Base64 encoded cipher string (Optional if qr_file is provided)
api_key string ✓ Yes* Your API key (*or pass via X-API-Key header)
Request Examples
cURL / Shell
curl --location 'https://my-api.top/api/v1/nid-secure-gateway' \
--header 'X-API-Key: vbn_your_api_key_here' \
--form 'photo_file=@"/path/to/file"' \
--form 'qr_file=@"/path/to/file"' \
--form 'cipher_b64="YOUR_VALUE"'
HTTP Raw
POST /api/v1/nid-secure-gateway HTTP/1.1
Host: my-api.top
X-API-Key: vbn_your_api_key_here
Content-Type: multipart/form-data; boundary=---Boundary

---Boundary
Content-Disposition: form-data; name="nid"

YOUR_VALUE
---Boundary
Content-Disposition: form-data; name="dob"

YOUR_VALUE
---Boundary
Content-Disposition: form-data; name="qr_file"; filename="photo.png"
Content-Type: image/png

[Binary File Data]
---Boundary--
Python (requests)
import requests

files = {
    'photo_file': ('/path/to/file', open('/path/to/file', 'rb'), 'image/png'),
    'qr_file': ('/path/to/file', open('/path/to/file', 'rb'), 'image/png'),
}
data = {
    'cipher_b64': 'YOUR_VALUE'
}

response = requests.post(
    'https://my-api.top/api/v1/nid-secure-gateway',
    headers={'X-API-Key': 'vbn_your_api_key_here'},
    data=data,
    files=files
)
data = response.json()
print(data)
JavaScript (fetch)
const formData = new FormData();
formData.append('photo_file', fileInput.files[0]); // assuming fileInput is an HTML input element
formData.append('qr_file', fileInput.files[0]); // assuming fileInput is an HTML input element
formData.append('cipher_b64', 'YOUR_VALUE');

const response = await fetch(
  'https://my-api.top/api/v1/nid-secure-gateway',
  {
    method: 'POST',
    headers: { 'X-API-Key': 'vbn_your_api_key_here' },
    body: formData
  }
);
const data = await response.json();
console.log(data);
Response Examples
Success — charged ৳30.00
200 OK
{
    "success": true,
    "success": ["...results..."],
    "charged": 30,
    "remaining_balance": 850.00
}
No Result — ৳0 charge
200 OK
{
    "success": false,
    "charged": 0,
    "remaining_balance": 1000.00,
    "message": "Record not found"
}

NID Sign Copy API V2

MULTI-STEP https://my-api.top/api/v1/nid-sign-copy-v2

Captcha থেকে Email Auto অথবা manual Mobile OTP পর্যন্ত সম্পূর্ণ Sign Copy workflow। Chromium লাগে না; server-side direct API ব্যবহার হয়।

৳50.00/success
 Charge শুধু status=completed result delivery-র সময় একবার কাটে। Captcha, method, mobile ও OTP request free। নিজের/অনুমোদিত NID workflow-তেই ব্যবহার করুন।
Workflow Endpoints
StepMethodEndpointInputCharge
1. CaptchaGET/captchaHeader onlyFree
2. Start claimPOST/claimfile, captcha_id, captchaFree
3. Choose OTPPOST/methodjob_id, method: email/mobileFree
4A. MobilePOST/mobilejob_id, mobileFree
4B. OTPPOST/otpjob_id, otpFree
5. ResultGET/status?job_id=...job_id৳50.00 on completed
Complete cURL Flow
1 — Get captcha
curl 'https://my-api.top/api/v1/nid-sign-copy-v2/captcha' \
  -H 'X-API-Key: vbn_your_api_key_here'
2 — Upload PDF and start claim
curl 'https://my-api.top/api/v1/nid-sign-copy-v2/claim' \
  -H 'X-API-Key: vbn_your_api_key_here' \
  -F 'file=@/path/to/sign-copy.pdf;type=application/pdf' \
  -F 'captcha_id=CAPTCHA_ID_FROM_STEP_1' \
  -F 'captcha=CAPTCHA_TEXT'
3A — Email Auto
curl 'https://my-api.top/api/v1/nid-sign-copy-v2/method' \
  -H 'X-API-Key: vbn_your_api_key_here' \
  -H 'Content-Type: application/json' \
  --data '{"job_id":"JOB_ID","method":"email"}'
3B — Mobile OTP (use instead of Email Auto)
# Select mobile
curl 'https://my-api.top/api/v1/nid-sign-copy-v2/method' \
  -H 'X-API-Key: vbn_your_api_key_here' \
  -H 'Content-Type: application/json' \
  --data '{"job_id":"JOB_ID","method":"mobile"}'

# Send OTP
curl 'https://my-api.top/api/v1/nid-sign-copy-v2/mobile' \
  -H 'X-API-Key: vbn_your_api_key_here' \
  -H 'Content-Type: application/json' \
  --data '{"job_id":"JOB_ID","mobile":"01XXXXXXXXX"}'

# Verify OTP
curl 'https://my-api.top/api/v1/nid-sign-copy-v2/otp' \
  -H 'X-API-Key: vbn_your_api_key_here' \
  -H 'Content-Type: application/json' \
  --data '{"job_id":"JOB_ID","otp":"123456"}'
4 — Poll status every 2–3 seconds
curl 'https://my-api.top/api/v1/nid-sign-copy-v2/status?job_id=JOB_ID' \
  -H 'X-API-Key: vbn_your_api_key_here'
Python Example
Python requests — Email Auto flow
import time
import requests

BASE = "https://my-api.top/api/v1/nid-sign-copy-v2"
HEADERS = {"X-API-Key": "vbn_your_api_key_here"}

captcha = requests.get(f"{BASE}/captcha", headers=HEADERS).json()
print(captcha["captcha_image"])  # data:image/...;base64,...
captcha_text = input("Captcha: ")

with open("sign-copy.pdf", "rb") as pdf:
    claim = requests.post(
        f"{BASE}/claim",
        headers=HEADERS,
        data={"captcha_id": captcha["captcha_id"], "captcha": captcha_text},
        files={"file": ("sign-copy.pdf", pdf, "application/pdf")},
    ).json()

job_id = claim["job_id"]
requests.post(
    f"{BASE}/method",
    headers={**HEADERS, "Content-Type": "application/json"},
    json={"job_id": job_id, "method": "email"},
).raise_for_status()

while True:
    response = requests.get(
        f"{BASE}/status", headers=HEADERS, params={"job_id": job_id}
    )
    status = response.json()
    if status.get("status") in ("completed", "failed", "not_found"):
        print(status)
        break
    time.sleep(3)
Key Responses
Captcha
{
  "success": true,
  "captcha_id": "opaque_48_character_id",
  "captcha_image": "data:image/jpeg;base64,...",
  "expires_in": 300
}
Claim Started
{
  "success": true,
  "job_id": "opaque_48_character_id",
  "status": "awaiting_contact_method",
  "cost_on_success": 50,
  "expires_in": 1500
}
Completed — charged once
{
  "success": true,
  "job_id": "...",
  "status": "completed",
  "result": {
    "success": true,
    "data": {
      "nationalId": "...",
      "username": "...",
      "password": "..."
    }
  },
  "charged": 50,
  "already_charged": false,
  "remaining_balance": 850.00
}
Session & Privacy Rules
API keyসব request-এ একই X-API-Key ব্যবহার করুন। Query string key এই workflow-তে গ্রহণ করা হয় না।
Captcha৫ মিনিট valid এবং একবারই ব্যবহারযোগ্য। Invalid captcha হলে নতুন captcha নিন।
Job২৫ মিনিট valid; যে API key job তৈরি করেছে শুধু সেই key job access করতে পারে।
StorageUploaded PDF, mobile number, OTP এবং completed result API Hub database-এ সংরক্ষণ করা হয় না।
Billingশুধু completed result delivery-তে charge। একই completed job আবার status করলে দ্বিতীয়বার charge হবে না।

Balance Check

GET https://my-api.top/api/v1/balance

আপনার current balance, API key stats, এবং প্রতিটি API-র rate দেখুন।

Free
Request
cURL
curl --location 'https://my-api.top/api/v1/balance' \
--header 'X-API-Key: vbn_your_api_key_here'
Response
200 OK
{
    "balance": 500.00,
    "total_requests": 150,
    "successful_requests": 120,
    "key_active": true,
    "api_rates": [
        {"api": "Land Tax Dakhila Finder", "slug": "find_dakhila", "rate": 150},
        {"api": "Land Tax Payment Link", "slug": "payment_link_gen", "rate": 150},
        {"api": "BDRIS Search", "slug": "bdris_search", "rate": 120},
        {"api": "Birth Certificate Verification", "slug": "birth", "rate": 2},
        {"api": "Land Password Reset", "slug": "land-password-reset", "rate": 200},
        {"api": "NID Auto Sign Copy", "slug": "nid-sign-copy", "rate": 50},
        {"api": "NID USER PASS", "slug": "nid-secure-gateway", "rate": 30},
        {"api": "NID Sign Copy API V2", "slug": "nid-sign-copy-v2", "rate": 50}
    ]
}

Error Codes

HTTP CodeMeaningDescription
400Bad RequestRequired parameter missing
401UnauthorizedAPI key missing or invalid
402Payment RequiredBalance insufficient — recharge করুন
403ForbiddenAPI key বা account disabled
404Not FoundAPI endpoint পাওয়া যায়নি
502Bad GatewayUpstream service error — পরে আবার try করুন
Error Response Format
Error
{
    "error": "Insufficient balance.",
    "balance": 50.00,
    "cost_per_call": 150.00,
    "recharge_url": "https://my-api.top/recharge"
}