# urja-api: reconstructing the Urja Meter Ops portal API

> urja-api reconstructs access to the Urja Meter Ops web portal as a typed TypeScript service and REST API. The author traced browser requests and replayed them to document login cookies, signed bulk export, JSON endpoints and SvelteKit data pages; the adapter turns those responses into meter, transformer and energy-reading routes.

- Type: Case study
- Targets: Website
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/Sameer-choudhary-git/urja-api>
- Primary source: <https://github.com/Sameer-choudhary-git/urja-api/blob/42c53fc8b76dac56644614b93c6502b6e64b8000/PROTOCOL.md>
- Catalog page: <https://awesomerea.org/resources/urja-api-meter-ops-case/>
- Record JSON: <https://awesomerea.org/resources/urja-api-meter-ops-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/urja-api-meter-ops-case/index.md)

## Requirements & limits

- **Prerequisites:** Node.js 20.6 or later and an Urja Meter Ops portal account are needed for live use.
- **Prerequisites:** An offline mode uses the repository's fake portal and needs Node.js only.
- **Scope:** The service is designed around one portal and an in-memory dataset.
- **License:** No licence file in the repository.

## Primary sources

1. <https://github.com/Sameer-choudhary-git/urja-api/blob/42c53fc8b76dac56644614b93c6502b6e64b8000/PROTOCOL.md>
2. <https://github.com/Sameer-choudhary-git/urja-api/blob/42c53fc8b76dac56644614b93c6502b6e64b8000/README.md>

## More in Websites

- [muse-cli: reconstructing the muse.ai personal gateway protocol](https://awesomerea.org/resources/muse-cli-case/index.md) · Case study
- [MAX Messenger: documenting WebSocket and TCP message formats](https://awesomerea.org/resources/max-messenger-protocol-case/index.md) · Case study
- [Tesla Dashcam Decryptor: decoding encrypted dashcam recordings](https://awesomerea.org/resources/tesla-dashcam-decrypt-case/index.md) · Case study
- [transferit-py: reconstructing transfer.it upload and download exchanges](https://awesomerea.org/resources/transferit-py-case/index.md) · Case study
- [github-websocket-pipelines-api: probing GitHub Actions live-log messages](https://awesomerea.org/resources/github-websocket-pipelines-api-case/index.md) · Case study
- [Inception Chat: reconstructing a chat page from design and prompt captures](https://awesomerea.org/resources/inception-chat-extraction-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
