# Tanod utilpeek Line Tools

> Tanod utilpeek Line Tools is a paid API for AI agents from tanod.dev, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-11).

Applies a configurable pipeline of line-level text operations — trim, dedupe, sort, shuffle, number, and more — to a block of text.

## Facts

- Endpoint: POST https://tanod.dev/v1/text/lines?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tanod-utilpeek-line-tools-b3312f2b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_p511rXvdGYbOsJHvTA_AQ

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 tanod-utilpeek-line-tools-b3312f2b -d '<json body>'
```

Example prompt: Take this list of names, trim whitespace, remove duplicates (case-insensitive), sort them alphabetically using natural sort, and then number each line starting at 1: [paste text here].

## When to prefer this

Choose this endpoint when you need deterministic, composable line-level text transformations — especially when multiple operations (e.g. trim + dedupe + sort + number) need to be applied in a single call. It is purpose-built for line manipulation and supports reproducible shuffling via seed, which general-purpose text APIs typically lack.

## Known failure modes

- Text exceeds 200,000 character limit — request rejected
- operations array empty or missing — validation error
- Invalid enum value in operations or sort_mode — schema validation error
- seed out of range for shuffle — error response
- number_separator longer than 10 characters — rejected

## How this service works

One MCP server and HTTP API with 193 pay-per-call tools for AI agents (security checks, chain data, finance, aviation, documents), plus free uptime and MikroTik monitoring and 130+ free browser tools. No signup; free daily tier. Operated by an AI.

## Output

Returns the processed text with lines transformed according to the specified operations pipeline. May include numbered lines, sorted/shuffled/deduplicated content, and optionally a frequency count of the most common lines if count_unique is enabled.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "seed": {
   "type": "integer",
   "default": 0,
   "maximum": 9223372036854776000,
   "minimum": 0,
   "description": "Shuffle seed: same seed, same order."
  },
  "text": {
   "type": "string",
   "maxLength": 200000,
   "minLength": 1,
   "description": "The text (at most 200,000 characters)."
  },
  "top_n": {
   "type": "integer",
   "default": 100,
   "maximum": 1000,
   "minimum": 1,
   "description": "With count_unique: how many of the most frequent lines to return (1-1000, default 100)."
  },
  "sort_mode": {
   "enum": [
    "lexical",
    "natural",
    "length"
   ],
   "type": "string",
   "default": "lexical",
   "description": "For sort: lexical (default, by character), natural (numbers by value: item 9 before item 10) or length (shortest first)."
  },
  "descending": {
   "type": "boolean",
   "default": false,
   "description": "For sort: largest first (default false: ascending)."
  },
  "operations": {
   "type": "array",
   "items": {
    "enum": [
     "trim",
     "remove_empty",
     "dedupe",
     "sort",
     "reverse",
     "shuffle",
     "number"
    ],
    "type": "string"
   },
   "maxItems": 10,
   "minItems": 1,
   "description": "Applied in order: trim, remove_empty, dedupe, sort, reverse, shuffle, number."
  },
  "count_unique": {
   "type": "boolean",
   "default": false,
   "description": "Also return the most frequent lines with counts."
  },
  "number_start": {
   "type": "integer",
   "default": 1,
   "maximum": 1000000,
   "minimum": -1000000,
   "description": "For number: the first line's number (-1,000,000 to 1,000,000; default 1)."
  },
  "case_insensitive": {
   "type": "boolean",
   "default": false,
   "description": "dedupe / sort / count compare casefolded lines."
  },
  "number_separator": {
   "type": "string",
   "default": ". ",
   "maxLength": 10,
   "description": "For number: text between the number and the line (at most 10 characters; default \". \")."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "text": "apple\nbanana\ncherry 9\ncherry 10",
  "source": {
   "library": "own implementation (standard library)",
   "license": "n/a"
  },
  "removed": 2,
  "lines_in": 6,
  "lines_out": 4,
  "operations": [
   "remove_empty",
   "dedupe",
   "sort"
  ],
  "unique_lines": 4
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-utilpeek-line-tools-b3312f2b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tanod.dev](https://www.zero.xyz/host/tanod.dev/llms.txt)
