curl --request GET \
--url https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest \
--header 'x-rr-apikey: <api-key>' \
--header 'x-rr-apitoken: <api-key>'import requests
url = "https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest"
headers = {
"x-rr-apikey": "<api-key>",
"x-rr-apitoken": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-rr-apikey': '<api-key>', 'x-rr-apitoken': '<api-key>'}
};
fetch('https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-rr-apikey: <api-key>",
"x-rr-apitoken: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-rr-apikey", "<api-key>")
req.Header.Add("x-rr-apitoken", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest")
.header("x-rr-apikey", "<api-key>")
.header("x-rr-apitoken", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-rr-apikey"] = '<api-key>'
request["x-rr-apitoken"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"returnRequestId": 123,
"returnRequestNumber": "<string>",
"sellerReferenceNumber": "<string>",
"returnStatusCode": "<string>",
"returnTitle": "<string>",
"totalValue": 123,
"totalValueCurrency": "<string>",
"rma": "<string>",
"remarks": "<string>",
"isArchived": true,
"returnRequestFrom": "<string>",
"shipments": [
{
"shipmentId": 123,
"returnRequestId": 123,
"shipmentNumber": "<string>",
"shipmentStatusCode": "<string>",
"shipmentServiceType": "<string>",
"label": {
"labelId": 123,
"labelRequestStatusCode": "<string>",
"trackingNumber": "<string>",
"labelUrl": "<string>",
"qrcodeUrl": "<string>",
"carrier": "<string>"
}
}
],
"returnRequestLineItems": [
{}
],
"returnInventoryList": [
{}
],
"returnShipmentCustomFieldList": [
{}
]
}{
"correlationId": "<string>",
"meta": {
"status": 123,
"data": {},
"errorCode": "<string>",
"error": {}
}
}Get return shipment details
curl --request GET \
--url https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest \
--header 'x-rr-apikey: <api-key>' \
--header 'x-rr-apitoken: <api-key>'import requests
url = "https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest"
headers = {
"x-rr-apikey": "<api-key>",
"x-rr-apitoken": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-rr-apikey': '<api-key>', 'x-rr-apitoken': '<api-key>'}
};
fetch('https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-rr-apikey: <api-key>",
"x-rr-apitoken: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-rr-apikey", "<api-key>")
req.Header.Add("x-rr-apitoken", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest")
.header("x-rr-apikey", "<api-key>")
.header("x-rr-apitoken", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.returnshelper.com/uat/user/api/ReturnRequest/getReturnRequest")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-rr-apikey"] = '<api-key>'
request["x-rr-apitoken"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"returnRequestId": 123,
"returnRequestNumber": "<string>",
"sellerReferenceNumber": "<string>",
"returnStatusCode": "<string>",
"returnTitle": "<string>",
"totalValue": 123,
"totalValueCurrency": "<string>",
"rma": "<string>",
"remarks": "<string>",
"isArchived": true,
"returnRequestFrom": "<string>",
"shipments": [
{
"shipmentId": 123,
"returnRequestId": 123,
"shipmentNumber": "<string>",
"shipmentStatusCode": "<string>",
"shipmentServiceType": "<string>",
"label": {
"labelId": 123,
"labelRequestStatusCode": "<string>",
"trackingNumber": "<string>",
"labelUrl": "<string>",
"qrcodeUrl": "<string>",
"carrier": "<string>"
}
}
],
"returnRequestLineItems": [
{}
],
"returnInventoryList": [
{}
],
"returnShipmentCustomFieldList": [
{}
]
}{
"correlationId": "<string>",
"meta": {
"status": 123,
"data": {},
"errorCode": "<string>",
"error": {}
}
}returnRequestId returned from Create return shipment.
A return shipment represents a parcel before warehouse receipt. Once the warehouse logs the parcel it becomes a return inventory item; from that point use Get return inventory details, which carries the post-receipt handling data.
Recovering a missed label
The label is atshipments[].label.labelUrl. The main use for this endpoint is reconciliation after a system incident: if your receiver missed a label notification, call it with the returnRequestId to read the current labelUrl and trackingNumber directly. An empty labelUrl means generation has not finished (or failed) — check shipments[].label.labelRequestStatusCode.
labelGenerated webhook, which is the source of truth. Don’t poll this endpoint to discover labels under normal operation — subscribe to Webhooks and use this endpoint only to backfill after a missed or failed delivery.Authorizations
Your API key
Your API token — keep this private
Query Parameters
Return request identifier, as returned by Create return shipment.
Response
Success
Full record of a return shipment. Successful responses also carry the standard envelope fields (correlationId, meta) alongside the fields below.
Return request identifier
Return request number
Your merchant-supplied reference, echoed back for reconciliation
Current return status code
Return title
Declared total value of the return
ISO 4217 currency code of totalValue (e.g. usd)
Warehouse-assigned RMA reference (uppercased). Populated once the warehouse processes the parcel.
Free-text remarks
Whether the return request is archived
Origin/source of the return request
Shipments belonging to this return request, each with its label.
Show child attributes
Show child attributes
Line items included in the return request.
Return inventory records derived from this request, populated once the warehouse has received the parcel. Empty before receipt — use Get return inventory details for full inventory data at that stage.
Custom fields attached to the return shipment.