shipforwarder API

Login shipforwarder.com and get API key in User center->My account(top right)->API

Develop with test account: test@qq.com password: 123456

Need more custom functions or API? contact : jiang@shipforwarder.com

2026-07-21 updated, Add webhook

Get a waybill by ID

URL https://www.shipforwarder.com/api/readwaybill.php
Method GET
Request example https://www.shipforwarder.com/api/readwaybill.php?key=*&id=*
Request parameter
key (Required. The API key you can get in user center)
ID (Required. The waybill ID that create by shipforwarder system
Success return example
Fail return example {"status":500} -- Other error
{"status":501} -- API key is not correct
{"status":505} -- Miss required parameter

Get waybills by status

URL https://www.shipforwarder.com/api/readwaybills.php
Method GET
Request example https://www.shipforwarder.com/api/readwaybills.php?key=*&st=*
Request parameter
key (Required. The API key you can get in user center)
st (Required. 1-Pending,20-Arrived warehouse,21-combining,22-splitting,25-combined,26-split,30-submit to ship, 40-shipping, 41-shipped, 5-received)
page (Required. 0,1,2,3... Result usually have more than 1 page. So this reference tell us which page result you need to feedback )
Success return example
Fail return example {"status":500} -- Other error
{"status":501} -- API key is not correct
{"status":505} -- Miss required parameter

Get a waybill by local track number

URL https://www.shipforwarder.com/api/readwaybill2.php
Method GET
Request example https://www.shipforwarder.com/api/readwaybill2.php?key=*&localtrack=*
Request parameter
key (Required. The API key you can get in user center)
localtrack (Required. The local tracking number that you want to search )
Note If the shipping label barcode is damaged and cannot be scaned, it will fail to search even parcel is in system. Usually >99% is scanable
Success return example
Fail return example {"status":500} -- Other error
{"status":501} -- API key is not correct
{"status":505} -- Miss required parameter
{"status":511} -- Cannot find this local tracking number

Get shipping quote 1

URL https://www.shipforwarder.com/api/getwaybillship.php
Method GET
Request example https://www.shipforwarder.com/api/getwaybillship.php?key=*&id=*&countrycode=*
Request parameter
key (Required. The API key you can get in user center)
id (Required. Waybill ID)
countrycode (Required. Such as "United state"-> "US" The country ISO code )
Note This API will use the country code you now provide to calculate shipping quote, will not use the address data in this waybill
Success return example
Fail return example {"status":500} -- Other error
{"status":501} -- API key is not correct
{"status":505} -- Miss required parameter
{"status":522} -- Cannot find this order
{"status":530} -- The shipping method you request do not support the country or the weight range
{"status":533} -- Can not find the country code

Get shipping quote 2

URL https://www.shipforwarder.com/api/getship.php
Method GET
Request example https://www.shipforwarder.com/api/getship.php?key=*&countrycode=*&wei=*&len=*&wid=*&hei=*sen=*
Request parameter
key (Required. The API key you can get in user center)
countrycode (Required. Such as "United state"-> "US" The country ISO code )
wei (Required. Weight /g )
len (Optional. Lenth cm )
wid (Optional. Width cm )
hei (Optional. Height cm )
Success return example
Fail return example {"status":500} -- Other error
{"status":501} -- API key is not correct
{"status":505} -- Miss required parameter
{"status":522} -- Cannot find this order
{"status":530} -- The shipping method you request do not support the country or the weight range
{"status":533} -- Can not find the country code

Get shipping rate

URL https://www.shipforwarder.com/api/getshiprate.php
Method GET
Request example https://www.shipforwarder.com/api/getshiprate.php
Request parameter
key (Required. The API key you can get in user center)
Note This is all the orginal shipping rate data from our SQL database
You can save in your own database, and get any shipping cost from your own server.
We don't usually change the data, so you update it over 30 days a time should be OK.
cBut it's not easy to understand how to calculate
Success return example
Fail return example {"status":500} -- Other error
{"status":501} -- API key is not correct
{"status":505} -- Miss required parameter
PHP Example code to calculate a shipping cost

Read message

URL https://www.shipforwarder.com/api/readmessage.php
Method GET
Request example https://www.shipforwarder.com/api/readmessage.php?key=*&id=*
Request parameter
key (Required. The API key you can get in user center)
id (Required. waybill ID)
Success return example
Fail return example {"status":500} -- Other error
{"status":501} -- API key is not correct
{"status":505} -- Miss required parameter

Send message

URL https://www.shipforwarder.com/api/sendmessage.php
Method GET
Request example https://www.shipforwarder.com/api/sendmessage.php?key=*&id=*&message=*
Request parameter
key (Required. The API key you can get in user center)
id (Required. waybill ID)
message (Required. Content of the message to remind something of this waybill to our worker )
Success return example
Fail return example {"status":500} -- Other error
{"status":501} -- API key is not correct
{"status":505} -- Miss required parameter

Submit to ship

URL https://www.shipforwarder.com/api/shipwaybill.php
Method GET
Request example https://www.shipforwarder.com/api/shipwaybill.php?key=*&id=*&shid=*&recipient=*&company=*&street=*&city=*&state=*&countrycode=*&zipcode=*&phone=*&
declarenamecn[0]=*&declarenameen[0]=*&unitvalue[0]=*&qty[0]=*&declarenamecn[1]=*&declarenameen[1]=*&unitvalue[1]=*&qty[1]=*...cc
Request parameter
key (Required. The API key you can get in user center)
id (Required.)
shid (Required, The ID of shipping way. The shipping way list is shown below . System API appendices->shipping method)
recipient (Required)
company (Optional)
street (Required)
city (Required)
state (Required)
countrycode (Required, Such as "United state"-> "US" The country ISO code list is shown at System API appendices->country)
zipcode (Required)
phone (Required)
declarenameen[] (Optional. The English name for custom declaration)
declarenamecn[] (Optional. The Chinese name for custom declaration)
qty[] (Optional. The quantity of the product for custom declaration)
unitvalue[] (Optional. $ USD , The unit value of the product for custom declaration)
Note The address and shipping methed ID you filled will cover and replace the exist one in waybill
Success return example
Fail return example {"status":500} -- Other error
{"status":501} -- API key is not correct
{"status":505} -- Miss required parameter
{"status":510} -- Balance is not enough. Make sure your account balance >=5 CNY
{"status":522} -- Cannot find this waybill or this waybill still not ready to be shipped
{"status":530} -- The shipping method you request do not support the country or the weight range
{"status":533} -- Can not find the country code

Webhook

Go to user center->My account->API to set the webhook URL and notification type
Note: All webhook will click your URL by POST method.
{your URL}+ POST data (json format)

Appendices / Shipping methods

In API, you must fill the shipping method ID instead of name
1."China DHL", 2."China UPS", 3."China TNT", 4."China FEDEX", 5."China ARAMEX",6."EMS",7."China Post small parcel by air", 8."HongKong Post Air Mail", 9."Guangzhou ePacket", 10."Road Freight To Door", 11."Road Freight", 12."Air Freight To Door", 13."Air Freight", 14."Ocean Freight To Door",15."Ocean Freight", 16."Normal Express",17."SF-express", 18."dhl global mail",19."Fedex-packet", 20."UK packet",21."Normal packet",22."PostNL", 23."Epacket-fast",24."Malaysia post", 25."Singapore Post",26."Sweden Post", 27."USPS packet",28."DPEX", 29."Road Freight To Door(tax free)", 30."Air Freight To Door(tax free)", 31."Ocean Freight To Door(tax free)", 32."Pick up",33."Air Freight(tax free)", 34."Ocean Freight(tax free)", 35."STO(申通)", 36."YT(圆通)",37."ZTO(中通)", 38."BEST(百世)", 39."YUNDA(韵达)", 40."TK(天天)",41."DEPPON(德邦)", 42."ANE(安能)" 43. "SF-packet ,44. “SF-E-commerce” 45. "China post big parcel Surface" 46. "LWE express" , 47."China post big parcel by air" , 48."China post big parcel SAL", 49."ETK", 50."Hongkong DHL", 51."Taiwan DHL", 52."Hongkong UPS", 53."Hongkong FEDEX", 54."Hongkong TNT", 55."Hongkong ARAMEX", 56."Special line-A", 57."Special line-B" , 58."Special line-C" , 59."Special line-D", 60."ePacket-B", 61."ePacket-C", 62."ePacket-D", 63."China Post small parcel Surface", 64."Belgium Post", 65."DHL-packet", 66."UPS-packet", 67."DHL-packet-2", 68."DHL-packet-3", 69."USPS-2", 70."USPS-3", 71."China DHL-2", 72."China DHL-3", 73."Hongkong DHL-2", 74."Hongkong DHL-3", 75."China UPS-2", 76."China UPS-3", 77."Hongkong UPS-2", 78."Hongkong UPS-3", 79."China FEDEX-2", 80."China FEDEX-3", 81."Hongkong FEDEX-2", 82."Hongkong FEDEX-3", 83."China ARAMEX-2", 84."China ARAMEX-3", 85."Hongkong ARAMEX-2", 86."Hongkong ARAMEX-3", 87."Ocean Freight To Door(tax free)-2", 88."Ocean Freight To Door(tax free)-3", 89."Train Freight", 90."Train Freight To Door(tax free)-1", 91."Train Freight To Door(tax free)-2", 92."Train Freight To Door(tax free)-3", 93."Normal express-2", 94."Normal express-3", 95."USPS-4", 96."USPS-5", 97."FCL 20GP", 98."FCL 40GP", 99."FCL 40HC", 100."Singapore-EMS", 101."J&T-1", 102."J&T-2", 103."J&T-3", , 104."air Freight To Door(tax free)-2", 105."air Freight To Door(tax free)-3", 106."Belgium Post-1", 107."Belgium Post-2", 108."KYE", 109."JDL", 110."Hong Kong FedEx-Time limit price", 111."China FedEx-Time limit price", 112."Hong Kong UPS-Time limit price", 113."China UPS-Time limit price", 114."Hong Kong DHL-Time limit price", 115."China DHL-Time limit price", 116."FLYT-1", 117."FLYT-2", 118."FLYT-3", 119."yunexpress-1", 120."yunexpress-2", 121."yunexpress-3", 122."yunexpress-4", 123."yunexpress-5", 124."UBI-1", 125."UBI-2", 126."UBI-3", 127."SF-E-commerce-2", 128."SF-E-commerce-3", 129."SF-express-2", 130."SF-express-3", 131."DPD-1", 132."DPD-2", 133."DPD-tax free-1", 134."DPD-tax free-2", 135."UBI-tax free-1", 136."UBI-tax free-2", 137."yunexpress-tax free-1", 138."yunexpress-tax free-2", 139."FLYT-tax free-1", 140."Special line-tax free-1", 141."Special line-tax free-2", 142."DHL-tax free-1", 143."UPS-tax free-1", 144."FEDEX-tax free-1", 145."ARAMEX-tax free-1", 146."SF-express-tax free-1",147."yunexpress-6",148."yunexpress-7",149."yunexpress-8",150."yunexpress-9",151."yunexpress-10",152."yunexpress-11",153."yunexpress-12", 154."CDEK-1", 155."CDEK-2", 156."CDEK-3", 157."CDEK-4"

Here is the array for all in javascript :

Appendices /Country


Country ID list in javascript:


Country code -> Country ID in PHP:


Country ID -> Country code in PHP: