Overview
Welcome to the Ship&co API.
Ship&co API integration has the following advantages:
- Efficient processing of large shipment volumes - Using the Ship&co API, shipping labels can be created and printed in bulk.
- Integrated warehouse - The API allows warehouse integration within the system.
- Create and manage sub users - Our API allows you to have main and sub users.
This document describes how to use our API. Before you can start using the Ship&co API, you will first need to register your Ship&co account here.
This API Document Is Created For:
- Those who understand HTTP communication specification including header and method manipulation
- Those who are experienced in server-side programming and JSON handling
API processing overview
The Ship&co API is built around REST principles. Our API is simple and easy to use.
- Authorization - Insert your Ship&co token obtained from the dashboard into the HTTP header.
- Each API call - Access each API endpoint with the defined HTTP method and GET parameters or POST body of JSON.
Try sample codes with Postman (You can choose your programming language)
Qiita Ship&Co tag provides you useful TIPS (in Japanese only)
Disclaimer
- Parameters which can be specified and responses that can be received vary according to the carrier and service type selected. The samples on the right are not complete requests for a particular carrier, but includes every item for your reference regardless of carrier choice
Authorization
Add the following HTTP headers to all of your API calls
curl "EACH_API_END_POINT" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
Replace
YOUR_API_TOKEN_FROM_DASHBOARD
with your obtained API token
The Ship&co API uses API keys to authenticate requests. Adding the API token to HTTP headers enables you to be authorized to use the API.
Please follow these steps to obtain the API token:
- Login to the Ship&co dashboard
- Click [Settings] and copy the text in [API Settings]>[Token]
Adding the copied API token to HTTP headers as follows enables you to use the API.
x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD
You can use Sub User API tokens to manage data according to each user individually. See Sub User for more details.
*Note that if you create a new token, the previous one will become invalid and its API calls will produce errors.
API Call Limit
The number of API calls per unit time is limited. If exceeded, the error message indicating “too many requests” will be displayed. The HTTP response headers provide additional information regarding your utilization relative to the call limit:
Item | Note |
---|---|
x-api-call-limit | The amount available/total amount per unit time. API calls with the available amount 0 produce the error above. Header’s response example: "X-Api-Call-Limit": "9/10" . |
x-api-call-reset | The timestamp when the amount available above resets to total. Header’s response example: "X-Api-Call-Reset": "Fri Feb 14 2025 16:28:44 GMT+0900 (Japan Standard Time)" . |
Shipment
Create Shipment
curl -v -X POST "https://api.shipandco.com/v1/shipments" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json" \
-d '{
"setup": {
"carrier_id": "3hoFeaK12ere8484s",
"service": "yamato_regular",
"ref_number": "照会番号。。。",
"pack_amount": 1,
"shipment_date": "2025-01-18",
"cool_options": "frozen"
},
"from_address": {
"full_name": "テスト 名前",
"company": "テスト Inc.",
"email": "test@gmail.com",
"phone": "08044523652",
"country": "JP",
"zip": "5670001",
"province": "大阪府",
"address1": "茨木市安威",
"address2": "2丁目1番15号",
"extra": "ビル西"
},
"to_address": {
"full_name": "西中島 太郎",
"company": "一般会社",
"email": "abcd@gmail.com",
"phone": "08044512365",
"country": "JP",
"zip": "3420038",
"province": "埼玉県",
"address1": "吉川市吉川市美南3-25-1イオン吉川美南東街区",
"address2": "ビルABCD",
"extra": "ドア84"
},
"products": [
{
"name": "商品1",
"price": 5000,
"quantity": 1
},
{
"name": "商品2",
"price": 3000,
"quantity": 2
},
{
"name": "商品3",
"price": 3250,
"quantity": 2
},
{
"name": "商品4",
"price": 1000,
"quantity": 5
}
]
}'
The above request returns the following response.
{
"id": "API-FMZZCG87OQ",
"state": "active",
"test": false,
"scope": "api",
"created_at": "2025-01-14T08:30:05.873Z",
"to_address": {
"full_name": "西中島 太郎",
"company": "一般会社",
"address1": "吉川市吉川市美南3-25-1イオン吉川美南東街区",
"address2": "ビルABCD",
"extra": "ドア84",
"province": "埼玉県",
"zip": "3420038",
"country": "JP",
"phone": "08044512365",
"email": "abcd@gmail.com"
},
"from_address": {
"full_name": "テスト 名前",
"company": "テスト Inc.",
"address1": "茨木市安威",
"address2": "2丁目1番15号",
"extra": "ビル西",
"province": "大阪府",
"zip": "5670001",
"country": "JP",
"phone": "08044523652",
"email": "test@gmail.com"
},
"products": [
{
"name": "商品1",
"quantity": 1,
"price": 5000,
"hs_code": ""
},
{
"name": "商品2",
"quantity": 2,
"price": 3000,
"hs_code": ""
},
{
"name": "商品3",
"quantity": 2,
"price": 3250,
"hs_code": ""
},
{
"name": "商品4",
"quantity": 5,
"price": 1000,
"hs_code": ""
}
],
"setup": {
"insurance": 0,
"ref_number": "照会番号。。。",
"discount": 0,
"shipping_fee": 0,
"pack_amount": 1,
"cool_options": "frozen",
"care": {},
"pick_up": false
},
"delivery": {
"carrier": "yamato",
"method": "yamato_regular",
"tracking_numbers": ["438496228414"],
"label": "https://storage.googleapis.com/dev-shipandco/labels/202501/xxxx/yyyy.pdf"
}
}
You can input shipment information including the specified shipping address, parcel, product information, carrier information, and the shipping label based on the consignee’s address.
Test Environment: Adding ”test”: true
in setup
enables you to create dummy labels free-of-charge. You will not need to add a credit card to your account for this, but the labels generated under test conditions are not valid and therefore cannot be used for shipment. Test labels are currently only available for UPS, DHL, Sagawa and Yamato. Sagawa and Yamato don't require carrier account registration too.
The Yamato Transport test environment is available only from Monday to Friday, 08:00 to 22:00 (Japan Time). It is not available on Saturdays, Sundays.
Request
POST https://api.shipandco.com/v1/shipments
Item | Note | Mandatory Fields |
---|---|---|
to_address | Recipient’s address. Note that province needs to be set as a code, not a full name (e.g. CA for California in USA) if the country has its codes. *The maximum length of addresses varies depending on carrier and services (e.g. DHL accepts 45 characters in address1 and address2 to have 90 in total). |
full_name, phone (for some services only), country, address1, province (if applicable), city (if applicable), zip (if applicable) |
from_address | Sender’s address. Note that province needs to be set as a code, not a full name (e.g. CA for California in USA) if the country has its codes. *The maximum length of addresses varies depending on carrier and services (e.g. DHL accepts 45 characters in address1 and address2 to have 90 in total). |
full_name, phone, country, address1, province (if applicable), city (if applicable), zip (if applicable) |
parcels | Parcel information. *For domestic shipping, do not use this parameter and use pack size and amount in setup instead. Parcel size can be set as the three of width , height , and depth (cm) or the carrier defined size of package . Parcel weight can be set as weight (grams). package accepts the following values.FedEX: "fedex_envelope", "fedex_pak", "fedex_box", "fedex_10kg_box", "fedex_25kg_box", "fedex_tube" DHL: "dhl_jumbo_doc", "dhl_jumbo_parcel", "dhl_document", "dhl_express_envelope", "dhl_jumbo_box", "dhl_jumbo_junior_box" |
amount, width, height, depth, package (package is the alternative to width , height , and depth . At least one piece of information per parcel must be inputted) |
products | Product information. | name, quantity, price, origin_country, weight |
customs | Custom information. The following values are available for content_type . "GIFT", "NON_COMMERCIAL_DOCS", "SAMPLE", "MERCHANDISE", "PERSONAL", "RETURN", "REPAIR", "OTHER" Intercoms can be specified in the following way. "duty_paid": true = "DDP", "duty_paid": false = "DDU" "ioss_number": IOSS Number is now available for shipments from abroad to Europe up to 150€. More information about IOSS here. |
content_type (for some services only) |
setup | Setup information. For more details, See Carrier And Services. You can find the most optimized service with List Rates.*Adding "test": true enables you to create dummy labels free-of-charge. |
carrier or carrier_id, service, currency |
➜ You can find sample requests on Postman.
Response
Item | Note |
---|---|
id | Shipment ID. Usable for GET. |
delivery.carrier | Specified carrier name. |
delivery.tracking_numbers | Shipment tracking numbers. If the return label is generated, these are multiple. |
delivery.label | Created label image information. If the return label is generated, this has multiple pages. |
delivery.invoice | PDF commercial invoice for the shipment encoded in Base64 format. Only included for international shipments when supported. |
delivery.carrier_invoice | Link to the carrier’s invoice PDF. Only included for international shipments when supported. |
delivery.warnings | Warning message shown if the carrier has specific one. (e.g. Ineligible for DHL PLT. If you receive DHL PLT warning, refer to this page) |
List Shipments
curl -v -X GET "https://api.shipandco.com/v1/shipments?state=active&limit=2&page=1&created_after=2025-02-01T00%3A00%3A00.000Z&created_before=2025-03-09T00%3A00%3A00.000Z&carrier=sagawa" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
{
"shipments": [
{
"id": "API-SGF5LYSJAF",
"state": "active",
"scope": "api",
"created_at": "2019-01-08T17:17:08.394Z",
"to_address": {
"full_name": "太郎山田",
"address1": "京都市東山区",
"country": "JP",
"email": "yamada.taro@demo.com",
"phone": "08012341234",
"address2": "西海子町",
"extra": "神宮道",
"province": "京都府",
"zip": "6050012"
},
"from_address": {
"company": "株式会社ACME",
"address1": "中央区",
"country": "JP",
"email": "yamada.hanako@acme.com",
"phone": "08012341234",
"address2": "日本橋堀留町",
"extra": "タワー #1001",
"province": "東京都",
"zip": "1030012"
},
"products": [
{
"name": "Basket ball",
"quantity": 2,
"price": 4850,
"hs_code": "950662"
}
],
"setup": {
"currency": "JPY",
"insurance": 0,
"ref_number": "ORDER-456789",
"delivery_note": "不在の場合、玄関先にお届けください。",
"discount": 0,
"pack_size": "60",
"pack_amount": 1,
"date": "2019-01-10",
"time": "16-18",
"care": {
"fragile": false,
"side_up": false,
"valuable_goods": false
},
"pick_up": false,
"print_start_location": "4"
},
"delivery": {
"carrier": "sagawa",
"method": "sagawa_regular",
"tracking_numbers": ["514699818076"],
"label": "https://storage.googleapis.com/dev-shipandco/labels/201901/k3wWYYwk8Q8h46NcM/WgnXig8zR6hEvZLWE.pdf"
}
},
{
"id": "API-RXILYS438A",
"state": "active",
"scope": "api",
"created_at": "2019-01-08T17:13:19.968Z",
"to_address": {
"full_name": "太郎山田",
"address1": "京都市東山区",
"country": "JP",
"email": "yamada.taro@demo.com",
"phone": "08012341234",
"address2": "西海子町",
"extra": "神宮道",
"province": "京都府",
"zip": "6050012"
},
"from_address": {
"company": "株式会社ACME",
"address1": "中央区",
"country": "JP",
"email": "yamada.hanako@acme.com",
"phone": "08012341234",
"address2": "日本橋堀留町",
"extra": "タワー #1001",
"province": "東京都",
"zip": "1030012"
},
"products": [
{
"name": "Basket ball",
"quantity": 2,
"price": 4850,
"hs_code": "950662"
}
],
"setup": {
"currency": "JPY",
"insurance": 0,
"ref_number": "ORDER-456789",
"delivery_note": "不在の場合、玄関先にお届けください。",
"discount": 0,
"pack_size": "60",
"pack_amount": 1,
"date": "2019-01-10",
"time": "16-18",
"care": {
"fragile": false,
"side_up": false,
"valuable_goods": false
},
"pick_up": false,
"print_start_location": "4"
},
"delivery": {
"carrier": "sagawa",
"method": "sagawa_regular",
"tracking_numbers": ["514699818065"],
"label": "https://storage.googleapis.com/dev-shipandco/labels/201901/k3wWYYwk8Q8h46NcM/Fu8f5dvB5zrmBTHfh.pdf"
}
},
{
"id": "API-Y72ITP6P8G",
"state": "active",
"scope": "api",
"created_at": "2019-01-08T17:05:12.663Z",
"to_address": {
"full_name": "太郎山田",
"address1": "京都市東山区",
"country": "JP",
"email": "yamada.taro@demo.com",
"phone": "08012341234",
"address2": "西海子町",
"extra": "神宮道",
"province": "京都府",
"zip": "6050012"
},
"from_address": {
"company": "株式会社ACME",
"address1": "中央区",
"country": "JP",
"email": "yamada.hanako@acme.com",
"phone": "08012341234",
"address2": "日本橋堀留町",
"extra": "タワー #1001",
"province": "東京都",
"zip": "1030012"
},
"products": [
{
"name": "Basket ball",
"quantity": 2,
"price": 4850,
"hs_code": "950662"
}
],
"setup": {
"currency": "JPY",
"insurance": 0,
"ref_number": "ORDER-456789",
"delivery_note": "不在の場合、玄関先にお届けください。",
"discount": 0,
"pack_size": "60",
"pack_amount": 1,
"date": "2019-01-10",
"time": "16-18",
"care": {
"fragile": false,
"side_up": false,
"valuable_goods": false
},
"pick_up": false,
"print_start_location": "4"
},
"delivery": {
"carrier": "sagawa",
"method": "sagawa_regular",
"tracking_numbers": ["514699818054"],
"label": "https://storage.googleapis.com/dev-shipandco/labels/201901/k3wWYYwk8Q8h46NcM/dJt72M3PhJQo9pmjE.pdf"
}
},
{
"id": "API-Q9CASGOIC9",
"state": "active",
"scope": "api",
"created_at": "2019-01-08T16:56:16.944Z",
"to_address": {
"full_name": "太郎山田",
"address1": "京都市東山区",
"country": "JP",
"email": "yamada.taro@demo.com",
"phone": "08012341234",
"address2": "西海子町",
"extra": "神宮道",
"province": "京都府",
"zip": "6050012"
},
"from_address": {
"company": "株式会社ACME",
"address1": "中央区",
"country": "JP",
"email": "yamada.hanako@acme.com",
"phone": "08012341234",
"address2": "日本橋堀留町",
"extra": "タワー #1001",
"province": "東京都",
"zip": "1030012"
},
"products": [
{
"name": "Basket ball",
"quantity": 2,
"price": 4850,
"hs_code": "950662"
}
],
"setup": {
"currency": "JPY",
"insurance": 0,
"ref_number": "ORDER-456789",
"delivery_note": "不在の場合、玄関先にお届けください。",
"discount": 0,
"pack_size": "60",
"pack_amount": 1,
"date": "2019-01-10",
"time": "16-18",
"care": {
"fragile": false,
"side_up": false,
"valuable_goods": false
},
"pick_up": false,
"print_start_location": "4"
},
"delivery": {
"carrier": "sagawa",
"method": "sagawa_regular",
"tracking_numbers": ["514699818043"],
"label": "https://storage.googleapis.com/dev-shipandco/labels/201901/k3wWYYwk8Q8h46NcM/74FBe7MnjmQ3eM66b.pdf"
}
},
{
"id": "API-6E53FMVTZF",
"state": "active",
"scope": "api",
"created_at": "2019-01-08T16:55:44.228Z",
"to_address": {
"full_name": "太郎山田",
"address1": "京都市東山区",
"country": "JP",
"email": "yamada.taro@demo.com",
"phone": "08012341234",
"address2": "西海子町",
"extra": "神宮道",
"province": "京都府",
"zip": "6050012"
},
"from_address": {
"company": "株式会社ACME",
"address1": "中央区",
"country": "JP",
"email": "yamada.hanako@acme.com",
"phone": "08012341234",
"address2": "日本橋堀留町",
"extra": "タワー #1001",
"province": "東京都",
"zip": "1030012"
},
"products": [
{
"name": "Basket ball",
"quantity": 2,
"price": 4850,
"hs_code": "950662"
}
],
"setup": {
"currency": "JPY",
"insurance": 0,
"ref_number": "ORDER-456789",
"delivery_note": "不在の場合、玄関先にお届けください。",
"discount": 0,
"pack_size": "60",
"pack_amount": 1,
"date": "2019-01-10",
"time": "16-18",
"care": {
"fragile": false,
"side_up": false,
"valuable_goods": false
},
"pick_up": false,
"print_start_location": "4"
},
"delivery": {
"carrier": "sagawa",
"method": "sagawa_regular",
"tracking_numbers": ["514699818032"],
"label": "https://storage.googleapis.com/dev-shipandco/labels/201901/k3wWYYwk8Q8h46NcM/2GAfFX6Yy87cCtRqo.pdf"
}
}
],
"count": 5,
"pages": 1,
"current_page": 1
}
Get a list of created shipments.
Only shipments created within the last 2 months are returned. Shipments older than 2 months will not be retrieved.
Request
GET https://api.shipandco.com/v1/shipments
Item | Note |
---|---|
state | default active , possible values: active, void, any |
carrier | Specify type of the carrier given by List Carriers |
scope | Specify the scope of shipments - made using the API only, or using both API and inside the App (default: api , possible values: api, all ) |
See GET Parameters for more items.
Response
Array of created shipments. See Create Shipment for more details.
See GET Response for more items.
Get Shipment
curl -v -X GET "https://api.shipandco.com/v1/shipments/API-O8APFNW9S8" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
{
"id": "API-O8APFNW9S8",
"state": "active",
"scope": "api",
"created_at": "2019-01-07T14:15:01.151Z",
"to_address": {
"full_name": "John Doe",
"company": "John Doe Inc.",
"country": "FR",
"email": "john@doe.io",
"phone": "0601234567",
"address1": "32 Rue de Rivoli",
"address2": "Batiment A 4eme etage",
"city": "Paris",
"zip": "75001"
},
"from_address": {
"full_name": "Yamada Taro",
"company": "World Company",
"address1": "OSAKAFU",
"country": "JP",
"email": "ytaro@worldcompany.com",
"phone": "08012341234",
"address2": "OTECHO",
"city": "IBARAKI SHI",
"province": "OSAKA",
"zip": "5670883"
},
"products": [
{
"name": "Basket ball",
"quantity": 2,
"price": 4850,
"hs_code": "HS9988",
"origin_country": "JP"
}
],
"parcels": [
{
"weight": 200,
"amount": 1,
"width": 10,
"height": 10,
"depth": 10
}
],
"customs": {
"duty_paid": false,
"content_type": "MERCHANDISE"
},
"setup": {
"currency": "JPY",
"insurance": 0,
"ref_number": "REF123456",
"delivery_note": "Please leave at the front door if unattended.",
"discount": 0,
"return_label": false,
"signature": false
},
"delivery": {
"carrier": "japanpost",
"method": "japanpost_ems",
"tracking_numbers": ["EN027977320JP"],
"label": "https://storage.googleapis.com/dev-shipandco/labels/201901/k3wWYYwk8Q8h46NcM/undefined.pdf"
}
}
Retrieve a shipment by the shipment ID.
Request
GET https://api.shipandco.com/v1/shipments/:id
Response
Only one shipment is displayed. See Create Shipment for more details.
Delete Shipment
curl -v -X DELETE "https://api.shipandco.com/v1/shipments/API-O8APFNW9S8" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
"Shipment API-O8APFNW9S8 deleted."
Delete a shipment by the shipment ID.
Request
DELETE https://api.shipandco.com/v1/shipments/:id
Response
The resulting message is displayed.
Rate
List Rates
curl -v -X POST "https://api.shipandco.com/v1/rates" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json" \
-d '{
"setup": {
"currency": "JPY",
"ref_number": "123-REF-3456",
"signature": false
},
"to_address": {
"full_name": "John Doe",
"phone": "09000000",
"country": "FR",
"zip": "75002",
"city": "Paris",
"address1": "12 Rue du 2 juillet"
},
"from_address": {
"full_name": "Yamada Taro",
"company": "World Company",
"email": "ytaro@worldcompany.com",
"phone": "080000000",
"country": "JP",
"zip": "6050012",
"province": "KYOTO",
"city": "KYOTO",
"address1": "HIGASHIYAMA KU",
"address2": "SAIKAISHICHO"
},
"products": [
{
"name": "T-Shirt",
"quantity": 2,
"price": 25000,
"origin_country": "JP"
}
],
"parcels": [
{
"weight": 2000,
"amount": 1,
"width": 10,
"height": 10,
"depth": 10
}
],
"customs": {
"content_type": "MERCHANDISE"
}
}'
The above request returns the following response.
[
{
"carrier_id": "nznqM23wD3apjEJF6",
"carrier": "dhl",
"service": "dhl_express_0900",
"currency": "JPY",
"price": 10129,
"surcharges": [
{
"type": "9:00 PREMIUM",
"price": 5500
}
]
},
{
"carrier_id": "nznqM23wD3apjEJF6",
"carrier": "dhl",
"service": "dhl_express_worldwide",
"currency": "JPY",
"price": 3021,
"surcharges": []
},
{
"carrier_id": "eMYDqTqiaR4Bdf4wW",
"carrier": "fedex",
"service": "fedex_international_first",
"currency": "JPY",
"price": 54954,
"surcharges": [
{
"type": "Demand Surcharge",
"price": 360
}
]
},
{
"carrier_id": "eMYDqTqiaR4Bdf4wW",
"carrier": "fedex",
"service": "fedex_international_priority_express",
"currency": "JPY",
"price": 4116,
"surcharges": [
{
"type": "Demand Surcharge",
"price": 360
}
]
},
{
"carrier_id": "FPTThBHJhDTA4CzPv",
"carrier": "japanpost",
"service": "japanpost_ems",
"currency": "JPY",
"price": 6700,
"surcharges": []
},
{
"carrier_id": "FPTThBHJhDTA4CzPv",
"carrier": "japanpost",
"service": "japanpost_smallpacket_air",
"currency": "JPY",
"price": 3930,
"surcharges": []
}
]
The RATES API allows you to retrieve shipping rates based on the provided shipping information. The rates for each specified carrier are displayed in a list. Note that the RATES API is designed to be used in conjunction with the shipment API. Using the RATES API in isolation may result in the disabling of your access token.
Request
POST https://api.shipandco.com/v1/rates
The request parameters are similar to those used in the shipment creation API, with the service
parameter excluded. For more details, see the Create Shipment documentation.
➜ You can find sample requests on Postman.
Response
An array of rates for each service is returned. For more details, see Carrier And Services.
Carrier Details
• FedEx, DHL, UPS, Pegasus: Returns contract rates in the response.
• Japan Post International: Returns standard rates.
• Sagawa Express, Yamato Transport, Yu-Pack: Returns standard rates. These rates are only for regular services (without options like fresh or frozen shipping).
Negotiated Rates
With Ship&co API, users can upload and delete negotiated rates for Japan domestic carriers, including Yamato Transport, Sagawa Express, and JapanPost YuPack. This allows merchants who have pre-negotiated rates with these carriers to input and manage their custom shipping rates. If no negotiated rates are uploaded, calling the rates API for these carriers will return public (non-discounted) rates.
Upload Negotiated Rates
Upload negotiated rates for domestic carriers.
curl -v -X POST "https://api.shipandco.com/v1/carriers/:id/rates" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json" \
-d '[
{
"from": "北海道",
"size": 60,
"price": {
"南九州": "1,700",
"北九州": "1,700",
"四国": "1,600",
"関西": "1,500",
"中部": "1,400",
"北陸": "1,200",
"信越": "1,200",
"関東": "1,100",
"南東北": "1,100",
"北東北": "1,000",
"北海道": "700"
}
},
{
"from": "関東",
"size": 260,
"price": {
"南九州": "9,850",
"北九州": "9,800",
"四国": "8,800",
"関西": "8,000",
"中部": "8,000",
"北陸": "7,150",
"信越": "7,150",
"関東": "7,150",
"南東北": "7,150",
"北東北": "7,400",
"北海道": "9,950"
}
}
]'
Request
POST https://api.shipandco.com/v1/carriers/:id/rates
Item | Note |
---|---|
from | String. Region name from which the shipment originates |
size | Integer. Package size |
price | Object. Shipping rates for each region in the format { "toRegionName": "price" } |
Response
The resulting message is displayed.
Carrier-Specific Region Naming Conventions
Each carrier uses different region names when setting negotiated rates. The following lists the correct 地方 (region names) for each carrier:
- YuPack (JapanPost):
北海道
,東北
,関東
,信越
,北陸
,東海
,近畿
,中国
,四国
,九州
,沖縄
- Sagawa Express:
北海道
,北東北
,南東北
,関東
,信越
,東海
,北陸
,関西
,中国
,四国
,北九州
,南九州
,沖縄
- Yamato Transport:
北海道
,北東北
,南東北
,関東
,信越
,北陸
,中部
,関西
,中国
,四国
,九州
,沖縄
Ensure that the correct region names are used for each carrier when uploading rates.
Important notes:
- Rates must be uploaded using valid region names as per the carrier’s specifications.
- Frozen and Chilled Services rates support will be introduced later.
Delete Negotiated Rates
Remove previously uploaded negotiated rates.
curl -v -X DELETE "https://api.shipandco.com/v1/carriers/:id/rates" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD"
Request
DELETE https://api.shipandco.com/v1/carriers/:id/rates
Response
The resulting message is displayed.
Carrier
Register Carrier
curl -v -X POST "https://api.shipandco.com/v1/carriers" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json" \
-d '{
"type": "yamato",
"credentials": {
"key": "your_key",
"freight_number": "your_freight_number"
},
"settings": {
"print": {
"size": "PDF_A4"
}
}
}'
The above request returns the following response.
{
"id": "a5PZ3428ku784W7gc",
"type": "yamato",
"state": "active",
"created_at": "2025-03-10T06:49:21.730Z",
"updated_at": "2025-03-10T06:49:21.730Z",
"credentials": {
"key": "*****",
"freight_number": "*****"
},
"settings": {
"print": {
"size": "PDF_A4"
}
}
}
Register a Carrier. For more details, see our site.
Request
POST https://api.shipandco.com/v1/carriers
Item | Note |
---|---|
type | Type of carrier you want to add. Possible values are: japanpost , ups , fedex , dhl , sagawa , yamato , yuupack , yuupacket , yuumail , pegasus . |
credentials | Credentials required for using carrier systems. The parameters inside this are different from each other. See the following for the details. |
settings | Settings specific to each carrier. The parameters inside this are different from each other. See the following for the details. |
➜ You can find sample requests on Postman.
Credentials parameter by carrier
DHL
account_number
: String, required
site_id
: String, required
password
: String, required
In order to obtain your DHL Site ID and Password, our DHL support page will guide you to quickly get them from DHL.
address.full_name
: String
address.company
: String
address.phone
: String
address.email
: String
address.address1
: String
address.address2
: String
address.zip
: String, required
address.city
: String
address.country
: String, required
UPS
account_number
: String, required
user_name
: String, required
password
: String, required
access_key
: String, required
FedEx
account_number
: String, required
address.full_name
: String, required
address.company
: String, required
address.phone
: String, required
address.email
: String, required
address.address1
: String, required
address.address2
: String
address.zip
: String, required
address.city
: String, required
address.country
: String, required
Japan Post International
customer_numbers
: Array, minLength: 4, maxLength: 4, required (eg: ['000000000','000000000','000000000','000000000']
)
Sagawa
account_number
: String, required
key
: String, required
password
: String, required
In order to get the key and password from Sagawa, a request must be submitted through the “carrier options” function on the Ship&co dashboard. After approval, Sagawa will notify Ship&co of your information for account activation, then you will receive an email for this from Ship&co. This process will take about 5 to 8 business days.
Japan Post Domestic (Yuupack)
user_id
: String, required
In order to obtain your user ID from Japan Post, this form must be filled and submitted to Japan Post. Japan Post will then check, approve and issue a code, and email it to you for account activation. This will take about 5 to 8 business days. PLEASE NOTE: you need to have a post-payment agreement with Japan Post in order to apply for this.
Japan Post Domestic (Yuupacket)
The same as above.
Japan Post Domestic (Yuumail)
The same as above.
Yamato
key
: String, required
freight_number
: String, (default: '01'
)
Pegasus
user_id
: String, required
password
: String, required
Settings by carrier
DHL
label.hide_account
: Boolean. Whether to print account information on labels or not.
label.extra_page
: Boolean. Whether to create a page for archiving or not.
print.size
: String, required. Label size to use. The valid values: "PDF_4X6", "PDF_4X8", "ZPL_4X6"
UPS
print.size
: String, required. Label size to use. The valid values: "PDF_4X6", "ZPL_4X6"
FedEx
print.size
: String, required. Label size to use. The valid values: "PDF_4X6", "PDF_4X8", "PDF_4X9", "ZPL_4X6", "ZPL_4X8"
Japan Post International
print.size
: String, required. Label size to use. The valid values: "PDF_A4"
Sagawa
print.size
: String, required. Label size to use. The valid values: "PDF_A5", "PDF_4.2X8.3_BLUE", "PDF_4.2X8.3_GREEN"
Japan Post Domestic (Yuupack)
print.size
: String, required. Label size to use. The valid values: "PDF_A5", "PDF_YU_THERMAL"
Japan Post Domestic (Yuupacket)
print.size
: String, required. Label size to use. The valid values: "PDF_A5", "PDF_YU_THERMAL"
Japan Post Domestic (Yuumail)
print.size
: String, required. Label size to use. The valid values: "PDF_A5", "PDF_YU_THERMAL"
Yamato
print.size
: String, required. Label size to use. The valid values: "PDF_A4", "PDF_A5", "PDF_A4_BW", "PDF_A5_BW", "PDF_4.5X7.8"
print.size_fallback
: String. Compatible fallback for "PDF_4.5X7.8". The valid values: "PDF_A4", "PDF_A5", "PDF_A4_BW", "PDF_A5_BW"
Response
Registered carrier information with its ID
List Carriers
curl -v -X GET "https://api.shipandco.com/v1/carriers" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
[
{
"id": "GZDZQNo7zyxr4sbXc",
"type": "yuupacket",
"state": "active",
"created_at": "2019-01-07T14:24:13.045Z",
"updated_at": "2019-01-07T14:24:13.045Z",
"credentials": {
"user_id": "***********"
}
},
{
"id": "FbqDPqcBL6AL7PwAo",
"type": "yuupack",
"state": "active",
"created_at": "2019-01-07T14:24:13.042Z",
"updated_at": "2019-01-07T14:24:13.042Z",
"credentials": {
"user_id": "***********"
}
},
{
"id": "7iuaQaEp8fasKCzgD",
"type": "yamato",
"state": "active",
"created_at": "2019-01-07T14:06:13.197Z",
"updated_at": "2019-01-07T14:06:13.197Z",
"credentials": {
"key": "*********************************************************",
"freight_number": "**"
}
},
{
"id": "tbEuFScyfSQMx7bN8",
"type": "sagawa",
"state": "active",
"created_at": "2019-01-07T14:06:39.627Z",
"updated_at": "2019-01-07T14:08:45.817Z",
"credentials": {
"key": "********",
"password": "************************",
"account_number": "***********",
"account_key_number": ""
}
},
{
"id": "CFjQRubN5jhhT5hTb",
"type": "japanpost",
"state": "active",
"created_at": "2018-09-24T15:33:58.145Z",
"updated_at": "2018-09-24T15:33:58.145Z",
"credentials": {
"customer_numbers": "****"
}
}
]
Retrieves a list of registered carriers.
Request
GET https://api.shipandco.com/v1/carriers
Response
Array of registered carriers information displayed.
Update Carrier
curl -v -X PUT "https://api.shipandco.com/v1/carriers/g3buDjYMCXaj6zNCv" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json" \
-d '{
"settings": {
"print": {
"size": "PDF_4.2X8.3_BLUE"
}
}
}'
The above request returns the following response.
{
"id": "g3buDjYMCXaj6zNCv",
"type": "sagawa",
"state": "active",
"created_at": "2019-02-25T11:58:57.852Z",
"updated_at": "2019-02-25T11:58:57.852Z",
"credentials": {
"account_number": "*********",
"key": "*********",
"password": "*********"
}
}
Update a carrier by carrier ID.
Request
PUT https://api.shipandco.com/v1/carriers/:id
Item | Note |
---|---|
settings | Settings specific to the carrier to update. See the carrier registration for more details. |
Response
Updated carrier information with its ID
Delete Carrier
curl -v -X DELETE "https://api.shipandco.com/v1/carriers/GZDZQNo7zyxr4sbXc" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
"Carrier GZDZQNo7zyxr4sbXc deleted."
Delete a carrier by carrier ID.
Request
DELETE https://api.shipandco.com/v1/carriers/:id
Response
The resulting message is displayed.
Tracking
Get Tracking
curl -v -X GET "https://api.shipandco.com/v1/tracking/japanpost/RN004792035JP" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
{
"requested_at": "2019-05-22T14:52:35.155Z",
"carrier": "japanpost",
"tracking_number": "RN004792035JP",
"service": "Registered Mail / Insured Mail",
"from_address": {},
"to_address": {},
"current_status": {
"date": "2019-05-20T17:30:00.000Z",
"status": "Arrival at outward office of exchange",
"details": "",
"location": "OSAKA"
},
"history": [
{
"date": "2019-05-20T07:45:00.000Z",
"status": "Posting/Collection",
"details": "",
"location": "OSAKA"
},
{
"date": "2019-05-20T17:30:00.000Z",
"status": "Arrival at outward office of exchange",
"details": "",
"location": "OSAKA"
}
]
}
Obtain tracking information with a carrier and its relevant tracking number.
Tracking is supported for the following carriers:
• Japanpost International
• Japanpost Domestic (Yuupack, Yupacket)
• Yamato Transport
• Sagawa Express
• UPS
• DHL
Request
GET https://api.shipandco.com/v1/tracking/:carrier/:trackingNumber
Response
Carrier's tracking information displayed.
Shipping Address
Register Shipping Address
curl -v -X POST "https://api.shipandco.com/v1/addresses" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json" \
-d '{
"full_name": "Ship Co",
"company": "Ship&Co",
"email": "shipco@shipandco.com",
"phone": "0312345678",
"country": "JP",
"address1": "chukyo-ku",
"address2": "Building A",
"extra": "Suite 123",
"province": "Kyoto-fu",
"zip": "123-4567",
"city": "Kyoto-shi"
}'
The above request returns the following response.
{
"id": "kr54qe8YPdc5HZSBu",
"created_at": "2019-01-12T09:04:43.619Z",
"updated_at": "2019-01-12T09:04:43.619Z",
"address": {
"full_name": "Ship Co",
"company": "Ship&Co",
"address1": "chukyo-ku",
"address2": "Building A",
"extra": "Suite 123",
"city": "Kyoto-shi",
"province": "Kyoto-fu",
"zip": "123-4567",
"country": "JP",
"phone": "0312345678",
"email": "shipco@shipandco.com"
}
}
To register a new shipping address.
Request
POST https://api.shipandco.com/v1/addresses
Shipping address information to register. See Create Shipment for more details.
Response
Registered shipping address information with its ID.
List Shipping Addresses
curl -v -X GET "https://api.shipandco.com/v1/addresses" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
[
{
"id": "dC32vpNEja8W7WNwR",
"created_at": "2019-01-12T08:32:55.411Z",
"updated_at": "2019-01-12T08:32:55.411Z",
"address": {
"full_name": "John Doe",
"company": "John Doe Inc.",
"country": "FR",
"email": "john@doe.io",
"phone": "0601234567",
"address1": "32 Rue de Rivoli",
"address2": "Batiment A 4eme etage",
"city": "Paris",
"zip": "75001"
}
},
{
"id": "kr54qe8YPdc5HZSBu",
"created_at": "2019-01-12T09:04:43.619Z",
"updated_at": "2019-01-12T09:04:43.619Z",
"address": {
"full_name": "Ship Co",
"company": "Ship&Co",
"address1": "chukyo-ku",
"address2": "Building A",
"extra": "Suite 123",
"city": "Kyoto-shi",
"province": "Kyoto-fu",
"zip": "123-4567",
"country": "JP",
"phone": "0312345678",
"email": "shipco@shipandco.com"
}
}
]
To retrieve a list of registered shipping addresses.
Request
GET https://api.shipandco.com/v1/addresses
Response
Array of registered shipping addresses information.
Warehouse
Register Warehouse
curl -v -X POST "https://api.shipandco.com/v1/warehouses" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json" \
-d '{
"full_name": "Taro Yamada",
"full_name_kanji": "山田太郎",
"company": "ACME",
"company_kanji": "株式会社ACME",
"email": "taro.yamada@example.com",
"phone": "090-1234-5678",
"country": "JP",
"address1": "HIGASHIYAMA KU",
"address2": "SAIKAISHICHO",
"province": "KYOTO",
"address1_kanji": "京都市東山区",
"address2_kanji": "西海子町",
"extra_kanji": "神宮道",
"province_kanji": "京都府",
"zip": "604-0012",
"city": "KYOTO SHI"
}'
The above request returns the following response.
{
"id": "cki5wYEHddBZuEtPv",
"created_at": "2019-01-31T07:34:25.071Z",
"updated_at": "2019-01-31T07:34:25.071Z",
"address": {
"full_name": "Taro Yamada",
"company": "ACME",
"address1": "HIGASHIYAMA KU",
"address2": "SAIKAISHICHO",
"city": "KYOTO SHI",
"province": "KYOTO",
"zip": "604-0012",
"country": "JP",
"phone": "090-1234-5678",
"email": "taro.yamada@example.com",
"full_name_kanji": "山田太郎",
"company_kanji": "株式会社ACME",
"address1_kanji": "京都市東山区",
"address2_kanji": "西海子町",
"extra_kanji": "神宮道",
"province_kanji": "京都府"
}
}
To register a warehouse.
Request
POST https://api.shipandco.com/v1/warehouses
Warehouse information to register
Response
Registered warehouse information with its ID
List Warehouses
curl -v -X GET "https://api.shipandco.com/v1/warehouses" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
[
{
"id": "cki5wYEHddBZuEtPv",
"created_at": "2019-01-31T07:34:25.071Z",
"updated_at": "2019-01-31T07:34:25.071Z",
"address": {
"full_name": "Taro Yamada",
"company": "ACME",
"address1": "HIGASHIYAMA KU",
"address2": "SAIKAISHICHO",
"city": "KYOTO SHI",
"province": "KYOTO",
"zip": "604-0012",
"country": "JP",
"phone": "090-1234-5678",
"email": "taro.yamada@example.com",
"full_name_kanji": "山田太郎",
"company_kanji": "株式会社ACME",
"address1_kanji": "京都市東山区",
"address2_kanji": "西海子町",
"extra_kanji": "神宮道",
"province_kanji": "京都府"
}
},
{
"id": "phuAH6qFvoxdASoCr",
"created_at": "2019-01-31T07:37:46.332Z",
"updated_at": "2019-01-31T07:37:46.332Z",
"address": {
"full_name": "John Doe",
"company": "John Doe Inc.",
"country": "FR",
"email": "john@doe.io",
"phone": "0601234567",
"address1": "32 Rue de Rivoli",
"address2": "Batiment A 4eme etage",
"city": "Paris",
"zip": "75001"
}
}
]
Get a list of registered warehouse information.
Request
GET https://api.shipandco.com/v1/warehouses
Response
Array of registered warehouse information.
Files
Upload File
curl -v -X POST "https://api.shipandco.com/v1/files" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json" \
-d '{
"type": "logo",
"file": "iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoCAMAAAA/pq9xAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDY0OCwgMjAyMS8wMS8xMi0xNTo1MjoyOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjMxNTMyODc2ODU2MTFFQkE2NDFFODc1MTVGQUYyMzUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjMxNTMyODg2ODU2MTFFQkE2NDFFODc1MTVGQUYyMzUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMzE1MzI4NTY4NTYxMUVCQTY0MUU4NzUxNUZBRjIzNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMzE1MzI4NjY4NTYxMUVCQTY0MUU4NzUxNUZBRjIzNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhUt+OUAAAAMUExURf38/C4pKv9WHreppVucDhcAAAHiSURBVHjatFfZtoQgDCvk//95pDvrwxxgPApcbUhaopfo2IBav4OetS94aw3mFUTNDQ9JMI/2e8oCz/RCJ9QbDA8OIfKiunKujcg9EHwtMEK5i3J1iYiw9WZx1aH1f3jCI8LeZDJiuFycdrzBSIm/VcCoGxRcNK56aHiPgWu1dYTAY4x/w2PuHyCAUprVtA7fzRcZfKd2IFuSd+Up7tqTdVldoKKtRWxnvsg0d7lxiAJHkaC2DkHayxZxOhA7l4SibMnPolNxbrvdwivm5ZBEdCYBAlvDAiTjudvOnw6mhVPgyIkJDJbXvAeJ7GPUSwTRR7mH4hwsumFZfk9MtF7XOVEQT8HIRCjO+g9M0us26xUogTEnnmcoannDZHJE54K0+JmJE42UbJkM75Bh6BmgzCHXt0Zr8MecYIGiQmMAyTnpJUI5V1eXiXHD2yafNuO40nKsLnSeeN7xWIAUNSreMpGbko0mvudqHhHcnGZbQQJh75L73McK9V3dJjBvT/npzW1l5St7GizZPAWiWTLKR//2+Cvw3tfcQQSjAbc8/slVBuRTVjrk9ggNpXeBzpKnQNCbYaDa0Xk7kCcNFIQjN8uhPuQkHNqQKeFlbOyY9KQkCkw0kxEwxDTnI12+r+EnwAA0EQvTI8JTUwAAAABJRU5ErkJggg=="
}'
The above request returns the following response.
{
"id": "phuAH6qFvoxdASoCr",
"type": "logo",
"file": "iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoCAMAAAA/pq9xAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDY0OCwgMjAyMS8wMS8xMi0xNTo1MjoyOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjMxNTMyODc2ODU2MTFFQkE2NDFFODc1MTVGQUYyMzUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjMxNTMyODg2ODU2MTFFQkE2NDFFODc1MTVGQUYyMzUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMzE1MzI4NTY4NTYxMUVCQTY0MUU4NzUxNUZBRjIzNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMzE1MzI4NjY4NTYxMUVCQTY0MUU4NzUxNUZBRjIzNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhUt+OUAAAAMUExURf38/C4pKv9WHreppVucDhcAAAHiSURBVHjatFfZtoQgDCvk//95pDvrwxxgPApcbUhaopfo2IBav4OetS94aw3mFUTNDQ9JMI/2e8oCz/RCJ9QbDA8OIfKiunKujcg9EHwtMEK5i3J1iYiw9WZx1aH1f3jCI8LeZDJiuFycdrzBSIm/VcCoGxRcNK56aHiPgWu1dYTAY4x/w2PuHyCAUprVtA7fzRcZfKd2IFuSd+Up7tqTdVldoKKtRWxnvsg0d7lxiAJHkaC2DkHayxZxOhA7l4SibMnPolNxbrvdwivm5ZBEdCYBAlvDAiTjudvOnw6mhVPgyIkJDJbXvAeJ7GPUSwTRR7mH4hwsumFZfk9MtF7XOVEQT8HIRCjO+g9M0us26xUogTEnnmcoannDZHJE54K0+JmJE42UbJkM75Bh6BmgzCHXt0Zr8MecYIGiQmMAyTnpJUI5V1eXiXHD2yafNuO40nKsLnSeeN7xWIAUNSreMpGbko0mvudqHhHcnGZbQQJh75L73McK9V3dJjBvT/npzW1l5St7GizZPAWiWTLKR//2+Cvw3tfcQQSjAbc8/slVBuRTVjrk9ggNpXeBzpKnQNCbYaDa0Xk7kCcNFIQjN8uhPuQkHNqQKeFlbOyY9KQkCkw0kxEwxDTnI12+r+EnwAA0EQvTI8JTUwAAAABJRU5ErkJggg=="
}
This endpoint is used to upload image files to the "Settings" page in Ship&co. The "signature" file is currently required when applying DHL's Paperless Trade (PLT) for invoices.
Request
POST https://api.shipandco.com/v1/files
Item | Note |
---|---|
type | The types of files that can be uploaded are as follows:
|
file | The file size should be 1MB or less. PNG or JPEG encoded in Base64 |
Response
Item | Note |
---|---|
id | Image ID |
type | Image type |
file | Encoded Base64 image |
List Files
curl -v -X GET "https://api.shipandco.com/v1/files" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
[
{
"id": "cki5wYEHddBZuEtPv",
"type": "signature",
"file": "iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoCAMAAAA/pq9xAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDY0OCwgMjAyMS8wMS8xMi0xNTo1MjoyOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjMxNTMyODc2ODU2MTFFQkE2NDFFODc1MTVGQUYyMzUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjMxNTMyODg2ODU2MTFFQkE2NDFFODc1MTVGQUYyMzUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMzE1MzI4NTY4NTYxMUVCQTY0MUU4NzUxNUZBRjIzNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMzE1MzI4NjY4NTYxMUVCQTY0MUU4NzUxNUZBRjIzNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhUt+OUAAAAMUExURf38/C4pKv9WHreppVucDhcAAAHiSURBVHjatFfZtoQgDCvk//95pDvrwxxgPApcbUhaopfo2IBav4OetS94aw3mFUTNDQ9JMI/2e8oCz/RCJ9QbDA8OIfKiunKujcg9EHwtMEK5i3J1iYiw9WZx1aH1f3jCI8LeZDJiuFycdrzBSIm/VcCoGxRcNK56aHiPgWu1dYTAY4x/w2PuHyCAUprVtA7fzRcZfKd2IFuSd+Up7tqTdVldoKKtRWxnvsg0d7lxiAJHkaC2DkHayxZxOhA7l4SibMnPolNxbrvdwivm5ZBEdCYBAlvDAiTjudvOnw6mhVPgyIkJDJbXvAeJ7GPUSwTRR7mH4hwsumFZfk9MtF7XOVEQT8HIRCjO+g9M0us26xUogTEnnmcoannDZHJE54K0+JmJE42UbJkM75Bh6BmgzCHXt0Zr8MecYIGiQmMAyTnpJUI5V1eXiXHD2yafNuO40nKsLnSeeN7xWIAUNSreMpGbko0mvudqHhHcnGZbQQJh75L73McK9V3dJjBvT/npzW1l5St7GizZPAWiWTLKR//2+Cvw3tfcQQSjAbc8/slVBuRTVjrk9ggNpXeBzpKnQNCbYaDa0Xk7kCcNFIQjN8uhPuQkHNqQKeFlbOyY9KQkCkw0kxEwxDTnI12+r+EnwAA0EQvTI8JTUwAAAABJRU5ErkJggg=="
},
{
"id": "phuAH6qFvoxdASoCr",
"type": "logo",
"file": "iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoCAMAAAA/pq9xAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDY0OCwgMjAyMS8wMS8xMi0xNTo1MjoyOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjMxNTMyODc2ODU2MTFFQkE2NDFFODc1MTVGQUYyMzUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjMxNTMyODg2ODU2MTFFQkE2NDFFODc1MTVGQUYyMzUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMzE1MzI4NTY4NTYxMUVCQTY0MUU4NzUxNUZBRjIzNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMzE1MzI4NjY4NTYxMUVCQTY0MUU4NzUxNUZBRjIzNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhUt+OUAAAAMUExURf38/C4pKv9WHreppVucDhcAAAHiSURBVHjatFfZtoQgDCvk//95pDvrwxxgPApcbUhaopfo2IBav4OetS94aw3mFUTNDQ9JMI/2e8oCz/RCJ9QbDA8OIfKiunKujcg9EHwtMEK5i3J1iYiw9WZx1aH1f3jCI8LeZDJiuFycdrzBSIm/VcCoGxRcNK56aHiPgWu1dYTAY4x/w2PuHyCAUprVtA7fzRcZfKd2IFuSd+Up7tqTdVldoKKtRWxnvsg0d7lxiAJHkaC2DkHayxZxOhA7l4SibMnPolNxbrvdwivm5ZBEdCYBAlvDAiTjudvOnw6mhVPgyIkJDJbXvAeJ7GPUSwTRR7mH4hwsumFZfk9MtF7XOVEQT8HIRCjO+g9M0us26xUogTEnnmcoannDZHJE54K0+JmJE42UbJkM75Bh6BmgzCHXt0Zr8MecYIGiQmMAyTnpJUI5V1eXiXHD2yafNuO40nKsLnSeeN7xWIAUNSreMpGbko0mvudqHhHcnGZbQQJh75L73McK9V3dJjBvT/npzW1l5St7GizZPAWiWTLKR//2+Cvw3tfcQQSjAbc8/slVBuRTVjrk9ggNpXeBzpKnQNCbYaDa0Xk7kCcNFIQjN8uhPuQkHNqQKeFlbOyY9KQkCkw0kxEwxDTnI12+r+EnwAA0EQvTI8JTUwAAAABJRU5ErkJggg=="
}
]
Get a list of your uploaded files.
Request
GET https://api.shipandco.com/v1/files
Response
Array of uploaded files
Sub User
Sub users under a regular Ship&co account can have their own individual tokens to call APIs. Data is segmented according to each sub user account. Do note that sub user APIs can only accept regular tokens (which means sub users cannot call sub user APIs themselves).
Register Sub User
curl -v -X POST "https://api.shipandco.com/v1/sub-users" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json" \
-d '{
"contact": {
"first_name": "John",
"last_name": "Doe",
"company": "ACME"
},
"email": "email@test.com",
"api_token": true
}'
The above request returns the following response.
{
"id": "f1f97cfa813c828a73528989da671a81",
"created_at": "2019-02-25T11:12:14.021Z",
"email": "email@test.com",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVhYXNhZVBwNlpGWUZSZ1FzIiwiaWF0IjoxNTUxMDkzMTM0fQ.gBUpoCpFbIt26DiezI4liHWel9KP47-p-Uw-Q3Ush6k",
"first_name": "John",
"last_name": "Doe",
"company": "ACME"
}
Register a Sub User.
Request
POST https://api.shipandco.com/v1/sub-users
In order to register a sub user, an email address and basic information is required.
Item | Note |
---|---|
Required. Key of sub users | |
contact | first_name , last_name , full_name (optional), company |
api_token | Request a token or not. |
➜ You can find sample requests on Postman.
Response
Registered sub user information with its ID and API token. Generated API token can be used for other APIs. See Authorization.
List Sub Users
curl -v -X GET "https://api.shipandco.com/v1/sub-users" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
[
{
"id": "f1f97cfa813c828a73528989da671a81",
"created_at": "2019-02-25T11:12:14.021Z",
"email": "email@test.com",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVhYXNhZVBwNlpGWUZSZ1FzIiwiaWF0IjoxNTUxMDkzMTM0fQ.gBUpoCpFbIt26DiezI4liHWel9KP47-p-Uw-Q3Ush6k",
"first_name": "John",
"last_name": "Doe",
"company": "ACME"
},
{
"id": "929ab359ada3fa5c7bf53bff7ffcbe58",
"created_at": "2019-02-26T11:08:13.749Z",
"email": "email2@test.com",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUzam9qand4ejlQdWZzRXp4IiwiaWF0IjoxNTUxMTc5MjkzfQ.RLb2jWjwo9FZwP3MSyyDYkbQZMTtmjMvTYql-dfgk1o",
"first_name": "John 2",
"last_name": "Doe 2",
"company": "ACME 2"
}
]
Obtain a list of registered sub user information.
Request
GET https://api.shipandco.com/v1/sub-users
Response
Array of registered sub user information.
Get Sub User
curl -v -X GET "https://api.shipandco.com/v1/sub-users/f1f97cfa813c828a73528989da671a81" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
{
"id": "f1f97cfa813c828a73528989da671a81",
"created_at": "2019-02-25T11:12:14.021Z",
"email": "email@test.com",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVhYXNhZVBwNlpGWUZSZ1FzIiwiaWF0IjoxNTUxMDkzMTM0fQ.gBUpoCpFbIt26DiezI4liHWel9KP47-p-Uw-Q3Ush6k",
"first_name": "John",
"last_name": "Doe",
"company": "ACME"
}
Retrieve a sub user by the sub user ID.
Request
GET https://api.shipandco.com/v1/sub-users/:id
Response
Only one sub user is displayed per command.
Refresh Sub User
curl -v -X POST "https://api.shipandco.com/v1/sub-users/f1f97cfa813c828a73528989da671a81" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVhYXNhZVBwNlpGWUZSZ1FzIiwiaWF0IjoxNTUxMTc5OTgyfQ.sQChZ4DjIPyDbgOmJ2-jUgMe_xw9d52-TBGizg9lPjo"
}
Recreate API token of a sub user.
Request
POST https://api.shipandco.com/v1/sub-users/:id
Response
API token recreated for the requested sub user.
Delete Sub User
curl -v -X DELETE "https://api.shipandco.com/v1/sub-users/f1f97cfa813c828a73528989da671a81" \
-H "x-access-token: YOUR_API_TOKEN_FROM_DASHBOARD" \
-H "Content-Type: application/json"
The above request returns the following response.
"Child user f1f97cfa813c828a73528989da671a81:email@test.com deleted."
Delete a sub user by the carrier ID.
Request
DELETE https://api.shipandco.com/v1/sub-users/:id
Response
The resulting message is displayed.
Common Definition
Carrier And Services
Carrier | Value | Service Values | Intl / Dom (JP) |
---|---|---|---|
Japan Post International | japanpost |
japanpost_ems , japanpost_ems_document , japanpost_epacket_light , japanpost_smallpacket_registered_sal , japanpost_smallpacket_registered_air , japanpost_smallpacket_registered_sea , japanpost_smallpacket_sal , japanpost_smallpacket_air , japanpost_smallpacket_sea , japanpost_parcel_sal , japanpost_parcel_air , japanpost_parcel_sea , japanpost_printed_matter_sal , japanpost_printed_matter_air , japanpost_printed_matter_sea , japanpost_printed_matter_registered_sal , japanpost_printed_matter_registered_air , japanpost_letters_sal , japanpost_letters_air , japanpost_letters_sea , japanpost_letters_registered_sal , japanpost_letters_registered_air |
Intl |
Japan Post Domestic (Yuupack) | yuupack |
yuupack_regular , yuupack_fresh , yuupack_frozen |
Dom (JP) |
Japan Post Domestic (Yuupacket) | yuupacket |
yuupacket_regular |
Dom (JP) |
Japan Post Domestic (Yuumail) | yuumail |
yuumail_regular |
Dom (JP) |
UPS | ups |
ups_saver , ups_worldwide_express , ups_worldwide_express_plus , ups_worldwide_expedited |
Intl |
DHL | dhl |
dhl_express_worldwide , dhl_express_1200 , dhl_express_0900 , dhl_express_jumbo |
Intl |
FedEx | fedex |
fedex_international_economy , fedex_international_first , fedex_international_priority , fedex_international_priority_express , fedex_international_priority_eod ,fedex_international_connect_plus |
Intl |
Sagawa | sagawa |
sagawa_fresh , sagawa_frozen , sagawa_plane , sagawa_regular |
Dom (JP) |
Yamato | yamato |
yamato_regular , yamato_collect , yamato_direct_mail , yamato_time , yamato_freight_on_delivery , yamato_dispatch_multiple_units , yamato_nekopos , yamato_kuroneko_yuupacket , yamato_taqbin , yamato_taqbin_collect |
Dom (JP) |
Pegasus | pegasus |
pegasus_dhl , pegasus_ups ,pegasus_ems |
Intl |
In-house shipping (for shipments without carriers or tracking like mail delivery) | custom |
custom_standard |
Dom (JP) |
Carrier | Pack Size Values | Delivery Time Values |
---|---|---|
Sagawa | 60 , 80 , 100 , 140 , 160 |
not-specified , before-noon , 12-14 , 14-16 , 16-18 , 18-20 , 19-21 , 18-21 |
Japan Post Domestic (Yuupack) | 60 , 80 , 100 , 120 , 140 , 160 , 170 |
not-specified , before-noon , 12-14 , 14-16 , 16-18 , 18-20 , 19-21 , 20-21 |
Yamato | not-specified , before-noon , 14-16 , 16-18 , 18-20 , 19-21 , before-ten (Only available for yamato_time service), before-five (Only available for yamato_time service) |
Item | Note | Intl / Dom (JP) |
---|---|---|
carrier_id | String. ID of carrier to use for a shipment. Possible values are the IDs of your active carriers. Useful if you have multiple accounts for a given carrier type. | Intl, Dom (JP) |
carrier | String. Type of carrier to use for a shipment. Possible values are: japanpost , ups , fedex , dhl , sagawa , yamato , yuupack , pegasus . |
Intl, Dom (JP) |
service | String. The service name for the chosen carrier. See the list of possible services by carrier above. | Intl, Dom (JP) |
currency | String. The shipment currency of products, we accept only ISO 4217 values. | Intl, Dom (JP) |
date | String. The delivery date. YYYY-MM-DD format example 2018-09-20 . If omitted, the blank is set (= the earliest date given by the shipping carrier) or the earliest date. |
Intl, Dom (JP) |
time | String. The value of delivery time depends on the carrier, this option is available only for yamato , sagawa and yuupack , see the list above. |
Dom (JP) |
shipment_date | String. The shipment date. YYYY-MM-DD format example 2018-09-18 . If omitted, the date gets unspecified. This is mandatory for yamato only. |
Intl, Dom (JP) |
insurance | Number. Amount to be insured in the same currency as the shipment. Only for japanpost , dhl , and fedex . *Set 0 for no insurance. |
Intl |
ref_number | String. If you need to provide a reference number to the shipping label. | Intl, Dom (JP) |
delivery_note | String. If you need to provide some notes about delivery. | Intl, Dom (JP) |
signature | Boolean. This is a paid service on some carriers. | Intl |
cool_options | String. Possible values are regular , fresh , and frozen . |
Dom (JP) |
care | Object. fragile : (boolean), side_up : (boolean), valuable_goods : (boolean) |
Dom (JP) |
pack_size | String. The value of pack size depends on the carrier. See the list above. | Dom (JP) |
pack_amount | Number. The value of pack amount. | Dom (JP) |
cash_on_delivery | Object. The total and tax amount of cash on delivery. amount : (integer), tax : (integer) |
Dom (JP) |
return_label | Boolean. Issue return labels simultaneously.. If true is set for supported carriers (e.g. DHL), return labels get generated with multiple tracking numbers. |
Intl, Dom (JP) |
print_start_location | Number. The position of the label in the A4 sheet. Only for yuupacket_regular , yuumail_regular , yamato_direct_mail , yamato_nekopos , yamato_kuroneko_yuupacket . |
Dom (JP) |
shipping_fee | Number. Shipping fee to be included on the PDF commercial invoice for the shipment. | Intl, Dom (JP) |
security_service | Boolean. Valid for yuupack_regular shipments only. Possible value: true or false . |
Dom (JP) |
consignee_tax_id | String. Tax ID for the receiver or importer in international orders (e.g., VAT ID, EORI). Supported carriers: JapanPost International, Pegasus, UPS, DHL. (FedEx support coming soon.) | Intl |
discount | Number. Percentage discount applied to each product’s price. For example, if a product "price" is 5000 and discount is 10, the final price becomes 4500. | Intl |
GET Parameters
Item | Note |
---|---|
limit | default 50 , max 250 |
page | default 1 |
created_after | format 2018-09-20T00:00:00.000Z |
created_before | default today format 2018-09-20T00:00:00.000Z |
GET Response
Item | Note |
---|---|
count | Total number of data |
pages | Total number of pages of responses (can be specified by GET Parameters) |
current_page | The current response page (can be specified by GET Parameters) |
Error
Error Code
Ship&co API has the following error codes.
Returns 200 for normal responses.
Error Code | Note |
---|---|
400 | Validation errors due to incorrect or insufficient input |
403 | The API token is not specified or is incorrect |
404 | The specified data is not found |
429 | Too many requests (refer to Rate Limit for the details) |
500 | Internal errors |
Error Response
{
"debug_id": "err_8953pxowmMt3YW2XQ",
"message": "INVALID",
"description": "Request is not well-formed, syntactically incorrect, or violates schema.",
"link": "https://developer.shipandco.com",
"details": [
{
"field": "address1",
"issue": "address1 is required"
},
{
"field": "country",
"issue": "country is required"
}
],
}
Ship&co API returns the following error response.
Item | Note |
---|---|
debug_id | Unique ID for each API call to communicate with Ship&co |
message | Error short message |
description | Error long description |
link | Link to the error contents |
details | Error details with each item |