the min/max solution that codeka presents seems to work great. While it does not guarantee accurate results, it does drastically reduce network traffic.

I simply check again when I get the results back and filter out non-matches client side, e.g.



    Soapi.RouteFactory(site.api_endpoint, apiKey)
        .Users(
        {
            min: username.toLowerCase(),
            max: username.toUpperCase(),
            sort: Soapi.Domain.UserSort.name
        })
        .getPagedResponse(function(data)
        {
            $.each(data.items, function(ignored, user)
            {
                if (user.display_name.toUpperCase() == username.toUpperCase())
                {
    
                    // set the site so we can render links and logo.
                    // this can be refactored down to a literal with needed fields only
                    user.on_site = site;


http://api.stackoverflow.com/0.9/users?sort=name&min=joey&max=JOEY&order=desc