Refresh Request using refresh token

I am trying to make a refresh request using postman.
I keep getting the “Invalid refresh token” error.
Does the “refresh_token” and “grant_type” go in the query string as params or the body? If I don’t put it in the params, it comes back with the error “missing or unsupported grant_type” so I am guessing it both should go in the query string.

According to this post, it seems its being sent as data, but api doc says otherwise.
https://integration.keap.com/t/invalid-refresh-token/82597/3

I am passing refresh_token and grant_type as query string params and Authorization and Content-Type as headers. no body.
What am I missing?

Are you making the request as URL encoded? It should be “grant_type” = “refresh_token” and “refresh_token” = your token. You also need to add as a header the client Id and client secret
And you should send the content on the body.

https://developer.infusionsoft.com/getting-started-oauth-keys/

When you see “Note : The content type should be set to application/x-www-form-urlencoded”, the contents should be in urlencoded format in the POST body.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
application/x-www-form-urlencoded: the keys and values are encoded in key-value tuples separated by '&', with a '=' between the key and the value. Non-alphanumeric characters in both keys and values are percent encoded: this is the reason why this type is not suitable to use with binary data (use multipart/form-data instead)