---
title: "Shipping"
description: "AliExpress 상품 하나를 한 국가로 배송하는 비용과 소요 기간을 모든 배송사별로 견적합니다."
---

```http
GET | POST /v1/aliexpress/shipping
```

파라미터는 `GET`의 쿼리 문자열로도, `POST`의 JSON 본문으로도 보낼 수 있습니다. 둘은 같습니다.

## 파라미터

| Parameter | Type | Required | Notes |
|---|---|---|---|
| `id` | string | yes | AliExpress product id. |
| `currency` | string |  | Currency for the shipping fee. Default USD. |
| `quantity` | integer ≥ 1 |  | How many units are shipped together. Default 1. |
| `region` | string |  | Destination country (ISO 3166-1 alpha-2). Default US. |
| `sku` | string |  | The variant to quote: a variant `id` from the product, or a numeric sku id. Omit for the product's listed variant. |

## 요청

```bash tab="cURL"
curl "https://gateway.apinoa.com/v1/aliexpress/shipping?id=1005012583726882&region=US" \
  -H "x-api-key: $APINOA_API_KEY"
```

```js tab="JavaScript"
const params = new URLSearchParams({ id: "1005012583726882", region: "US" });
const res = await fetch(`https://gateway.apinoa.com/v1/aliexpress/shipping?${params}`, {
  headers: { "x-api-key": process.env.APINOA_API_KEY },
});
const { success, data, error } = await res.json();
```

```python tab="Python"
import os

import requests

res = requests.get(
    "https://gateway.apinoa.com/v1/aliexpress/shipping",
    params={"id": "1005012583726882", "region": "US"},
    headers={"x-api-key": os.environ["APINOA_API_KEY"]},
)
body = res.json()
```

## 응답

`data`에 [`ShippingQuote`](/docs/api-reference/marketplaces/response-schema#shippingquote)를 돌려줍니다. 실제 응답을 줄인 것입니다. 배열은 앞쪽 항목만 남기고 긴 텍스트는 잘랐습니다.

```json
{
  "data": {
    "marketplace": "aliexpress",
    "productId": "1005012583726882",
    "skuId": "12000058743753115",
    "region": "US",
    "quantity": 1,
    "available": true,
    "options": [
      {
        "carrier": "AliExpress Selection Standard",
        "code": "CAINIAO_FULFILLMENT_STD",
        "estimate": "Oct. 31 - Nov. 06",
        "cost": {
          "currency": "USD",
          "amount": 1.99
        },
        "free": false,
        "minDays": 8,
        "maxDays": 14,
        "guaranteedDays": 60,
        "tracking": true,
        "shipsFrom": "CN"
      }
    ]
  },
  "requestId": "079c568500e94ee7abaf4bfd01c142cc",
  "success": true
}
```

## 에러

| 상태 | 코드 | 의미 |
|---|---|---|
| 400 | `INVALID_PARAMS` | 파라미터가 없거나, 알 수 없거나, 범위를 벗어났습니다. 메시지에 이름이 나옵니다. |
| 401 | `UNAUTHORIZED` | `x-api-key` 헤더가 없거나, 폐기되었거나 알 수 없는 키입니다. |
| 402 | `INSUFFICIENT_BALANCE` | 잔액이 이 호출 비용에 모자랍니다. 대시보드에서 충전하세요. |
| 404 | `ITEM_NOT_FOUND` | AliExpress가 해당 상품 또는 변형을 알지 못합니다. |
| 503 | `TOKEN_EXPIRED` | AliExpress를 잠시 사용할 수 없습니다. 나중에 다시 시도하세요. |

모든 코드는 [Errors](/docs/errors)에 있습니다. 실패한 호출은 과금되지 않습니다.

## 가격

**Price** $0.001 per call, plus $0.001 for each extra call it makes — at most 1 more, so $0.002 in total. [List price](https://apinoa.com/en/pricing); the rate steps down above 1,000 calls a day.

## 참고

- **모든 옵션을 저렴한 순으로:** `carrier`, `cost`(무료 배송이면 없고 `free: true`), `minDays`/`maxDays`, 표기된 그대로의 도착 `estimate`, 그리고 출고지.
- **옵션 없이 `available: false`이면** AliExpress가 이 상품을 `region`으로 배송하지 않는다는 뜻입니다. 이는 오류가 아니라 답입니다.
- **배송은 변형마다 다를 수 있습니다.** product 응답의 변형 `id`를 `sku`로 넘기고, 생략하면 product가 가격을 표시한 변형이 됩니다. 숫자 SKU id면 호출은 1단위, 그 외에는 2단위입니다.
