> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upsolve.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# URL functions

## Extraction functions

The URL extraction functions extract components from HTTP URLs
(or any valid URIs conforming to RFC 2396).
The following syntax is supported:

```
[protocol:][//host[:port]][path][?query][#fragment]
```

The extracted components do not contain URI syntax separators
such as `:` or `?`.

### url\_extract\_fragment

```
url_extract_fragment(url) -> varchar
```

Returns the fragment identifier from `url`.

### url\_extract\_host

```
url_extract_host(url) -> varchar
```

Returns the host from `url`.

### url\_extract\_parameter

```
url_extract_parameter(url, name) -> varchar
```

Returns the value of the first query string parameter named `name`
from `url`. Parameter extraction is handled in the typical manner
as specified by RFC 1866.

### url\_extract\_path

```
url_extract_path(url) -> varchar
```

Returns the path from `url`.

### url\_extract\_port

```
url_extract_port(url) -> bigint
```

Returns the port number from `url`.

### url\_extract\_protocol

```
url_extract_protocol(url) -> varchar
```

Returns the protocol from `url`:

```sql theme={null}
SELECT url_extract_protocol('http://localhost:8080/req_path');
-- http

SELECT url_extract_protocol('https://127.0.0.1:8080/req_path');
-- https

SELECT url_extract_protocol('ftp://path/file');
-- ftp
```

### url\_extract\_query

```
url_extract_query(url) -> varchar
```

Returns the query string from `url`.

## Encoding functions

### url\_encode

```
url_encode(value) -> varchar
```

Escapes `value` by encoding it so that it can be safely included in
URL query parameter names and values:

* Alphanumeric characters are not encoded.
* The characters `.`, `-`, `*` and `_` are not encoded.
* The ASCII space character is encoded as `+`.
* All other characters are converted to UTF-8 and the bytes are encoded
  as the string `%XX` where `XX` is the uppercase hexadecimal
  value of the UTF-8 byte.

### url\_decode

```
url_decode(value) -> varchar
```

Unescapes the URL encoded `value`.
This function is the inverse of [url\_encode()](#url-encode).
