Skip to content

Latest commit

 

History

History
180 lines (132 loc) · 3.79 KB

usps-tracking-api-go.md

File metadata and controls

180 lines (132 loc) · 3.79 KB

USPS Tracking API - Go

Use Go to track USPS shipments with USPS Tracking API.

Features

  • Real-time USPS tracking.
  • Batch USPS tracking.
  • Other features to manage your USPS tracking.

Installation

Installation is easy:

$ go mod init github.com/my/repo
$ go get github.com/trackingmore-api/trackingmore-sdk-go

Quick Start

Get the API key:

To use this API, you need to generate your API key.

  • Click here to access TrackingMore admin.
  • Go to the "Developer" section.

  • Click "Generate API Key".

  • Give a name to your API key, and click "Save" .

Then, start to track your USPS shipments.

Usage

Create a tracking (Real-time tracking):

package main

import (
  "context"
  "fmt"
  "github.com/trackingmore-api/trackingmore-sdk-go"
)

func main() {
  key := "your api key"
  cli, err := trackingmore.NewClient(key)
  
  if err != nil {
    fmt.Println(err)
    return
  }
  
  params := trackingmore.CreateTrackingParams{
    TrackingNumber: "9400111899562537683144",
    CourierCode:    "usps",
  }      

  result, err := cli.CreateTracking(context.Background(), params)
  if err != nil {
    fmt.Println(err)
    return
  }
  
  fmt.Println(result)
}

Create trackings (Max. 40 tracking numbers create in one call):

package main

import (
  "context"
  "fmt"
  "github.com/trackingmore-api/trackingmore-sdk-go"
)

func main() {
  key := "your api key"
  cli, err := trackingmore.NewClient(key)
  
  if err != nil {
    fmt.Println(err)
    return
  }
  
  params := []trackingmore.CreateTrackingParams{
      {
      TrackingNumber: "92632903279511573030094832",
      CourierCode:    "usps",
      },
      {
      TrackingNumber: "92642903289511563030094932",
      CourierCode:    "usps",
      },
  }   

  result, err := cli.BatchCreateTrackings(context.Background(), params)
  if err != nil {
    fmt.Println(err)
    return
  }
  
  fmt.Println(result)
}

Get status of the shipment:

package main

import (
  "context"
  "fmt"
  "github.com/trackingmore-api/trackingmore-sdk-go"
)

func main() {
  key := "your api key"
  cli, err := trackingmore.NewClient(key)
  
  if err != nil {
    fmt.Println(err)
    return
  }

  params := trackingmore.GetTrackingResultsParams{
    CreatedDateMin: "2023-08-23T06:00:00+00:00",
    CreatedDateMax: "2023-09-05T07:20:42+00:00",
  }  

  result, err := cli.GetTrackingResults(context.Background(), params)
  if err != nil {
    fmt.Println(err)
    return
  }
  
  fmt.Println(result)
}

Update a tracking by ID:

package main

import (
  "context"
  "fmt"
  "github.com/trackingmore-api/trackingmore-sdk-go"
)

func main() {
  key := "your api key"
  cli, err := trackingmore.NewClient(key)
  
  if err != nil {
    fmt.Println(err)
    return
  }

  params := trackingmore.UpdateTrackingParams{
    CustomerName: "New name",
    Note:         "New tests order note",
  }
  idString := "9a1d3844a50f3851e76e3ee347881588"
  
  result, err := cli.UpdateTrackingByID(context.Background(), idString, params)
  if err != nil {
    fmt.Println(err)
    return
  }
  
  fmt.Println(result)
}