def METHOD_NAME(self, ttl=None, next_cursor=None, **options):
    """
    Creates a signed Search URL that can be used on the client side.
    :param ttl: The time to live in seconds.
    :param next_cursor: Starting position.
    :param options: Additional url delivery options.
    :return: The resulting search URL.
    """
    api_secret = options.get("api_secret", cloudinary.config().api_secret or None)
    if not api_secret:
        raise ValueError("Must supply api_secret")
    if ttl is None:
        ttl = self._ttl
    query = self.as_dict()
    _next_cursor = query.pop("next_cursor", None)
    if next_cursor is None:
        next_cursor = _next_cursor
    b64query = base64url_encode(json_encode(query, sort_keys=True))
    prefix = build_distribution_domain(options)
    signature = compute_hex_hash("{ttl}{b64query}{api_secret}".format(
        ttl=ttl,
        b64query=b64query,
        api_secret=api_secret
    ), algorithm=SIGNATURE_SHA256)
    return "{prefix}/search/{signature}/{ttl}/{b64query}{next_cursor}".format(
        prefix=prefix,
        signature=signature,
        ttl=ttl,
        b64query=b64query,
        next_cursor="/{}".format(next_cursor) if next_cursor else "")