1. Inferences
  2. Retrieve shipping labels

Inferences

Retrieve shipping labels

Once you have scan the shipping label, you can query for them in the API. If you have the developer or owner role, you're able to also view the scans on your dashboard at https://cloud.packagex.io/inferences/shipping-labels.

Retrieve Scan

GET
`/v1/inferences/shipping_labels/:inference`

Get a single scan using its id.

js
        const response = await fetch("https://api.packagex.io/v1/inferences/shipping_labels/inf_sl_2s8fmK1UBvCdMj4KsFtgpB", {
  method: "GET",
  headers: {
    "PX-API-KEY": process.env.PX_API_KEY,
    "Content-Type": "application/json",
  },
});

const scan = response.data;

      

List Shipping-Labels

Example

GET
`/v1/inferences/shipping_labels`

When you want to retrieve multiple shipping-labels, your data property on the result will always be an array even if you don't have any shipping-labels. The shipping-labels are returned in descending order, meaning the latest scan that was created will be first.

js
        const response = await fetch("https://api.packagex.io/v1/inferences/images/shipping_labels", {
  method: "GET",
  headers: {
    "PX-API-KEY": process.env.PX_API_KEY,
    "Content-Type": "application/json",
  },
}).then((res) => res.json());

const shipping_labels = response.data;
const pagination = response.pagination;

      

Pagination

If the has_more property on the pagination object is set to true, you know there are more scans in the database that have not been returned to you. The pagination object also has a page property indicating your current offset and a limit property. The total_count property in pagination returns the the total number of scans in the database.

By default the page is set to 1 and the limit is 10.

If we want to query for scans 11 - 20, we would request page 2 with a query parameter.

js
        const response = await fetch("https://api.packagex.io/v1/inferences/images/shipping_labels?page=2&limit=25", {
  method: "GET",
  headers: {
    "PX-API-KEY": process.env.PX_API_KEY,
    "Content-Type": "application/json",
  },
}).then((res) => res.json());

const shipping_labels = response.data; //the array of scans 11 - 20
const pagination = response.pagination; //the pagination object

      

Filter

  1. Location Filtering
  • Scans with a location_id property can be filtered by location.
  1. Provider filtering:
  • You can now filter by provider_name.
  1. Service level filtering:
  • Filtering options include service_level_name.
js
        const response = await fetch("https://api.packagex.io/v1/inferences/images/shipping_labels?location=loc_jZ1fYiQobeWthjbhme3vDX", {
  method: "GET",
  headers: {
    "PX-API-KEY": process.env.PX_API_KEY,
    "Content-Type": "application/json",
  },
}).then((res) => res.json());

const shipping_labels = response.data;
const pagination = response.pagination;

      

Similarly we can also filter on date and package status.

Status

js
        https://api.packagex.io/v1/inferences/images/shipping_labels?statuses=completed

      

Date

js
        https://api.packagex.io/v1/inferences/images/shipping_labels?start_at=2024-02-25

      

There are times when filtering is not enough and you want to find a specific inference by some other attribute. In this case, you can do a fuzzy, typo-tolerant search of every inference in the database.

Below are the properties that are supported by our full text search.

Searchable Properties

  • search.sender: the sender name, email and business
  • search.recipient: the recipient name, email and business
  • search.order_number
  • search.tracking_number
  • search.rma_number
  • search.reference_number
  • search.invoice_number
  • search.purchase_order
  • search.barcode_values
  • search.metadata: the custom metadata of the shipping label inference

To perform a general search, simply provide a string to search by using the search query param. The results will be order by the most relevant first. To perform a targeted search, or a mixture of targeted search and general search, or to use various modifiers to boost a particular field, refer to the general section on search, while using the searchable properties provided above

We provide a _searchV2 object that has a searchV2.scores property for scores and searchV2.shipping_label_inference property with all matches highlighted with <mark> handles; this object has the same structure as the shipping label inference object, except only those properties are present where there are highlights.

Ordering Search Results

By default, search results are ordered by relevance. However, if you include an order_by parameter along with your search query, the results will be ordered by the specified property instead of by relevance.

Relevance Score

Relevance scores are included in the search results by default. Note that this could add up to 10ms of extra time to the request.

js
        const response = await fetch("https://api.packagex.io/v1/images/shipping-labels?search=john", {
  method: "GET",
  headers: {
    "PX-API-KEY": process.env.PX_API_KEY,
    "Content-Type": "application/json",
  },
}).then((res) => res.json());

const inference = response.data[0];
console.log(inference._search); //Special _search property