Unofficial Python wrapper for Delhi DORIS eSearch Portal
Project description
DORIS API
Unofficial FastAPI wrapper for the Delhi Government eSearch Property Portal.
This API simplifies interaction with the DORIS/eSearch portal by providing clean JSON endpoints for:
- Property Address Suggestions
- Captcha Retrieval
- Property Search
- Easy Integration with Next.js, React, Node.js and other applications
Features
- FastAPI Powered
- Address Autocomplete Suggestions
- Captcha Session Handling
- Property Search Records
- JSON Responses
- Frontend Friendly
- Open Source
Disclaimer
This project is not affiliated with, endorsed by, or associated with the Government of NCT of Delhi.
Data is retrieved from publicly accessible services provided by the Delhi eSearch Portal.
This project is intended for educational, research, and integration purposes only.
Base URL
Local Development
http://localhost:8000
Installation
Clone the repository:
git clone https://github.com/raghavsach-dev/DORIS-API.git
cd DORIS-API
Install dependencies:
pip install -r requirements.txt
Run the server:
uvicorn app:app --reload
Open Swagger Docs:
http://localhost:8000/docs
API Endpoints
1. Get Address Suggestions
Returns matching property addresses.
Request
GET /suggest?q=jagri
Response
{
"success": true,
"results": [
"305 JAGRITI ENCLAVE",
"335 JAGRITI ENCLAVE DELHI JAGRATI ENCLAVE"
]
}
2. Create Search Session & Fetch Captcha
Creates a new session and returns a captcha image URL.
Request
GET /captcha
Response
{
"success": true,
"session_id": "uuid",
"image_url": "/captcha-image/uuid"
}
3. Get Captcha Image
Returns the captcha image associated with a session.
Request
GET /captcha-image/{session_id}
Example:
GET /captcha-image/uuid
4. Search Property Records
Searches property records using a selected address and captcha.
Request
POST /search
Body
{
"session_id": "uuid",
"address": "335 JAGRITI ENCLAVE DELHI JAGRATI ENCLAVE",
"captcha": "R4R93N"
}
Response
{
"success": true,
"count": 1,
"records": [
{
"reg_no": "102",
"reg_date": "11-03-2013",
"first_party": "Dev Raj",
"second_party": "Veena Nijhawan, Tina Nijhawan",
"property_address": "House No. 335 Jagriti Enclave Delhi,Jagrati Enclave",
"deed_type": "SALE,SALE WITHIN MC AREA",
"property_type": "Residential",
"sro_name": "SR IVb Vivek Vihar"
}
]
}
Typical Workflow
- User starts typing a property address
- Call
/suggest - User selects an address from suggestions
- Call
/captcha - Display the captcha image
- User enters the captcha
- Call
/search - Display property records
Next.js Example
Fetch Suggestions
const res = await fetch(
`${API_URL}/suggest?q=jagri`
);
const data = await res.json();
Fetch Captcha
const captchaRes = await fetch(
`${API_URL}/captcha`
);
const captchaData = await captchaRes.json();
setSessionId(captchaData.session_id);
const imageUrl =
`${API_URL}${captchaData.image_url}`;
Render:
<img src={imageUrl} alt="captcha" />
Search Records
const res = await fetch(
`${API_URL}/search`,
{
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
session_id,
address,
captcha
})
}
);
const data = await res.json();
Render Results:
{data.records.map((record) => (
<div key={record.reg_no}>
<h3>{record.first_party}</h3>
<p>{record.second_party}</p>
<p>{record.reg_date}</p>
</div>
))}
Tech Stack
- Python
- FastAPI
- Requests
- BeautifulSoup4
- Uvicorn
Contributing
Contributions, improvements, bug reports, and feature requests are welcome.
Feel free to open an issue or submit a pull request.
License
MIT License
Built to make integration with the Delhi eSearch portal simpler for developers who would rather work with JSON than wrestle with legacy ASP.NET forms and hidden fields. Humanity keeps inventing beautiful APIs and then hiding critical data behind WebForms from 2008. This project attempts to restore balance.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pydelhidoris-0.1.1.tar.gz.
File metadata
- Download URL: pydelhidoris-0.1.1.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5830237c207d90545b7341c42a467c8ad3ca0837f1db7a1d4c43895fda6fd14d
|
|
| MD5 |
bba8e9b42d98d869b51b114f7e2764a3
|
|
| BLAKE2b-256 |
3ab70c94c910cb2ba627fbb9da6f16fdc92e871665e496b5932b864895b0f8f7
|
File details
Details for the file pydelhidoris-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pydelhidoris-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1805882286c4fd6ecaeab8d0e1a4f5a9be1ba6c14ca101dd1d113630e417a5b0
|
|
| MD5 |
d5bb02e974a7c7a15d9ea41d0037947a
|
|
| BLAKE2b-256 |
a1d4adebd3c2035d6dfc7add5dc67156340fa6dafe364e943aeff8f93caa3a5e
|