Network requests
Unlike session data, network request tracking requires you to forward requests to Shake first.
You're viewing the Android docs. Other platforms → iOS React Native Flutter Web
Why it matters
This data is what lets you see, per release, which endpoints are slowest and which have the highest error rates on your Shake dashboard — so you can catch performance and reliability regressions before they reach more users.
Setup
If you've already set up network tracking for Activity history, no extra work is needed — session network tracking uses the same interceptor.
Otherwise, add this line to your OkHttpClient:
- Java
- Kotlin
OkHttpClient okHttpClient = new OkHttpClient().newBuilder().addInterceptor(new ShakeNetworkInterceptor()).build();
val okHttpClient = OkHttpClient().newBuilder().addInterceptor(ShakeNetworkInterceptor()).build()
If you don't use OkHttpClient, use Shake.handleNetworkRequest to forward requests to Shake instead.
What's tracked
For each request, Shake tracks the URL (query parameters and fragment stripped), method, status code, average duration, and call count.
- Requests to the same URL and method but with different status codes (for example,
200vs.500) are tracked as separate entries. - Path parameters aren't normalized —
/users/123and/users/456are tracked as distinct endpoints.
Request and response bodies and headers are never included in this data — those are only collected for Activity history on bug reports.