I'm guessing that the key you need to use is set in the HTTP headers.
Given that is true, and that you also need to set this particular value in the HTTP header in the following requests, you may solve it like this:
In your first REST Request, you add a Script Assertion with the following code:
def value = messageExchange.responseHeaders["session-id"];
assert value != null
assert value.size() == 1
context.setProperty("sessionID", value)
You will need to substitute "session-id" in the first line with whatever name your correct HTTP header has.
You should NOT change the "sessionID" in the last line. This is a separate variable name we use for ourselves.
This will assert that a value has been set, and will then save it as a context variable, which we can reuse in later steps.
Add a Groovy Script teststep after your first REST Request Teststep. Rename it to "Extract Context Variable" (that name will be reused in the next step)
Then add this code in it:
def value = context.getProperty("request-id")
return value
Context values are not available from anywhere. By extracting it here, and returning the value, it will be easier to make use of it in the rest of your REST Request teststeps.
Open your second REST Request Teststep (and third, and fourth etc. if you have more)
Open the Headers pane at the bottom
Create a new key named the same as the header your received in your first REST Request
In the value, you enter
${Extract Context Variable#result}
When running the entire testcase, you should now automatically retrieve the header returned in the first response, and then transfer and reuse it in the following requests.