{
  "added_at": "2026-11-09",
  "additional_evidence_urls": [
    "https://github.com/Sameer-choudhary-git/urja-api/blob/42c53fc8b76dac56644614b93c6502b6e64b8000/README.md"
  ],
  "category": "reconstruction-cases",
  "class": "website",
  "description_en": "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.",
  "description_zh": "urja-api 将 Urja Meter Ops 网页门户的访问流程重建为类型化 TypeScript 服务和 REST API。作者追踪并重放浏览器请求，记录登录 Cookie、签名批量导出、JSON 端点及 SvelteKit 数据页面；适配层将响应整理为电表、变压器和能耗读数接口。",
  "entry_url": "https://awesomerea.org/resources/urja-api-meter-ops-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/urja-api-meter-ops-case/",
  "evidence_url": "https://github.com/Sameer-choudhary-git/urja-api/blob/42c53fc8b76dac56644614b93c6502b6e64b8000/PROTOCOL.md",
  "group": "cases",
  "id": "urja-api-meter-ops-case",
  "json_url": "https://awesomerea.org/resources/urja-api-meter-ops-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/urja-api-meter-ops-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/urja-api-meter-ops-case/index.md",
  "name": "urja-api: reconstructing the Urja Meter Ops portal API",
  "name_zh": "urja-api：重建 Urja Meter Ops 门户 API",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "prerequisites",
    "scope",
    "license"
  ],
  "requirements": [
    "Node.js 20.6 or later and an Urja Meter Ops portal account are needed for live use.",
    "An offline mode uses the repository's fake portal and needs Node.js only.",
    "The service is designed around one portal and an in-memory dataset.",
    "No licence file in the repository."
  ],
  "requirements_zh": [
    "实时使用需要 Node.js 20.6 或更新版本及 Urja Meter Ops 门户账户。",
    "离线模式使用仓库内的模拟门户，只需要 Node.js。",
    "服务按单个门户和内存中的数据集设计。",
    "仓库中没有许可证文件。"
  ],
  "targets": [
    "website"
  ],
  "url": "https://github.com/Sameer-choudhary-git/urja-api",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
