Skip to main content

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:

App.kt
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, 200 vs. 500) are tracked as separate entries.
  • Path parameters aren't normalized — /users/123 and /users/456 are 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.