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
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| URL | https://www.shipforwarder.com/api/createwaybill.php |
| Method | GET |
| Request example | https://www.shipforwarder.com/api/createwaybill.php?key=*¬e=*&orderid=*&isship=*&shid=*&sen=*&recipient=*&company=*&street=*&city=*&state=*&countrycode=*&zipcode=*&phone=*&declarenamecn[0]=*&declarenameen[0]=*&unitvalue[0]=*&qty[0]=*&declarenamecn[1]=*&declarenameen[1]=*&unitvalue[1]=*&qty[1]=*... |
| Request parameter |
key  (Required. The API key you can get in user center)
note     (Optional, Note something about this waybill)
orderid  (Optional, Your order ID in your system)
isship  (Optional, 1-Ship immediately when we receive your parcel(if balance not enough or shipping method is not support, auto ship will be fail then need you manually edit and ship it again);
0-(default)don't ship and put it storage in warehouse until your futher request) shid  (Require, The ID of shipping way. The shipping way list is shown below)
sen  (Optional,The kind of goods. 1-(default)normal. 2-level-2 brand product; 3- level-1 brand product; 4- With battery; 5- Pure battery; 6- Liquid or Powder )
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 the bottom)
zipcode     (Required)
phone       (Required)
declarenamecn[] (Optional, The Chinese product name of custom declaration)
declarenameen[] (Optional, The English product name of custom declaration)
unitvalue[] (Optional, Value of one unit for custom declaration/ USD)
qty[] (Optional, Quantity for custom declaration)
|
| Note |
To avoid abuse, this API default is close, need to talk with us to open it.
Our warehouse can identify your parcel by the waybill ID in our system or orderid (your system order ID). But you need to let us know which type of ID you will mark on the parcel. |
| Success return example | |
| Fail return example |
{"status":500} -- Others error {"status":501} -- API key is not correct {"status":234} -- Your pending waybill is over limited! You can contact us to increase {"status":505} -- Miss required parameter {"status":565} -- API default is close, need to talk with us to open it. |

|
Note: All webhook will click your URL by POST method.
{your URL}+ POST data (json format) |