GitHub - ShipKore/libshipkore: Shipkore's Open Source courier tracking library & CLI to track packages.

2 min read Original article ↗

Shipkore tracking library & CLI to track packages across couriers. This is first Open source product of Innerkore Technologies. We are commited to do things differently.

To get all the supported Couriers.

To track a package in supported Couriers. It will ask for 2 things

get_track_data provides tracking utility to track package in supported Couriers. get_providers provides list of all the supported logistics providers.

Install poetry first. Then, to install dependencies,

{
"title": "Track",
"type": "object",
"properties": {
    "checkpoints": {
    "title": "Checkpoints",
    "type": "array",
    "items": {
        "$ref": "#/definitions/Checkpoint"
    }
    },
    "waybill": {
    "title": "Waybill",
    "type": "string"
    },
    "provider": {
    "title": "Provider",
    "type": "string"
    },
    "status": {
    "default": "Exception",
    "allOf": [
        {
        "$ref": "#/definitions/StatusChoice"
        }
    ]
    },
    "substatus": {
    "title": "Substatus",
    "type": "string"
    },
    "estimated_date": {
    "title": "Estimated Date",
    "anyOf": [
        {
        "type": "string",
        "format": "date-time"
        },
        {
        "type": "string",
        "format": "date"
        }
    ]
    },
    "reference_no": {
    "title": "Reference No",
    "type": "string"
    },
    "package_type": {
    "title": "Package Type",
    "type": "string"
    },
    "destination": {
    "title": "Destination",
    "type": "string"
    },
    "client": {
    "title": "Client",
    "type": "string"
    },
    "consignee_address": {
    "title": "Consignee Address",
    "type": "string"
    },
    "product": {
    "title": "Product",
    "type": "string"
    },
    "receiver_name": {
    "title": "Receiver Name",
    "type": "string"
    },
    "delivered_date": {
    "title": "Delivered Date",
    "anyOf": [
        {
        "type": "string",
        "format": "date-time"
        },
        {
        "type": "string",
        "format": "date"
        }
    ]
    }
},
"required": [
    "checkpoints",
    "waybill",
    "provider"
],
"definitions": {
    "StatusChoice": {
    "title": "StatusChoice",
    "description": "An enumeration.",
    "enum": [
        "InfoReceived",
        "InTransit",
        "OutForDelivery",
        "AttemptFail",
        "Delivered",
        "AvailableForPickup",
        "Exception",
        "ReverseDelivered",
        "ReverseOutForDelivery",
        "ReverseInTransit"
    ],
    "type": "string"
    },
    "Checkpoint": {
    "title": "Checkpoint",
    "type": "object",
    "properties": {
        "slug": {
        "title": "Slug",
        "type": "string"
        },
        "city": {
        "title": "City",
        "type": "string"
        },
        "location": {
        "title": "Location",
        "type": "string"
        },
        "country_name": {
        "title": "Country Name",
        "type": "string"
        },
        "message": {
        "title": "Message",
        "type": "string"
        },
        "submessage": {
        "title": "Submessage",
        "type": "string"
        },
        "country_iso3": {
        "title": "Country Iso3",
        "type": "string"
        },
        "status": {
        "default": "Exception",
        "allOf": [
            {
            "$ref": "#/definitions/StatusChoice"
            }
        ]
        },
        "substatus": {
        "title": "Substatus",
        "type": "string"
        },
        "checkpoint_time": {
        "title": "Checkpoint Time",
        "anyOf": [
            {
            "type": "string",
            "format": "date-time"
            },
            {
            "type": "string",
            "format": "date"
            }
        ]
        },
        "state": {
        "title": "State",
        "type": "string"
        },
        "zip": {
        "title": "Zip",
        "type": "string"
        }
    },
    "required": [
        "slug",
        "checkpoint_time"
    ]
    }
}
}