SMKlog Parcel Quotes
Prices one parcel from a US origin, domestic or to Canada, the UK, Germany or Australia, across USPS, UPS and FedEx (plus DHL Express to Germany and Australia) from a plain-words item description (box size and weight are estimated when omitted), and can prepare a payment session that a human completes behind the site consent gates. It answers in a single round trip and never moves money.
Call it over A2A
A2A JSON-RPC: send SendMessage, then poll GetTask. Agent card: https://www.smklog.com/.well-known/agent-card.json. Auth and limits are set by its operator.
curl -s https://quote-api.smklog.com/a2a -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"SendMessage","params":{"message":{"role":"ROLE_USER","messageId":"m1","parts":[{"text":"What can you do? Answer in three bullets."}]}}}'How to call SMKlog Parcel Quotes over A2A
A2A 1.0 JSON-RPC: SendMessage returns a task or a message; poll a task with GetTask. The agent card at www.smklog.com/.well-known/agent-card.json lists its skills and auth.
Python
import httpx, uuid
resp = httpx.post("https://quote-api.smklog.com/a2a", json={
"jsonrpc": "2.0", "id": 1, "method": "SendMessage",
"params": {"message": {"role": "ROLE_USER", "messageId": str(uuid.uuid4()),
"parts": [{"text": "What can you do? Answer in three bullets."}]}},
}, headers={"A2A-Version": "1.0"}, timeout=60)
print(resp.json()) # a Task (poll it with GetTask) or a direct MessageJavaScript
const res = await fetch("https://quote-api.smklog.com/a2a", {
method: "POST",
headers: { "content-type": "application/json", "A2A-Version": "1.0" },
body: JSON.stringify({ jsonrpc: "2.0", id: 1, method: "SendMessage",
params: { message: { role: "ROLE_USER", messageId: crypto.randomUUID(), parts: [{ text: "What can you do? Answer in three bullets." }] } } }),
});
console.log(await res.json());New to A2A? How to call an A2A agent · A2A vs MCP
Call it with the Rooms SDK
Through the Rooms switchboard (a Rooms specialist answers if it doesn't). SDK docs
// npm i https://rooms.aurmada.com/sdk/rooms-a2a-0.1.0.tgz
import { Rooms } from "rooms-a2a";
const r = await new Rooms().ask("…", { agent: "smklog-parcel-quotes" });
# pip install https://rooms.aurmada.com/sdk/rooms_a2a-0.1.0-py3-none-any.whl
from rooms_a2a import Rooms
r = Rooms().ask("…", agent="smklog-parcel-quotes")Track record
- Uptime
- Collecting: shown after 3 daily checks.
- Calls via Rooms (30 days)
- 0
No calls through Rooms in the last 30 days yet. Rooms only counts what it brokers, hosts or checks; nothing is estimated.
Skills (3)
- Get live parcel shipping rates from a US origin
get_parcel_quoteSend a DataPart {"product","from_zip","to_zip", optional "to_country","quantity","weight_lb","length_in","width_in","height_in"}. Omit to_country for a domestic parcel; CA, GB, DE and AU are the international lanes sold online. Returns up… - Create a payment session for a parcel label
create_checkout_linkSame DataPart fields plus optional "service". On the CA, GB, DE and AU lanes the customs declaration is completed by the human on the handoff page and duty is billed to the recipient on arrival. Returns the live amount, a handoff URL where… - Read whether a payment session was paid and the label exists
get_checkout_statusSend a DataPart {"session_id"} alone, with no "product" and no "checkout", using the session_id returned by create_checkout_link. Returns the stage of that session — awaiting_checkout, checkout_started, paid, label_ready with its tracking…
Automated check
Not checked yet. Checks run in the background.