Getting Started
The Fulfillbot Open API allows you to programmatically access our cross-border shopping services. You can search products from Chinese e-commerce platforms, manage shopping carts, place orders, track shipments, and more — all through a simple REST API.
Perfect for building custom integrations, automated purchasing agents, or connecting with AI assistants.
Authentication
All API requests require an API Key for authentication. Include your key in the Authorization header:
Authorization: Bearer sk-your-api-key-here
To create an API Key, go to your API Keys page. Each key can be configured with specific permissions (scopes), IP whitelist, and rate limits.
Base URL
https://api.fulfillbot.com/api/v1/open
All endpoints are relative to this base URL.
Rate Limiting
Each API Key has its own rate limit (configurable, default 60 requests/minute). Rate limit info is included in response headers:
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 57 X-RateLimit-Reset: 1712150400
When rate limited, the API returns 429 Too Many Requests.
Permission Scopes
| Scope | Description |
|---|---|
| products:read | Search and view products from Taobao, 1688, Weidian |
| cart:read | View shopping cart items |
| cart:write | Add, update, and remove cart items |
| orders:read | View purchase orders and order details |
| orders:write | Create purchase orders |
| warehouse:read | View warehouse inventory |
| shipping:read | View shipping/outbound orders |
| shipping:write | Create shipping orders, cancel, confirm delivery, pay shipping fee |
| logistics:read | Query shipping channels, calculate freight, view supported countries |
| wallet:read | View wallet balance and transaction history |
| profile:read | View user profile and addresses |
| profile:write | Update user profile and addresses |
| favorites:read | View favorite products |
| favorites:write | Add and remove favorites |
| coupons:read | View available coupons |
Error Codes
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing API Key |
| 403 | Forbidden - Insufficient scope permissions or IP not whitelisted |
| 404 | Not Found - Resource does not exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
Products
/products/searchproducts:readSearch products in the local catalog
/products/:idproducts:readGet product detail by ID
/products/import/1688products:readImport/fetch product details from 1688.com
/products/platform/taobao/searchproducts:readSearch products on Taobao
/products/platform/taobao/:itemIdproducts:readGet Taobao product detail
/products/platform/1688/searchproducts:readSearch products on 1688
/products/platform/weidian/searchproducts:readSearch products on Weidian
/products/platform/weidian/:itemIdproducts:readGet Weidian product detail
Shopping Cart
/cartcart:readGet current shopping cart
/cart/itemscart:writeAdd item to cart
/cart/items/batchcart:writeBatch add items to cart
/cart/items/:itemIdcart:writeUpdate cart item (quantity, selection)
/cart/items/batchcart:writeBatch update cart items
/cart/items/:itemIdcart:writeRemove item from cart
/cart/items/batchcart:writeBatch remove cart items
/cartcart:writeClear entire cart
Purchase Orders
/ordersorders:readGet purchase order list (paginated)
/orders/statsorders:readGet order statistics
/orders/:idorders:readGet purchase order detail
/orders/:id/statusorders:readGet order status
/orders/:id/logisticsorders:readGet order logistics info
/orders/:id/inspectionorders:readGet order inspection result
/ordersorders:writeCreate a purchase order
/orders/:id/cancelorders:writeRequest order cancellation
Logistics
/logistics/countrieslogistics:readGet supported destination countries
/logistics/shipping-methodslogistics:readGet available shipping channels (filter by country, weight, cargo type)
/logistics/calculate-freightlogistics:readCalculate shipping fee for a specific channel
/logistics/calculate-freight-batchlogistics:readCalculate shipping fee for all available channels at once
/logistics/shipping-methods/:channelId/pricinglogistics:readGet pricing rules for a specific channel
Shipping Orders
/shipping/createshipping:writeCreate a shipping/outbound order
/shipping/ordersshipping:readGet shipping order list
/shipping/orders/:idshipping:readGet shipping order detail
/shipping/orders/:id/cancelshipping:writeCancel a shipping order
/shipping/orders/:id/confirm-deliveryshipping:writeConfirm delivery received
Warehouse
/warehouse/packageswarehouse:readGet warehouse packages/inventory
/warehouse/packages/statswarehouse:readGet warehouse package statistics
/warehouse/packages/shippablewarehouse:readGet packages ready to ship
/warehouse/packages/:idwarehouse:readGet package detail
User Profile & Wallet
/user/profileprofile:readGet user profile
/user/profileprofile:writeUpdate user profile
/user/addressesprofile:readGet saved addresses
/user/addressesprofile:writeCreate a new address
/user/addresses/:idprofile:writeUpdate an address
/user/addresses/:idprofile:writeDelete an address
/user/wallet/balancewallet:readGet wallet balance
/user/wallet/transactionswallet:readGet balance transaction history
Favorites & Coupons
/user/favoritesfavorites:readGet favorite products
/user/favoritesfavorites:writeAdd product to favorites
/user/favorites/:idfavorites:writeRemove from favorites
/user/coupons/availablecoupons:readGet available coupons
/user/coupons/mycoupons:readGet claimed coupons
Documentation
Integration Guide
Step-by-step walkthrough from creating an API Key to placing your first purchase and shipping internationally.
API Reference
Detailed parameters, data types, and complete request/response JSON examples for every endpoint.
Webhooks
Receive real-time notifications for order updates, package arrivals, shipping events, and more.
Code Examples
curl -X GET "https://api.fulfillbot.com/api/v1/open/products/search?q=shoes&page=1" \ -H "Authorization: Bearer sk-your-api-key" \ -H "Content-Type: application/json"
import requests
API_KEY = "sk-your-api-key"
BASE_URL = "https://api.fulfillbot.com/api/v1/open"
headers = {"Authorization": f"Bearer {API_KEY}"}
# Search products
resp = requests.get(f"{BASE_URL}/products/search",
params={"q": "shoes", "page": 1},
headers=headers)
products = resp.json()
# Add to cart
resp = requests.post(f"{BASE_URL}/cart/items",
json={"productId": "xxx", "quantity": 2, "skuId": "yyy"},
headers=headers)
# Get wallet balance
resp = requests.get(f"{BASE_URL}/user/wallet/balance", headers=headers)
balance = resp.json()const API_KEY = "sk-your-api-key";
const BASE = "https://api.fulfillbot.com/api/v1/open";
const headers = {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
};
// Search products
const res = await fetch(`${BASE}/products/search?q=shoes`, { headers });
const products = await res.json();
// Create shipping order
const shipRes = await fetch(`${BASE}/shipping/create`, {
method: "POST",
headers,
body: JSON.stringify({
items: [{ inventoryId: "xxx", quantity: 1 }],
recipientName: "John Doe",
recipientCountry: "US",
logisticsChannelId: "channel-id"
})
});