查询上限
适用于您组织的各项上限,以及新任务计价所用的价目表。
认证
请求示例
curl -X GET "https://runner.cargoduo.com/v1/limits" \
-H "Authorization: Bearer $CARGODUO_API_KEY"const res = await fetch("https://runner.cargoduo.com/v1/limits", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.CARGODUO_API_KEY}`,
},
});
const data = await res.json();
console.log(res.status, data);import os
import requests
response = requests.get(
"https://runner.cargoduo.com/v1/limits",
headers={"Authorization": f"Bearer {os.environ['CARGODUO_API_KEY']}"},
)
print(response.status_code, response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://runner.cargoduo.com/v1/limits", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("CARGODUO_API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
out, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(out))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://runner.cargoduo.com/v1/limits"))
.header("Authorization", "Bearer " + System.getenv("CARGODUO_API_KEY"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " + response.body());
}
}using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("CARGODUO_API_KEY"));
var request = new HttpRequestMessage(HttpMethod.Get, "https://runner.cargoduo.com/v1/limits");
var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");<?php
$ch = curl_init('https://runner.cargoduo.com/v1/limits');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('CARGODUO_API_KEY'),
],
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), ' ', $response, PHP_EOL;require "net/http"
require "uri"
uri = URI("https://runner.cargoduo.com/v1/limits")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer #{ENV.fetch("CARGODUO_API_KEY")}"
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts response.code, response.body响应示例
{
"max_items_per_request": 2000,
"max_vehicles_per_request": 20,
"max_time_limit_seconds": 90,
"allowed_vehicle_types": [
"truck",
"trailer",
"container",
"pallet"
],
"concurrency": 1,
"max_queued_jobs": 20,
"rate_limits": {
"per_minute": 60,
"per_hour": 1000,
"per_day": 5000
},
"retention_days": 14,
"rate_card": {
"version": 1,
"per_job": 0.06,
"per_vehicle": 0.2,
"per_compute_second": 0.005,
"large_load_threshold": 500,
"per_hundred_items_over": 0.02
}
}响应
200OK上限和价目表。
名称类型必填说明max_items_per_requestintegerinteger否每个任务的最大物品件数(所有数量之和)。
max_vehicles_per_requestintegerinteger否每个任务可列出和装载的最大车辆数(含自动添加的车辆)。
max_time_limit_secondsintegerinteger否每个任务的计算时间预算上限。
allowed_vehicle_typesstring[]string[]否API 接受的车辆类型。
concurrencyintegerinteger否您组织可同时计算的任务数;超出的任务在队列中等待。
max_queued_jobsintegerinteger否每个组织的排队中 + 运行中任务数上限。
rate_limitsRateLimitsRateLimits否每个时间窗口的请求数,按密钥和按组织分别计算。
per_minuteintegerinteger否per_hourintegerinteger否per_dayintegerinteger否retention_daysintegerinteger否请求体/结果体和 PDF 链接的保留天数。
rate_cardRateCardRateCard否以积分计的价格(1 积分 = 1 USD)。
versionintegerinteger否per_jobnumber · creditsnumber · credits否per_vehiclenumber · creditsnumber · credits否按实际装载的车辆计。
per_compute_secondnumber · creditsnumber · credits否按毫秒比例折算。
large_load_thresholdintegerinteger否开始收取附加费前包含的物品件数。
per_hundred_items_overnumber · creditsnumber · credits否超出阈值后,每 100 件计一次(不足 100 件按 100 件计)。
401Unauthorized
unauthorizedkey_revokedkey_expiredunauthorizedAPI 密钥缺失、格式错误或无法识别。key_revoked密钥已被撤销。key_expired密钥已过期。
全部错误码名称类型必填说明errorErrorBody必填ErrorBody是codestring必填string是机器可读的错误码(snake_case)。请根据它进行分支处理,切勿依据
message。messagestring必填string是英文说明。
request_idstring必填string是与 X-Request-Id 响应头相同。联系技术支持时请提供。
detailsErrorDetail[]ErrorDetail[]否逐字段列出的问题(
validation_failed)。pathstringstring否出错字段的 JSON 路径,例如 items[3].length。
codestringstring否required、invalid_value、out_of_range、duplicate_id、unknown_vehicle、unknown_template、type_not_allowed、unknown_group、does_not_fit、too_many_items、too_many_vehicles、unknown_field、invalid_json。messagestringstring否英文说明。
403Forbidden
ip_not_allowedsubscription_inactiveaccount_inactivescope_missingip_not_allowed调用方 IP 不在该密钥的 IP 白名单中。subscription_inactive组织没有包含 API 的有效订阅。account_inactive组织已被暂停使用,或其所有者的账户均未处于有效状态。scope_missing密钥缺少此接口所需的权限范围。
全部错误码名称类型必填说明errorErrorBody必填ErrorBody是codestring必填string是机器可读的错误码(snake_case)。请根据它进行分支处理,切勿依据
message。messagestring必填string是英文说明。
request_idstring必填string是与 X-Request-Id 响应头相同。联系技术支持时请提供。
detailsErrorDetail[]ErrorDetail[]否逐字段列出的问题(
validation_failed)。pathstringstring否出错字段的 JSON 路径,例如 items[3].length。
codestringstring否required、invalid_value、out_of_range、duplicate_id、unknown_vehicle、unknown_template、type_not_allowed、unknown_group、does_not_fit、too_many_items、too_many_vehicles、unknown_field、invalid_json。messagestringstring否英文说明。
429Too many requests
rate_limitedrate_limited当前分钟、小时或天内的请求过多(按密钥或按组织计),或您的 IP 地址每分钟认证失败超过 60 次。
全部错误码名称类型必填说明errorErrorBody必填ErrorBody是codestring必填string是机器可读的错误码(snake_case)。请根据它进行分支处理,切勿依据
message。messagestring必填string是英文说明。
request_idstring必填string是与 X-Request-Id 响应头相同。联系技术支持时请提供。
detailsErrorDetail[]ErrorDetail[]否逐字段列出的问题(
validation_failed)。pathstringstring否出错字段的 JSON 路径,例如 items[3].length。
codestringstring否required、invalid_value、out_of_range、duplicate_id、unknown_vehicle、unknown_template、type_not_allowed、unknown_group、does_not_fit、too_many_items、too_many_vehicles、unknown_field、invalid_json。messagestringstring否英文说明。
500Internal server error
internal_errorinternal_error服务端发生内部错误。
全部错误码名称类型必填说明errorErrorBody必填ErrorBody是codestring必填string是机器可读的错误码(snake_case)。请根据它进行分支处理,切勿依据
message。messagestring必填string是英文说明。
request_idstring必填string是与 X-Request-Id 响应头相同。联系技术支持时请提供。
detailsErrorDetail[]ErrorDetail[]否逐字段列出的问题(
validation_failed)。pathstringstring否出错字段的 JSON 路径,例如 items[3].length。
codestringstring否required、invalid_value、out_of_range、duplicate_id、unknown_vehicle、unknown_template、type_not_allowed、unknown_group、does_not_fit、too_many_items、too_many_vehicles、unknown_field、invalid_json。messagestringstring否英文说明。
503Service unavailable
api_disabledapi_disabledAPI 暂时停用(维护中),或已对该组织关闭。
全部错误码名称类型必填说明errorErrorBody必填ErrorBody是codestring必填string是机器可读的错误码(snake_case)。请根据它进行分支处理,切勿依据
message。messagestring必填string是英文说明。
request_idstring必填string是与 X-Request-Id 响应头相同。联系技术支持时请提供。
detailsErrorDetail[]ErrorDetail[]否逐字段列出的问题(
validation_failed)。pathstringstring否出错字段的 JSON 路径,例如 items[3].length。
codestringstring否required、invalid_value、out_of_range、duplicate_id、unknown_vehicle、unknown_template、type_not_allowed、unknown_group、does_not_fit、too_many_items、too_many_vehicles、unknown_field、invalid_json。messagestringstring否英文说明。