Parse node
URL
Split a URL column into its parts (scheme, host, domain, path, query, fragment), pull query parameters into columns, or explode them into rows.
What it does
Breaks a URL text column into structured data, three ways. Components splits each URL into the parts you pick: scheme, host, path, query, fragment, and smart pieces like subdomain, registrable domain and public suffix. Query → columns pulls named query parameters into their own typed columns. Query → rows explodes every parameter into one name/value row each.
Inputs and outputs
| Inputs | One. |
| Outputs | One. |
When to use it
- Group traffic by registrable domain or public suffix (example.co.uk, not just the raw host)
- Split marketing links into utm_source / utm_campaign / utm_medium columns
- Land unknown query strings as a tidy name/value table you can pivot
- Pull the host or path out of a column of links for cleanup or joining
Examples
Domain intelligence
mail.google.co.uk → subdomain=mail, domain=google.co.uk, suffix=co.uk
Multi-part suffixes resolve correctly, not just the last label.
Pull query params
?utm_source=news&page=3 → utm_source, page (Integer)
Values are URL-decoded; a missing one is null.
Explode to rows
?a=1&b=2 → 2 rows (a|1, b|2)
Other columns are copied down onto each row.
Bare host
www.example.com/p → host, path
With "assume a scheme" on, scheme-less URLs still parse.
Tips
- Domain, subdomain, and public suffix use the public suffix list, so google.co.uk resolves correctly (not just .uk); an IP address has none of these.
- "When a URL has no scheme": Assume (default) prepends https:// so bare hosts parse; switch to strict to leave them null.
- A null cell or a URL that won't parse yields null parts and the run keeps going. Add the "Is valid?" component to flag which rows parsed.
- In Components, set a prefix like url_ so the new columns don't clash with existing ones; Port can come out as a number or text.
- Query values are percent- and plus-decoded (a%20b and a+b both become "a b").