Setting the type field gives you a specialized rendering. Without a recognized type, the content still shows as an interactive JSON tree (type data), so type is always optional.
How the type is determined
The viewer classifies each dump into one of 14 kinds. It reads type first, with a few heuristic fallbacks for common cases:
| Type | Recognized when |
|---|---|
var |
type is var and value is an object |
model |
type is model |
collection |
type is collection |
table |
type is table |
measure |
type is measure |
performance |
type is performance |
event |
type is event |
mail |
type is mail |
html |
type is html |
trace |
type is trace |
exception |
type is exception, or an exception / error / stack / stackTrace / trace key is present |
sql |
type is query, or an sql field is present |
http |
type is http, or a method or url field is present |
log |
type is log, or a level field is present |
data |
anything else — the generic fallback |
Ray-style types (
model,collection,table,measure,performance,event,html,var) are recognized only by an explicittype— no guessing from the shape of the data — so that, for example,eventandlogcan't collide.
Each kind has its own icon, color label, filter tab, and metric badges.
var — variable dump
A structured, type-aware dump of a live value (the output of dump() from the PHP library).
- Reads
value(the serialized node tree), optionallylabel,language(php/node/python/go, shown as a badge), andcaller({file, line, function}). callerbecomes a clickable jump-to-editor link.- The tree understands the kinds:
object,array,map,set,string,int,float,bool,null,undefined,resource,callable,ref(cyclic reference). Objects show the class name and property visibility (+public,#protected,-private). Trimmed branches get an orange "truncated" label.
sql — database query
- Reads
sql(string),bindings(array), andtime(ms). - Formats the query, colors the time by thresholds (> 1000 ms red, > 100 ms orange, else green), and in the Interpolated section substitutes real values from
bindingsfor?(null→NULL, numbers and booleans directly, strings quoted).
http — HTTP request
- Reads
method,url,status,headers, andbody. - The status is colored by range (≥ 500 red, ≥ 400 orange, else green).
- The Copy cURL button assembles a
curlcommand from the method, URL, headers, and body.
request — request summary
The front page of a request group: what was called, how it ended, how long it took, who was signed in. The Laravel middleware and the Symfony subscriber emit one per HTTP request on terminate.
- Reads
method,url,route,controller,status,time(ms),memory(peak bytes),user,ip— all optional, and anything else you send rides along. - The flag follows the status like
httpdoes: ≥500 red, ≥400 yellow, ≥300/none blue, else green. - In the list, the request group's header picks up the status and total time from it; opening the group's waterfall uses its wall time (which covers work before the first dump and after the last) instead of the span between dumps.
log — log line
- Reads
level,message, and optionaldetails. leveldrives the color badge (error → red, warning → orange, info → blue, debug → …).- In the detail, the content renders as a generic JSON tree —
logdiffers fromdataby its icon, color, filter tab, and level metric, not by a custom layout.
model — ORM model
- Reads
class(ormodel),attributes,relations,connection, andexists. attributesrenders as a key/value table,relationsas a tree, andexistsbecomes a "persisted" / "new" badge.
collection — collection
- Reads
items(ordata) andcount. - If every item is a flat record, it renders as a table with columns derived from the union of keys; otherwise as a tree.
table — table
- Reads
columnsandrows. Rows can be arrays (aligned to columns; without given columns the headers are filled in as#0, #1, …) or records.
measure — measurement
- Reads
name,time(orduration, ms),memory(bytes), andcontext. - The time is color-graded, and memory is shown in readable units.
performance — performance
- Reads
metrics(object),breakdown(an object of ms numbers, rendered as a stacked bar), andcontext. - Metric values are auto-formatted by key name:
memory/bytes/size→ bytes,time/duration/latency/ms→ milliseconds,cpu/usage/percent→ percentages. - A memory snapshot from the PHP library (
Dumpio::memory()) arrives as aperformancedump withcurrent/peak/limitmetrics, rendered as byte tiles.
event — event
- Reads
event(badge),entity,entity_id(orentityId),actor,data, andmetadata.
trace — call stack
A dedicated view of the call stack (backtrace) sent by Dumpio::trace() from the PHP library.
- Reads
frames(an array of frames). Each frame can carryfunction,class,type,file, andline. - Each frame renders as
Class->method()with a clickablefile:linelink for jump-to-editor. The library's own frames are stripped, so you see only your code.
html — HTML preview
Renders foreign HTML inside a fully isolated iframe (no scripts, no same-origin, no forms) under a strict Content-Security-Policy.
- Reads
html(string) and optionallytext, and usesmessageas the title. - Remote resources (tracking pixels, external CSS and fonts) are blocked by default; a "Load remote resources" toggle enables them for that dump.
- Tabs: Preview (rendered), Text (the text part), Source (the source HTML).
mail — email preview
The same isolated preview as html, plus an email envelope header.
- Reads
html,text,subject(also the title),from,to,cc,bcc(each accepts a string or{name, address}/{name, email}) andattachments(an array of{name, size, mime}). - The header shows subject / from / to / cc / attachments; the body has HTML / Text / Source tabs.
json — JSON document
A raw JSON body — an API response, a webhook payload, a config file — shown with a collapsible tree and the source side by side.
- Reads
json(the document, as a string) and usesmessageas the title. - Tabs: Tree (parsed, searchable, expand/collapse) and Raw (pretty-printed source).
- A body that isn't valid JSON still shows: the Raw tab renders it as sent, with the parser error above it.
- The document rides in its own field, so a large response isn't clipped by the value serializer.
xml — XML document
A SOAP envelope, an RSS feed, a config file.
- Reads
xml(the document, as a string) and usesmessageas the title. - Tabs: Tree (the parsed document as collapsible elements with their attributes — the shape, not the angle brackets) and Raw (the source, indented and syntax-highlighted).
- A document that isn't well-formed still shows its source, with the parser error above it.
image — image preview
A screenshot, a generated chart, a thumbnail.
- Reads
url(adata:URI or anhttp(s)URL) plus optionalalt,width,height,mime, and usesmessageas the title. - A
data:URI renders inline — the bytes came with the dump, so nothing leaves your machine. - A remote URL is not fetched until you tick "Load remote image" (it would otherwise tell the host that you opened the dump); "Open in browser" hands it to your real browser instead.
notify — desktop notification
For the moment you'd otherwise miss while working in another window: a long import finishing, a webhook finally arriving.
- Reads
message(the body, also the list title) and optionaltitle(defaults to "Dumpio"). - The notification is raised by Dumpio itself the moment the dump lands, even when the window is hidden; clicking it brings the app forward.
- The dump is also stored and listed like any other entry, so you keep the record.
raw — unparseable input
You don't send it on purpose — Dumpio creates it internally when it receives input it couldn't parse as JSON. It shows the parser error and the original text. See Dump format.
data (default)
Every dump without a recognized type renders as an interactive JSON tree with:
- copying the path to a node (e.g.
user.roles[0].name) and the value, - clickable URLs (they open in the browser),
- full-text search within the tree with a regular-expression toggle and expand/collapse all.
Repeat counts
If the content carries count > 1 (from the SDK's count() deduplication helper), both the list and the detail show a ×N badge instead of repeating the row.