# URL Parser (RFC 3986)

> URL Parser (RFC 3986) is a paid API for AI agents from url-text-tools.x402tookit.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-21).

Splits a URL into its RFC 3986 components — scheme, host, port, path, query, and fragment — and returns warnings about any anomalies, without fetching the URL.

## Facts

- Endpoint: GET https://url-text-tools.x402tookit.com/url-parse?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-21
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/url-parser-rfc-3986-edaba33d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap__2P85lWfoXiP2pFZ-c4cr

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability url-parser-rfc-3986-edaba33d
```

Example prompt: Can you parse this URL for me — 'https://user:pass@example.com:8080/path/to/page?foo=bar&baz=qux#section2' — and break it down into its scheme, host, port, path, query params, and fragment, flagging any warnings?

## When to prefer this

Choose this endpoint when you need a lightweight, standards-compliant RFC 3986 decomposition of a URL without any network request to the target. It is ideal for preprocessing URLs before storage, validation pipelines, security checks for embedded credentials, or feeding individual components into downstream logic. Prefer it over full-featured HTTP clients when you explicitly do NOT want the URL fetched.

## Known failure modes

- URL exceeds 2000 characters — likely rejected or truncated
- Malformed input that cannot be parsed at all — returns nulls with warning verdict
- Missing required 'url' query parameter — validation error
- Relative URL without a base — parsed as-is with warnings about missing scheme/host

## How this service works

Split a URL into scheme, host, port, path, query and fragment per RFC 3986, with warnings. Never fetches the URL.

## Output

Returns an object containing the parsed URL components: scheme, host, port, path, query (raw string), queryParams (array of key-value objects), fragment, userinfo, and a verdict/summary with a list of warnings, warning count, a degraded flag, and a disclaimer. All fields may be null if absent in the source URL.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "The URL or URI reference to split (up to 2000 characters)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "asOf": {
       "type": [
        "null",
        "string"
       ]
      },
      "host": {
       "type": [
        "null",
        "string"
       ]
      },
      "path": {
       "type": [
        "null",
        "string"
       ]
      },
      "port": {
       "type": [
        "null",
        "string"
       ]
      },
      "query": {
       "type": [
        "null",
        "string"
       ]
      },
      "scheme": {
       "type": [
        "null",
        "string"
       ]
      },
      "source": {
       "type": [
        "null",
        "string"
       ]
      },
      "reasons": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      },
      "summary": {
       "type": [
        "null",
        "string"
       ]
      },
      "verdict": {
       "type": [
        "null",
        "string"
       ]
      },
      "degraded": {
       "type": [
        "boolean",
        "null"
       ]
      },
      "fragment": {
       "type": [
        "null",
        "string"
       ]
      },
      "userinfo": {
       "type": [
        "null",
        "string"
       ]
      },
      "disclaimer": {
       "type": [
        "null",
        "string"
       ]
      },
      "notChecked": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      },
      "queryParams": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "object",
        "properties": {
         "key": {
          "type": [
           "null",
           "string"
          ]
  
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/url-parser-rfc-3986-edaba33d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from url-text-tools.x402tookit.com](https://www.zero.xyz/host/url-text-tools.x402tookit.com/llms.txt)
