{"id":18013032,"url":"https://github.com/sim642/tplink-api","last_synced_at":"2025-04-04T14:20:35.794Z","repository":{"id":141778054,"uuid":"172737905","full_name":"sim642/tplink-api","owner":"sim642","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-14T08:44:16.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-09T23:49:39.109Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sim642.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-26T15:27:13.000Z","updated_at":"2024-07-14T08:44:19.000Z","dependencies_parsed_at":"2024-10-30T03:42:14.097Z","dependency_job_id":null,"html_url":"https://github.com/sim642/tplink-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sim642%2Ftplink-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sim642%2Ftplink-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sim642%2Ftplink-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sim642%2Ftplink-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sim642","download_url":"https://codeload.github.com/sim642/tplink-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247190242,"owners_count":20898705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-30T03:19:41.413Z","updated_at":"2025-04-04T14:20:35.761Z","avatar_url":"https://github.com/sim642.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Python library for older TP-Link routers with `userRpm` API.\nIncludes an application for graphing per-device traffic statistics using [rrdtool].\n\n[rrdtool]: http://oss.oetiker.ch/rrdtool/\n\n\u003e [!WARNING]\n\u003e Not compatible with newer TP-Link (mesh) routers.\n\n\n# TP-Link reverse engineering\nThe following is a list of notes and resources related to reverse engineering of TP-Link routers and their APIs.\n\n* `userRpm` API:\n  * HTTP access via web interface\n  * HTTP auth\n  * `/userRpm/` URLs\n  * Parse array in `\u003cscript\u003e` tag to extract results\n  * Implementations:\n    * _This repository_\n    * https://github.com/n1k0r/tplink-wr-api\n    * https://github.com/mkubicek/tpylink\n    * Prometheus exporter: https://github.com/maesoser/tplink_exporter\n* `seq` API:\n  * HTTP access via web interface\n  * HTTP auth\n  * Custom protocol with some kind of sequences\n  * Implementations:\n    * https://github.com/menahishayan/TP-Link-Archer-C50-API/\n    * https://github.com/epsi95/TPLink-Python\n    * https://github.com/AlexandrErohin/TP-Link-Archer-C6U (`TPLinkMRClient`)\n    * Home-assistant integration: https://github.com/ericpignet/home-assistant-tplink_router/tree/master\n    * https://github.com/hertzg/node-tplink-api\n    * https://github.com/plewin/tp-link-modem-router\n    * https://github.com/hercule115/TPLink-Archer\n* `luci` API:\n  * HTTP access via web interface\n  * Custom auth with RSA and cookies\n  * Only one simultaneous user, kicks out others\n  * `/cgi-bin/luci/` URLs\n  * Implementations:\n    * https://github.com/AlexandrErohin/TP-Link-Archer-C6U\n      * Home-assistant integration: https://github.com/AlexandrErohin/home-assistant-tplink-router\n* TMP API:\n  * TP-Link Tether 2.0 protocol for mobile app\n  * Multiple transports (SSH, BLE, ATA) according to Android app decompile\n    * SSH:\n      * User: `dropbear`, password: `admin`/own password (for web interface)\n      * No `shell` channel\n      * Android app uses `exec` channel for `scp`\n      * Port forward 20002 to access TMP\n  * Versions 1, 2, 3 according to Android app decompile \n  * Reverse engineering:\n    * https://www.zerodayinitiative.com/blog/2020/4/6/exploiting-the-tp-link-archer-c7-at-pwn2own-tokyo\n    * https://labs.withsecure.com/advisories/tp-link-ac1750-pwn2own-2019\n  * Implementations:\n    * https://github.com/ropbear/tmpcli\n* TDDP API:\n  * https://mjg59.dreamwidth.org/51672.html\n  * https://medium.com/@CoreSecurity/a-story-about-tp-link-device-debug-protocol-tddp-research-4fbdd7a15c40\n  * https://www.softscheck.com/en/blog/tp-link-reverse-engineering/\n  * https://patents.google.com/patent/CN102096654A/en\n  * Implementations:\n    * https://github.com/softScheck/tplink-smartplug\n* Reverse engineering:\n  * https://skowronski.tech/2021/02/hacking-into-tp-link-archer-c6-shell-access-without-physical-disassembly/\n  * https://github.com/hacefresko/TP-Link-Archer-C6-EU-re\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsim642%2Ftplink-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsim642%2Ftplink-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsim642%2Ftplink-api/lists"}