Update Label Status
curl --request PUT \
--url https://api.loopreturns.com/api/v1/labels/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"status": "new"
}
'import requests
url = "https://api.loopreturns.com/api/v1/labels/{id}"
payload = { "status": "new" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({status: 'new'})
};
fetch('https://api.loopreturns.com/api/v1/labels/{id}', 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.loopreturns.com/api/v1/labels/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'status' => 'new'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.loopreturns.com/api/v1/labels/{id}"
payload := strings.NewReader("{\n \"status\": \"new\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.loopreturns.com/api/v1/labels/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"new\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.loopreturns.com/api/v1/labels/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"new\"\n}"
response = http.request(request)
puts response.read_body{
"errors": "Unauthorized."
}{
"message": "This action is unauthorized."
}{
"errors": "Label not found."
}{
"message": "The status field is required.",
"errors": {
"status": [
"The status field is required."
]
}
}{
"errors": "Error updating label."
}Label Requests
Update Label Status
Push a status update for a label. Required for carriers Loop doesn’t track automatically. For supported carriers, Loop already tracks third-party labels and updates their status, so this call isn’t needed. See the Third Party Labels integration guide for details.
Calling this endpoint doesn’t turn off automatic tracking. For a supported carrier, both update the same label status, and the most recent update wins.
Required API key scope
- Labels (Write)
PUT
/
labels
/
{id}
Update Label Status
curl --request PUT \
--url https://api.loopreturns.com/api/v1/labels/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"status": "new"
}
'import requests
url = "https://api.loopreturns.com/api/v1/labels/{id}"
payload = { "status": "new" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({status: 'new'})
};
fetch('https://api.loopreturns.com/api/v1/labels/{id}', 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.loopreturns.com/api/v1/labels/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'status' => 'new'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.loopreturns.com/api/v1/labels/{id}"
payload := strings.NewReader("{\n \"status\": \"new\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.loopreturns.com/api/v1/labels/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"new\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.loopreturns.com/api/v1/labels/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"new\"\n}"
response = http.request(request)
puts response.read_body{
"errors": "Unauthorized."
}{
"message": "This action is unauthorized."
}{
"errors": "Label not found."
}{
"message": "The status field is required.",
"errors": {
"status": [
"The status field is required."
]
}
}{
"errors": "Error updating label."
}Authorizations
oauth2labels-write
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The unique identifier for the label, created by Loop. This is the identifier that is returned from the Create Label request.
Example:
67329889100573
Body
application/json
The label status values accepted when updating a label.
Available options:
new, pre_transit, in_transit, out_for_delivery, delivered Example:
"new"
Response
No Content