Hey @huang3r! Hmm, great question.
Would something like this work for you?
http://community.retool.com/t/how-can-i-skip-a-parameter-from-a-request-depending-on-the-value/7775
http://community.retool.com/t/conditional-property-using-query-library/12116
Basically, if you have all keys already set, then you can optionally pass them in by setting their values to something like {{additionalScopeKey || null }}
to use null
if there's no key.
If you have an unknown set of keys, then I think if you do something like use a Raw body and then pass in an entire dynamically created object (via additionalScope), you could get this to work. Full disclosure, I haven't actually done this before so I'm not 100% sure, but I think it might be a good option!