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

  • order_number
  • tracking_number
  • rma_number
  • reference_number
  • invoice_number
  • purchase_order
  • barcode_values
  • recipient.name
  • recipient.email
  • recipient.business
  • sender.name
  • sender.email
  • sender.business

To search, simply provide a string to search by using the search query param. The results will be order by the most relevant first. If you want to highlight matching search results for a frontend, we provide a special property for search-returned inference objects called _search which will have the matched text surrounded with <mark> handles.

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