Tracking

AdminUpdated Sep 24, 2026
GEThttps://shippified.net/api/orders/{id}/tracking
Live carrier lookup for an order (cached).
Parameters
NameInTypeRequiredDescription
idpathstringyes
Responses
200 OK
Code samples
cURL
curl -X GET "https://shippified.net/api/orders/{id}/tracking"
TypeScript
const res = await fetch('https://shippified.net/api/orders/{id}/tracking', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://shippified.net/api/orders/{id}/tracking",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://shippified.net/api/orders/{id}/tracking", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://shippified.net/api/orders/{id}/tracking');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://shippified.net/api/orders/{id}/tracking')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://shippified.net/api/orders/{id}/tracking"))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
POSThttps://shippified.net/api/orders/{id}/tracking/refresh
Force-refresh carrier lookup, bypassing cache.
Parameters
NameInTypeRequiredDescription
idpathstringyes
Responses
200 OK
Code samples
cURL
curl -X POST "https://shippified.net/api/orders/{id}/tracking/refresh"
TypeScript
const res = await fetch('https://shippified.net/api/orders/{id}/tracking/refresh', {
  method: 'POST',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://shippified.net/api/orders/{id}/tracking/refresh",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://shippified.net/api/orders/{id}/tracking/refresh", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://shippified.net/api/orders/{id}/tracking/refresh');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://shippified.net/api/orders/{id}/tracking/refresh')
req = Net::HTTP::Post.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://shippified.net/api/orders/{id}/tracking/refresh"))
    .method("POST", BodyPublishers.noBody())
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
POSThttps://shippified.net/api/orders/sync-tracking
Refresh live tracking for every in-flight order in one call.

Re-fetches carrier data, bypassing the cache, for orders that are `ordered` or `shipped`, have a tracking number, and belong to a carrier with a live API on this deployment (see `GET /api/carrier-status`). At most 50 orders per call; lookups run one after another, so a full batch can take a while. Status and delivery-date changes are applied to the orders.

Responses
200 Summary of the run.
{
  "total": 0,
  "refreshed": 0,
  "failed": 0,
  "delivered": 0
}
401 Not authenticated.
Code samples
cURL
curl -X POST "https://shippified.net/api/orders/sync-tracking"
TypeScript
const res = await fetch('https://shippified.net/api/orders/sync-tracking', {
  method: 'POST',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://shippified.net/api/orders/sync-tracking",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://shippified.net/api/orders/sync-tracking", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://shippified.net/api/orders/sync-tracking');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://shippified.net/api/orders/sync-tracking')
req = Net::HTTP::Post.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://shippified.net/api/orders/sync-tracking"))
    .method("POST", BodyPublishers.noBody())
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
GEThttps://shippified.net/api/carrier-status
Which carriers have live tracking on this deployment.

Orders from a carrier with `configured: false` still show the updates found in their emails, but can't be looked up live. USPS is always `false`.

Responses
200 OK
{
  "carriers": [
    {
      "key": "ups",
      "label": "DHL Express",
      "configured": true,
      "envVars": [
        "string"
      ],
      "note": "string"
    }
  ]
}
401 Not authenticated.
Code samples
cURL
curl -X GET "https://shippified.net/api/carrier-status"
TypeScript
const res = await fetch('https://shippified.net/api/carrier-status', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://shippified.net/api/carrier-status",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://shippified.net/api/carrier-status", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://shippified.net/api/carrier-status');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://shippified.net/api/carrier-status')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://shippified.net/api/carrier-status"))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Was this page helpful?