Limelight runs on Node.js servers too. Add the middleware to capture every incoming request and response — with headers, bodies, status codes, and timing — and view them alongside your client-side data. When you have Limelight on both the client and server, requests are automatically traced end-to-end using a shared trace ID.Documentation Index
Fetch the complete documentation index at: https://docs.getlimelight.io/llms.txt
Use this file to discover all available pages before exploring further.
Installation
Connect
Initialize Limelight in your server’s entry point, before setting up routes:Express / Connect
UseLimelight.middleware() to capture all incoming requests. Place it after body-parser middleware so request bodies are available:
Middleware Options
| Option | Type | Default | Description |
|---|---|---|---|
maxBodySize | number | 65536 (64KB) | Maximum request/response body size to capture in bytes. Bodies exceeding this limit are truncated. |
Next.js Pages Router
For Next.js Pages Router API routes (pages/api/), wrap your handler with Limelight.withLimelight():
Full-Stack Tracing
When Limelight is installed on both your client and server, requests are automatically correlated using a trace header. How it works:- The client SDK attaches an
x-limelight-trace-idheader to every outgoing request - The server middleware reads this header and links the incoming request to the same trace
- Limelight groups both sides together in the UI so you can see the full request lifecycle
Custom Trace Header
Ifx-limelight-trace-id conflicts with your infrastructure, you can customize the header name. Set the same name on both client and server:
Configuration
All standardLimelight.connect() options work on the server. The most relevant ones for server-side usage:
Security
Limelight automatically redacts sensitive headers (likeauthorization, cookie, and set-cookie) from captured data. You can further control what gets captured:
- Use
disableBodyCapture: trueto skip all request/response bodies - Use
beforeSendto filter out specific routes or redact fields - Use
maxBodySizeon the middleware to limit how much body data is captured
Verify It’s Working
Once connected, make a request to your server and check the Limelight desktop app or dashboard. You should see:- The incoming request with method, URL, headers, and body
- The outgoing response with status code, headers, body, and duration
- If the client SDK is also connected, both sides linked under the same trace ID