express-delivery-outlets-query-v2
Courier Branch Lookup
Provides a courier branch lookup API service, allowing developers to quickly query shipping carrier location details and integrate them into business systems.
Usage Cost
5 coins/call
Quick Start
Use a unified response envelope and call directly from your backend.
https://openapi.toolkk.com/v1/express-delivery-outlets-query-v2cURL Example
curl --request POST \
--url 'https://openapi.toolkk.com/v1/express-delivery-outlets-query-v2' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "city": "北京",\n "expressName": "顺丰"\n}'Python Example
import os
import requests
url = "https://openapi.toolkk.com/v1/express-delivery-outlets-query-v2"
payload = {
"city": "北京",
"expressName": "顺丰"
}
headers = {
"Content-Type": "application/json",
"X-API-Key": os.getenv("TOOLKK_API_KEY", "YOUR_API_KEY"),
}
response = requests.request("POST", url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())Go Example
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
endpoint := "https://openapi.toolkk.com/v1/express-delivery-outlets-query-v2"
payload := []byte("{\n \"city\": \"北京\",\n \"expressName\": \"顺丰\"\n}")
req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}Java Example
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ToolkkExample {
public static void main(String[] args) throws Exception {
String payload = "{\n \"city\": \"北京\",\n \"expressName\": \"顺丰\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/express-delivery-outlets-query-v2"))
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.header("Content-Type", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}PHP Example
<?php
$endpoint = 'https://openapi.toolkk.com/v1/express-delivery-outlets-query-v2';
$payload = "{\n \"city\": \"北京\",\n \"expressName\": \"顺丰\"\n}";
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: YOUR_API_KEY',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
if ($response === false) {
throw new RuntimeException(curl_error($ch));
}
curl_close($ch);
echo $response;Response Example
{
"code": "SUCCESS",
"message": "success",
"data": {
"total": 1,
"list": [
{
"name": "顺丰速运(北京朝阳门点)",
"address": "北京市朝阳区朝阳门外大街",
"phone": "95338"
}
]
}
}Examples illustrate the response structure. Actual results depend on the API response.
- Authentication
- Send X-API-Key in request headers
- Rate limit
- 600 req/min
- Timeout
- 10000 ms
Send your API Key in the X-API-Key header from your backend.
Check both HTTP status and business fields before treating a call as successful.
Use retries and backoff together with rate limits in high-frequency scenarios.
Request Fields
Send requests from your server with the key in the X-API-Key header.
Request Fields
The fields below are derived from example JSON for integration reference only.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| city | string | Unspecified | Unspecified | 北京 |
| expressName | string | Unspecified | Unspecified | 顺丰 |
Request Example
{
"city": "北京",
"expressName": "顺丰"
}- Authentication
- Send X-API-Key in request headers
- Rate limit
- 600 req/min
- Timeout
- 10000 ms
Response Fields
Examples illustrate the response structure. Actual results depend on the API response.
Response Fields
The fields below are derived from example JSON for integration reference only.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| code | string | Unspecified | Unspecified | SUCCESS |
| message | string | Unspecified | Unspecified | success |
| data | object | Unspecified | Unspecified | {...} |
| data.total | number | Unspecified | Unspecified | 1 |
| data.list | array | Unspecified | Unspecified | [{"name":"顺丰速运(北京朝阳门点)","address":"北京市朝阳区朝阳门外大街","phone":"95338"}] |
| data.list[] | object | Unspecified | Unspecified | {...} |
Response Example
{
"code": "SUCCESS",
"message": "success",
"data": {
"total": 1,
"list": [
{
"name": "顺丰速运(北京朝阳门点)",
"address": "北京市朝阳区朝阳门外大街",
"phone": "95338"
}
]
}
}API overview
Capabilities, use cases, limitations, and frequently asked questions.
Courier Branch Lookup API Overview
The Courier Branch Lookup API helps developers quickly process shipping carrier location queries within their systems. It returns structured results and is ideal for scenarios like logistics tracking, order management, and customer notifications.
Use Cases
- Integrate courier branch lookup capabilities into internal systems, SaaS platforms, automated workflows, or admin dashboards.
- Suitable for business scenarios requiring stable API calls, standardized responses, and orchestratable interfaces.
- We recommend implementing rate limiting, failure retries, and result caching strategies to improve overall integration stability.
Integration Best Practices
- Verify request parameter formats, authentication methods, and error code handling logic before integration.
- For high-frequency query scenarios, ensure proper log tracking, timeout controls, and idempotency handling.
- If the results are used for risk control or automated decision-making, we recommend incorporating secondary validation based on your business rules rather than relying solely on the API response.