Skip to content

API Lens user guide

API Lens helps you follow HTTP activity made through Unreal's standard HTTP stack while working in the Editor or Play in Editor.

← Documentation home · Getting started

Dashboard overview

The dashboard has three main areas:

  1. Capture controls — start or stop capture, export results, and open options.
  2. Request list — search, filters, request status, timing, and URL information.
  3. Request inspector — headers, bodies, origin, privacy state, and actions.

You can drag the divider between the request list and inspector. API Lens remembers the layout for the current project and user.

Capture controls

Capture is off when the editor opens. Select Start capture to begin.

The header shows the current state:

  • Capturing · Exclusive — API Lens is observing supported HTTP traffic.
  • Redacted — sensitive-value redaction was active for new records.
  • Raw — redaction was disabled; retained data may include working secrets.
  • Stopped — no new requests are being observed.

Auto-start on Play is available under Options. A manual stop remains in effect until you explicitly start capture again.

Show or redact sensitive values

API Lens starts with Redact Sensitive Values enabled. To change it for your project, stop capture if it is running, open Project Settings → Plugins → API Lens → Privacy, and check or uncheck Redact Sensitive Values. Start capture again and reproduce the request. The choice takes effect when capture starts:

  • Checked — REDACTED: recognized sensitive headers, URL query values, and structured fields are replaced before the new record is stored. Use this for normal debugging and before sharing evidence.
  • Unchecked — RAW: new records may retain usable tokens, API keys, cookies, or session identifiers. Use it only when the original value is needed to diagnose a problem, such as failed authentication. The dashboard shows a persistent warning and asks for confirmation on every copy or export.

The setting does not reveal values already captured as redacted, or clean records previously captured in Raw mode. The badge can still read RAW after re-enabling the setting while unredacted records remain in history. When finished, stop capture, re-enable redaction, and use Options → Clear history to remove any Raw records you no longer need; this deletes the in-memory history after confirmation. URL paths and free-form text still need manual review even with redaction enabled. See Privacy and redaction for the full boundary.

Find the request you need

The search field matches URL, host, and method. Filters can be combined:

Filter Purpose
Status Show 2xx, 3xx, 4xx, 5xx, failed, or pending requests
Errors Focus on failed requests and error responses
Slow Show requests over 500 ms and requests still in flight
This run Show requests from the latest Play in Editor session
Hide Epic Hide known Epic telemetry hosts; enabled by default

Select Clear filters to return to the default view. Captured records are not deleted when filters change.

Request columns

  • Time — when the request began.
  • Status — HTTP response code or transport state.
  • Method — GET, POST, PUT, PATCH, DELETE, or another verb.
  • Duration — elapsed request time.
  • Host and Path — sanitized destination information.
  • Timeline — a visual comparison of start time and duration.

On narrow docks, API Lens hides lower-priority columns automatically so the request path remains readable.

Inspect request details

Select a row to open the inspector. On a narrow dock, double-click the row, press Enter, or select Inspect selected.

Tab Information shown
General Outcome, duration, sizes, capture source, session, and privacy state
Headers Retained request and response headers
Request Retained request-body preview and its classification
Response Retained response-body preview and its classification

JSON views

Valid JSON opens in Tree view. You can search keys and values, expand or collapse containers, and copy a selected value or JSON path.

  • Tree gives a navigable structure.
  • Pretty formats the retained JSON for reading.
  • Raw shows the exact bounded text retained by API Lens.

Text or invalid JSON uses Raw view. Binary, streamed, or unsafe unparseable content may be described without storing a body preview.

Play in Editor sessions

Requests are stamped with the PIE session in which they occurred. The This run filter isolates the latest session. Starting a new PIE session does not automatically clear earlier history.

To remove in-memory history, open Options → Clear history and review the confirmation. This cannot be undone.

Replay and edit

Select a request and use Replay or Actions.

  • Replay is offered only when the captured request can be safely resent without filling missing or redacted values.
  • Edit and resend lets you review and change the method, URL, headers, or body before sending.
  • Requests using methods that can change server data, such as POST, always go through the editor instead of one-click replay.

Replayed requests appear as new rows and are marked as repeats.

Copy and export

Right-click a request and choose Copy as to generate:

  • cURL
  • PowerShell Invoke-RestMethod
  • Unreal C++ using FHttpModule

The Export menu can produce:

  • HAR for compatible browser and proxy tools.
  • CSV with one row per visible request and no bodies.
  • JSON copied to the clipboard.

Every transfer has a privacy boundary. Redaction reduces risk but does not make every captured value safe to publish. Review Privacy and redaction before sharing an export.

Keyboard shortcuts

Shortcut Action
Ctrl+F Focus request search
F8 / Shift+F8 Select the next or previous visible error
Enter Inspect the selected request in a narrow dock
Escape Return to the request list or split view
Ctrl+R Replay the selected request when allowed
Ctrl+Shift+C Copy the selected request as cURL

Capture limits

  • History and body previews are bounded to protect editor memory.
  • Older records may be evicted when configured limits are reached.
  • Requests bypassing Unreal's standard HTTP stack are not visible.
  • Packaged builds and custom socket or HTTP implementations are not inspected.
  • Retries appear as separate requests because Unreal sends them separately.

For help with an empty list, missing bodies, or replay restrictions, see Troubleshooting.