Product features
Everything you need to understand and improve your software.
Codeskop connects errors, network activity, user journeys, releases and analytics across mobile, web and backend, so you find issues faster and build better experiences.
- No credit card required
- Set up in minutes
- Works across your stack
Network capture
API monitoring from your users' devices
See the API calls that fail or crawl for real users on real networks, with the status code, timing and the users affected, alongside your crashes.
Plan: Starter and above · See pricing
GET https://api.example.com/v1/user
Headers
- Content-Type:
- application/json
- Content-Length:
- 1284
- Cache-Control:
- no-cache
Where the time went
Network Capture details
What you get
One interceptor on Android
Add tracker-okhttp and one OkHttp interceptor captures every request across all your Retrofit services. No per-endpoint setup.
Automatic on the web
Every fetch and XMLHttpRequest is instrumented automatically: failures, status codes and latency.
Flutter, from your HTTP client
Report failed calls with Codeskop.captureApiError, for example from a Dio interceptor.
Where the time went
Status codes, error kinds and sizes, with a DNS, connect, TLS and time-to-first-byte breakdown (on the web, when your API allows it).
Failures always kept
Failed calls are always recorded. Successful calls are timed at the sample rate you set, up to your plan's limit.
Private by default
Query strings are dropped, Authorization and cookie headers are never captured, and request and response bodies aren't collected.
How it works
- 1
Add capture
Add the tracker-okhttp interceptor on Android; on the web it's on as soon as the SDK starts.
- 2
Use your app as usual
Requests are queued on the device and sent in compressed batches when there's a connection.
- 3
Find the failing endpoints
The Network tab shows failing and slow endpoints, their status codes and timing, and the users they hit.
Platform support
| Android | Automatic with OkHttp 4 and Retrofit (tracker-okhttp) |
|---|---|
| Web & React | Automatic for fetch and XHR |
| Flutter | Via your HTTP client (e.g. a Dio interceptor) |
| Kotlin Multiplatform & iOSEarly access beta | OkHttp on Android · your code on iOS |
Questions about network capture
Does network capture record request or response bodies?
No. Bodies aren't captured, query strings are dropped, and Authorization and cookie headers are never collected.
Does it work with Retrofit?
Yes. Retrofit runs on OkHttp, so the one tracker-okhttp interceptor covers every Retrofit service in your app.
How does it work in Flutter?
There's no automatic HTTP interceptor in the Flutter SDK yet. Call Codeskop.captureApiError from your HTTP client, for example a Dio interceptor; the Flutter docs have a snippet.
Which plan includes network capture?
Starter and above. The share of successful calls that are timed grows with the plan; failed calls are always kept.
Is this the same as APM or distributed tracing?
No. Codeskop measures API calls from the client side, as your users experience them. It doesn't trace requests across backend services.
Server monitoring
Error and API monitoring for your backend services
See your services' errors, every request they handle and every API they call, next to the crashes and network calls from your mobile and web apps. Generally available for Python, Node.js, Go, Java and PHP.
Plan: Errors on every plan · requests and API calls from Starter
GET /orders/{id} 200 84 msPOST /orders 500 312 ms ← errorGET /users/{id}/cart 200 41 msWhat you get
Errors
Unhandled exceptions in requests, background jobs and threads, plus errors you report yourself.
Grouped by your own code
Issues are grouped by your own frames, so library frames don't split one bug into many.
Incoming requests by route
Every request your service handles, by route (for example /orders/{id}), with status, latency and size.
Outgoing API calls
Requests your service makes to other APIs, with status, latency and failures.
Never blocks a request
Events are batched and sent in the background. The SDKs have no runtime dependencies.
One dashboard
Backend issues sit next to your Android, Flutter and web issues, with the same alerts, tickets and Fix with AI.
How it works
- 1
Install the SDK
Add the package for your language and set your project's public key.
- 2
Add your framework's integration
A middleware, extension or plugin for Django, Express, Spring Boot, Laravel, Gin and the rest.
- 3
See errors and routes
Errors arrive as issues; requests and API calls appear on the Network page.
Languages and frameworks
| Python | Python 3.9+ · Django, Flask, FastAPI and Starlette, Celery, requests and httpx |
|---|---|
| Node.js | Node.js 18+ · Express, Fastify, NestJS, Next.js route handlers, fetch and http |
| Go | Go 1.23+ · net/http, Gin and Echo |
| Java & Kotlin | Java 11+ · Spring Boot 3, Servlet containers, OkHttp and HttpClient |
| PHP | PHP 8.1+ · Laravel 10+, plain PHP and Guzzle 7 |
| OpenTelemetryEarly access beta | Any OpenTelemetry SDK or Collector, over OTLP/HTTP |
Questions about server monitoring
Are the server SDKs production-ready?
Yes. The Python, Node.js, Go, Java and PHP SDKs are generally available. OpenTelemetry ingest is in beta.
Which plan do I need?
Server errors are included on every plan, Free too. Incoming request and outgoing API call monitoring follow the network monitoring on your plan (Starter and above), with the same sampling; failed requests are always kept.
Is this APM?
No. Codeskop captures errors, requests by route and outgoing API calls per service. It doesn't trace requests across services.
What about other languages?
Send traces and error logs with OpenTelemetry (beta), for example from .NET, Ruby, Rust or Elixir, or send events directly with the Ingest API.
Which key should a service use?
The project's public key (cs_live_pk_…), the same kind your apps use. The SDKs refuse secret keys. Create a separate project for each backend service.
Core features
Powerful tools for a more reliable product.
Everything you need to find, understand and fix issues, with the context to make the fix last.
Platforms
One SDK. Every platform.
Codeskop works across your stack, from mobile and web to backend services. What each SDK captures
- AndroidNative SDK on Maven CentralAvailable
- Fluttercodeskop_tracker on pub.devAvailable
- Web@codeskop/tracker on npmAvailable
- ReactProvider, error boundary and hookAvailable
- ServerPython, Node.js, Go, Java and PHPAvailable
- Kotlin MultiplatformShared Kotlin SDKEarly access beta
- iOSSwift package, built on the KMP SDKEarly access beta
Security & reliability
Built for teams that care about their users.
Your data stays yours. Codeskop is designed with privacy and reliability at its core.
It all connects
From issue to insight, in one production story.
Errors, user journeys, network activity and releases are linked, so you go from symptom to root cause in minutes.
An issue occurs
A crash or error is captured with its full context.
See who it hit
How many users, which devices and which release.
Check the requests
The failing and slow API calls around it.
Check the release
Whether the latest release made it worse.
Investigate and fix
Assign it, ticket it, or get a proposed fix.
Ready to improve your software?
Start building more reliable experiences today.
Free plan, no credit card. Your first crash report can arrive in minutes.