# Cheap Utilities URL Normalizer

> Cheap Utilities URL Normalizer is a paid API for AI agents from cheap-utilities.x402tookit.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-29).

Normalizes a URL by lowercasing the host, removing default ports and fragments, sorting query parameters, and stripping known tracking parameters.

## Facts

- Endpoint: GET https://cheap-utilities.x402tookit.com/url-normalize?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/cheap-utilities-url-normalizer-84c796d4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_R1ECBZjrCgjf7Azr1N1SP

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 cheap-utilities-url-normalizer-84c796d4
```

Example prompt: Can you normalize this URL for me — strip any tracking params and sort the query string so it's in canonical form: https://Example.COM:80/path?utm_source=email&b=2&a=1#section?

## When to prefer this

Use this endpoint when you need a purely structural, client-side URL normalization — no DNS lookup, no HTTP fetch, just deterministic cleaning of the URL string. Prefer it over full crawl-based deduplication when you want fast, cheap canonical forms for comparison, storage, or display. It's especially useful for stripping tracking parameters (UTM, fbclid, gclid) and sorting query strings before indexing or deduplication.

## Known failure modes

- Missing or empty 'url' query parameter returns an error
- Malformed or unparseable URL may return a null normalized field or degraded=true
- Non-HTTP/HTTPS schemes may return null or unsupported verdict
- Network timeout if the service is temporarily unavailable
- Payment failure (402) if USDC balance is insufficient

## How this service works

Normalize a URL: lowercase host, default port and fragment removed, sorted query, tracking parameters stripped.

## Output

Returns a structured object containing the normalized URL string, broken-down components (scheme, host, path, port, sorted query parameter array), a list of stripped tracking parameters, a verdict and summary of what was changed, an 'asOf' timestamp, and a degraded flag indicating if the normalization was partial.

## 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": "URL to normalize (not fetched)"
      }
     }
    }
   },
   "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": {},
      "query": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "object",
        "properties": {
         "key": {
          "type": [
           "null",
           "string"
          ]
         },
         "value": {
          "type": [
           "null",
           "string"
          ]
         }
        }
       }
      },
      "scheme": {
       "type": [
        "null",
        "string"
       ]
      },
      "source": {
       "type": [
        "null",
        "string"
       ]
      },
      "reasons": {
       "type": [
        "array",
        "null"
       ]
      },
      "summary": {
       "type": [
        "null",
        "string"
       ]
      },
      "verdict": {
       "type": [
        "null",
        "string"
       ]
      },
      "degraded": {
       "type": [
        "boolean",
        "null"
       ]
      },
      "disclaimer": {
       "type": [
        "null",
        "string"
       ]
      },
      "normalized": {
       "type": [
        "null",
        "string"
       ]
      },
      "notChecked": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      },
      "strippedParameters": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/cheap-utilities-url-normalizer-84c796d4/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from cheap-utilities.x402tookit.com](https://www.zero.xyz/host/cheap-utilities.x402tookit.com/llms.txt)
