How I reverse-engineered an HR attendance API in 3 days
A practical walkthrough of the methodology I use when there's no documentation: capturing traffic, mapping endpoints, and validating assumptions before writing a single line of automation.
The office attendance system kept marking me late when I wasn't. That single annoyance turned into a multi-day reverse engineering exercise — and a daemon I ran for 18 months.
This post is the methodology, not the specific API. The methodology is portable: same approach works for crypto airdrops, internal dashboards, and most third-party SaaS without proper API access.
Step 1 — Watch before you touch
The first thing I do is open DevTools, switch to the Network tab, and actually use the application like a normal user. No code yet. Just clicking, scrolling, submitting forms.
I'm looking for three things: which endpoints are called, what order they're called in, and which calls actually carry the meaningful data versus the ones that are just analytics noise.
Step 2 — Capture the auth flow first
Auth is the hardest part of every API I've reverse-engineered. Get this wrong and nothing else matters. I always document the auth flow as a sequence of cURL commands first, before touching anything else.
Step 3 — Map the surface, not the depth
It's tempting to dive into one endpoint and figure out every parameter. Resist this. Walk the entire surface area first — login, list, detail, create, update, delete — even if you only need one of them. Patterns emerge that save you hours later.
What you actually need to ship
For the attendance bot, the final implementation was about 200 lines of Python. The reverse engineering took three days. The actual coding took an afternoon.
That ratio — investigation vs. implementation — is normal. If you feel like you're spending too much time reading network requests and not enough writing code, you're probably doing it right.
Related posts
- API Reverse EngineeringMay 18, 20268 min read
What your JWT tokens reveal about your backend
JWTs are meant to be opaque to users. They're not. Here's what I learn about your architecture just by decoding one.
- API Reverse EngineeringApr 8, 20268 min read
Reading the network tab without losing your mind
DevTools shows you everything, which is the problem. Here's how I filter signal from noise when reverse-engineering a web application's API.
- API Reverse EngineeringMay 18, 20268 min read
5 things I check before trusting an API
Before I integrate with any API — official or reverse-engineered — I run through this checklist to avoid surprises later.