URSY.DEVPART OF THE URSY NETWORKSign inBuild with URSY

Every contract sourcedEvery check datedGaps shown, never filledBuild with URSY

Capabilities

SEO URL Slug Optimizer

Turn a topic or title into a concise, editable search-friendly URL path.

How this capability is exposed

Stable ID
ursy.io:url-slug-optimizer
Owning service
URSY.io
Runtime
@ursy/runtime · 1.0.0
Execution modes
browser, node, mcp-local, remote_transient
Remote execution
Available at the owning service
Remote endpoint
https://api.ursy.io/v1/run
Input schemaOutput schemaOpen the owning interface ↗

Capability declarations describe what the service exposes. They are not a guarantee of availability or permission to execute an operation.

Accepted contract

REGISTRY JSON
{
    "schema": "ursy.io/capability/v1",
    "id": "ursy.io:url-slug-optimizer",
    "slug": "url-slug-optimizer",
    "name": "SEO URL Slug Optimizer",
    "version": "1.0.0",
    "summary": "Turn a topic or title into a concise, editable search-friendly URL path.",
    "intents": [
        "SEO URL slug generator"
    ],
    "aliases": [],
    "keywords": [],
    "category": "seo-tools",
    "deterministic": true,
    "side_effects": false,
    "network_required": false,
    "execution": {
        "preferred": "local",
        "supported": [
            "browser",
            "node",
            "mcp-local",
            "remote_transient"
        ],
        "local_executable": true,
        "remote_safe": true,
        "remote_enabled": true,
        "remote_endpoint": "https://api.ursy.io/v1/run"
    },
    "privacy": {
        "input_leaves_device_by_default": false,
        "payload_logged": false
    },
    "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "text": {
                "type": "string",
                "maxLength": 5242880
            },
            "max_words": {
                "type": "integer",
                "minimum": 1,
                "maximum": 20,
                "default": 7
            },
            "remove_stop": {
                "type": "string",
                "enum": [
                    "yes",
                    "no"
                ],
                "default": "yes"
            },
            "locale": {
                "type": "string",
                "minLength": 2,
                "maxLength": 35,
                "pattern": "^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
                "default": "en-US",
                "description": "Locale for display text; numerical result fields are locale independent."
            }
        },
        "required": [
            "text"
        ],
        "additionalProperties": false
    },
    "output_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "text": {
                "type": "string",
                "maxLength": 26214400
            },
            "metrics": {
                "type": "array",
                "items": {
                    "type": "object",
                    "required": [
                        "label",
                        "value"
                    ],
                    "properties": {
                        "label": {
                            "type": "string",
                            "maxLength": 100
                        },
                        "value": {
                            "type": [
                                "string",
                                "number"
                            ],
                            "maxLength": 1000
                        }
                    },
                    "additionalProperties": false
                },
                "maxItems": 10
            }
        },
        "required": [
            "text",
            "metrics"
        ],
        "additionalProperties": false
    },
    "examples": [
        {
            "input": {
                "text": "The Best Tea for a Rainy Day"
            },
            "output": {
                "text": "best-tea-rainy-day",
                "metrics": [
                    {
                        "label": "Before",
                        "value": "28"
                    },
                    {
                        "label": "After",
                        "value": "18"
                    }
                ]
            }
        }
    ],
    "limits": {
        "max_input_bytes": 5308416,
        "max_output_bytes": 26214400,
        "max_json_depth": 100,
        "max_csv_cells": 1000000
    },
    "canonical_url": "https://ursy.io/seo-tools/url-slug-optimizer/",
    "descriptor_url": "https://ursy.io/wp-json/ursy-tools/v2/capabilities/url-slug-optimizer",
    "runtime": {
        "package": "@ursy/runtime",
        "version": "1.0.0",
        "module": "@ursy/runtime",
        "entry": "run",
        "slug": "url-slug-optimizer"
    },
    "health": {
        "status": "ok",
        "last_tested": "2026-09-11T17:24:33.220Z",
        "runtime_version": "1.0.0",
        "golden_fixtures": 1,
        "node_contract_tests": 2,
        "browser_verified": true,
        "tests_passed": 5,
        "tests_total": 5,
        "test_suite": "tests/runtime-canary.test.mjs",
        "browser_suite": "tests/runtime-browser.py"
    },
    "audit": {
        "classification": "A",
        "engine": "text-transform",
        "mode": "seo-slug",
        "headless_possible": true,
        "notes": "Deterministic calculation/text core can be separated from the existing DOM workbench; schemas and regression fixtures remain required."
    },
    "assumptions": [],
    "formulae": [],
    "input_schema_id": "ursy.io:url-slug-optimizer:input_schema",
    "output_schema_id": "ursy.io:url-slug-optimizer:output_schema",
    "service_id": "ursy-io",
    "parent_id": "",
    "source_url": "https://ursy.io/wp-json/ursy-tools/v2/catalog",
    "source_type": "capability_manifest",
    "verified_at": "2026-10-14 06:31:09",
    "revision": "1d8b936baab384dc6a263ac07df7bf97f9b81b419f765e7f9a1adea1d51b860d",
    "type": "capabilities",
    "source": {
        "url": "https://ursy.io/wp-json/ursy-tools/v2/catalog",
        "type": "capability_manifest"
    },
    "last_verified_at": "2026-10-14 06:31:09",
    "stale": false
}