# Csv To Internet Shortcuts — REST API endpoint `csv-to-internet-shortcuts`

Turn a CSV of names and addresses into Windows Internet Shortcut (.url) files, one per row. Returns each file as { name, url, content }, where content is the .url text ([InternetShortcut] then URL=, CRLF line endings), so a caller can write them to disk or zip them. The url column is found by its header (url, link, href, address, website) and the name column by name, title or label; url_column and name_column override the match. A CSV with no header row is read when a cell of its first row is an address. A bare domain gains https://. A row with no address, an address that is not one, or (with web_only, the default) a non-http(s) address such as file: is skipped with its row number and reason, and the other rows still convert. A row with no name is named after its host. Names are made safe for Windows and macOS (\ / : * ? " < > | removed, reserved names such as CON suffixed), and a repeated name gets " (2)". Addresses are written as given and never opened. Does not create .lnk files.

- Category: data
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, API key for tools/call, 120 req/min per IP)
- REST endpoint: POST https://api.findutils.com/api/tools/csv-to-internet-shortcuts/execute (API key, 60 req/min per IP)
- API key: Running a tool needs an API key. Keys are not for sale yet: ask for early access. Without a key, a tool call answers HTTP 402 Payment Required with the error code PAYMENT_REQUIRED. The catalog and the schemas stay open without a key. https://findutils.com/api/#api-keys
- Reference page: https://findutils.com/api/csv-to-internet-shortcuts/
- Same tool on the other surface: https://findutils.com/mcp/csv-to-internet-shortcuts/

## Call the endpoint (verified example)

```bash
curl -X POST https://api.findutils.com/api/tools/csv-to-internet-shortcuts/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "name,url\nTeam Wiki,https://wiki.example.com/team\nExpense Reports,https://expenses.example.com/reports\n"
  }'

# Parameter schema (no key needed)
curl https://api.findutils.com/api/tools/csv-to-internet-shortcuts
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `input` | string | yes | CSV text, normally with a header row. |
| `delimiter` | string | no | Field separator. Default: detected from the first line (comma, semicolon, tab or pipe). |
| `url_column` | string | no | Header of the column holding the addresses, when the automatic match is wrong. |
| `name_column` | string | no | Header of the column holding the shortcut names, when the automatic match is wrong. |
| `web_only` | boolean | no | Skip addresses that are not http or https (file:, ftp:, mailto: and the like). Default true. Default: `true`. |

Example arguments (verified):

```json
{
  "input": "name,url\nTeam Wiki,https://wiki.example.com/team\nExpense Reports,https://expenses.example.com/reports\n"
}
```

OpenAPI 3.1 spec: https://findutils.com/api/openapi.json · Interactive docs: https://findutils.com/api/docs/

## Also an MCP tool

```bash
claude mcp add findutils --transport http https://mcp.findutils.com/ --header "Authorization: Bearer YOUR_API_KEY"
```

Then ask the client to call `findutils:csv_to_internet_shortcuts`. Full MCP reference: https://findutils.com/mcp/csv-to-internet-shortcuts/

---
Full catalog: GET https://api.findutils.com/api/tools · https://findutils.com/api/ · https://findutils.com/llms.txt
