Posting filters in C Sharp

Hey does anyone know how to set up data for POST when using C#'s HttpWebRequest?

What I have works except for filtering data and such:

public static void Main()
{
    var data = *###How do I format the sorting, filters, etc... here?###*
    byte[] byteArray = Encoding.UTF8.GetBytes(data);
    PostApiCall("http://api.tcgplayer.com/v1.37.0/catalog/categories/1/search", byteArray);
}

public static void PostApiCall(string url, byte[] postData)
{
    WebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    request.Headers["Authorization"] = "bearer " + ACCESS_TOKEN;
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = postData.Length;
    
    Stream dataStream = request.GetRequestStream();
    dataStream.Write(postData, 0, postData.Length);
    dataStream.Close();

    WebResponse response = request.GetResponse();
    Console.WriteLine(((HttpWebResponse)response).StatusDescription);

    using (dataStream = response.GetResponseStream())
    {
        StreamReader reader = new StreamReader(dataStream);
        string responseFromServer = reader.ReadToEnd();
        Console.WriteLine(responseFromServer);
    }
    response.Close();
}

Ok so far I’ve figured out as far as sorting:

var data = "limit=100&sort=MinPrice DESC";

works for setting limit and sorting, but I’m still lost on how to feed in the filters

Still getting nowhere, I’ve tried creating a custom class to build an object with all the info in it and passed that but still no go, actually took me a step back as filtering no longer worked:

class APIPostData
    {
        public int limit;
        public string sort;
        public Dictionary<string, string[]> filters;
    }
string[] SetNames = new string[] { "Chronicles" };
APIPostData data = new APIPostData()
        {
            limit = 100,
            sort = "MinPrice DESC",
            filters = new Dictionary<string, string[]>()
            {
                { "SetName", SetNames }
            }
        };
byte[] byteArray = Encoding.UTF8.GetBytes(JsonUtility.ToJson(data));

Any help that may make what I have work would be greatly appreciated or should I just go to a C# forum?

Glad I have a place to go to talk this out!

So 1 issue I realized was my ContentType wasn’t set to application/json so the input was being formatted wrong.

So now the last attempt works again as far as sorting and limits, though I still need to know how the string is to be formatted to include filters:

APIPostData data = new APIPostData()
        {
            limit = 100,
            sort = "MinPrice DESC",
            filters = new Dictionary<string, string[]>()
            {
                { "SetName", SetNames }
            }
        };

The dictionary is being ignored so I need to find the format that is acceptable.