urlgate
Registry code: 3e2469251fb7ef25
URLGate: pay-to-open links over x402. START WITH the free get_started tool (alias pricing_and_limits): pricing, your free quota, tier and next steps as JSON.
Creating links: 1. Own wallet: free daily quota (own_wallet): free: 10 links/day (100 with Premium; 3/day for wallets new to URLGate in their first 24 h). Then 0.01 USDC per link. Earnings: your wallet. 2. No wallet: agent key from a human (agent_key): free within the key's daily cap (counts toward the owner's quota). Then 0.01 USDC per link. Earnings: the key owner's wallet. 3. Anonymous or over quota: pay per link (pay_per_link): 0.01…
- endpoint
- https://urlgate.xyz/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is urlgate live?
- Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
- Is urlgate free to use?
- Partly — some of its tools are open, others need a key or payment.
- What tools does urlgate have?
- 38 tools: link_status, get_my_link, link_analytics, link_payments, link_grants, dismiss_renewal_reminder, points_leaderboard_me, whoami, ….
- Is urlgate safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 38 tools
- unknown → live
Calls placed through this hub's router, from its own receipts, and USDC settlements on base into the address this listing's priced doors name, read off the chain. Every caller and every payer counts the same; the chain total is counted from three payers. How it is counted.
through this hub
successful
what callers paid
distinct
last 2026-10-21
counted from three payers (thin, concentrated)
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
membership_status open 1h ago
Premium plan (price, period, features) and your membership: tier, state, period end, days left, renewal reminder.
{ "type": "object", "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 9 lineslist_networks open 1h ago
Payment networks this deployment accepts right now (CAIP-2), the USDC contract on each, which is the default, and the mode (mainnet on production, testnet on preview). A link's networks must be a non-empty subset of these.
{ "type": "object", "properties": {} }arguments 4 linesmy_analytics auth-required 1h ago
Your totals and daily earnings across all your links.
{ "type": "object", "properties": { "range": { "enum": [ "7d", "30d", "90d", "all" ], "type": "string" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 18 lineslink_status unknown never probed
Availability of a link: active / paused / expired / sold_out / removed_by_seller / removed_by_admin, with the reason code and public note.
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" } } }arguments 12 linesget_my_link unknown never probed
Owner view of one of your links, including destination, options and which premium options you can use.
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 16 lineslink_analytics unknown never probed
Analytics for one of your links, including the agent vs human split of sales (payerKinds) per day and in total (range 7d / 30d; 90d / all and referrer/country/buyer breakdowns need premium).
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" }, "range": { "enum": [ "7d", "30d", "90d", "all" ], "type": "string" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 25 lineslink_payments unknown never probed
Payments for one of your links (buyer, amount, fee, tx links, payerKind agent/human/unknown). Optional payerKind filter.
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "payerKind": { "enum": [ "agent", "human", "unknown" ], "type": "string" } } }arguments 24 lineslink_grants unknown never probed
Manage the allowlist / promo codes of one of your links (premium). action=list|create|revoke.
{ "type": "object", "required": [ "code" ], "properties": { "id": { "type": "integer", "description": "Grant id (revoke)" }, "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" }, "kind": { "enum": [ "wallet", "promo" ], "type": "string" }, "note": { "type": "string" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "action": { "enum": [ "list", "create", "revoke" ], "type": "string" }, "wallet": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time" }, "promoCode": { "type": "string" }, "discountPct": { "type": "integer", "maximum": 100, "minimum": 1 }, "maxRedemptions": { "type": "integer" } } }arguments 56 linesdismiss_renewal_reminder unknown never probed
Dismiss the "Premium ends soon" reminder for the current period.
{ "type": "object", "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 9 linespoints_leaderboard_me unknown never probed
Your rank on the public leaderboard plus confirmed and pending points. rank is null when you have no confirmed points, opted out, or are banned (reason says which).
{ "type": "object", "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 9 lineswhoami unknown never probed
The wallet this connection is signed in as, with tier and membership.
{ "type": "object", "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 9 linesmy_preferences unknown never probed
Your display preferences. Without arguments: read them. With theme (green | blue | system, or null to reset): save the colour scheme the URLGate website uses for your wallet.
{ "type": "object", "properties": { "theme": { "enum": [ "green", "blue", "system", null ], "type": [ "string", "null" ] }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 21 linesopen_link_instructions unknown never probed
How to pay for and open a link over HTTP x402 v2 (returns the exact URL and steps).
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string" } } }arguments 11 linesopen_link unknown never probed
Open a paid link. Without a payment signature you get the x402 v2 payment requirements; send them back signed to get the destination. Already paid (signed in as the buyer)? You get the destination directly. Taken-down links return status 410 with a machine-readable reason. PAYMENT TAKES TWO SIGNATURES: (1) call without payment → isError result whose structuredContent is the x402 PaymentRequired; (2) sign one accepts[] entry (main leg, to the creator) AND the extensions["platform-fee"].accepts[] entry on the same network (0.3% fee leg, to URLGate), same wallet; (3) call again with both: params._meta["x402/payment"] + params._meta["x402/payment-fee"] (PaymentPayload objects) or the arguments paymentSignature + paymentSignatureFee (base64). Only the main leg → refused with fee_leg_missing before anything is charged. Balance must cover BOTH legs (else insufficient_funds, charged:false). If an earlier payment settled only one leg, the result has code partial_payment, partial { paid, owed } and accepts[] with ONLY the owed leg: sign that one and send it alone (fee owed: x402/payment-fee or paymentSignatureFee). Settlement comes back in result._meta["x402/payment-response"]. Test your client for free first with payment_compat_check. The preview testnet test link REQUIRES a wallet with Base Sepolia testnet + test USDC. If your wallet can't use testnet, follow the production path: run payment_compat_check on production (verify-only, no funds move) and, if you meet the two-signature requirements, proceed with the real paid tools.
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" }, "promo": { "type": "string", "description": "Promo code" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "paymentSignature": { "type": "string", "description": "MAIN leg: base64 x402 v2 PaymentPayload for an accepts[] entry (same as the PAYMENT-SIGNATURE header). Fallback for params._meta[\"x402/payment\"], which wins when both are sent. Omit on the first call to get the payment requirements." }, "paymentSignatureFee": { "type": "string", "description": "FEE leg (open_link only, REQUIRED when the requirements have extensions[\"platform-fee\"]): base64 x402 v2 PaymentPayload for the extensions[\"platform-fee\"].accepts[] entry on the same network, signed by the same wallet (same as PAYMENT-SIGNATURE-FEE). Fallback for params._meta[\"x402/payment-fee\"]. Without it the call is refused with fee_leg_missing and nothing is charged. Sent ALONE when a partial payment owes only the platform fee (code partial_payment)." } } }arguments 28 linesget_link_info unknown never probed
Public metadata for a link: price, title, description, options, status. Never reveals the destination.
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" } } }arguments 12 linesreport_link unknown never probed
Report a link to URLGate moderators (scam / phishing, malware, illegal content, copyright, spam, child sexual abuse or exploitation). One report per reporter per link.
{ "type": "object", "required": [ "code", "reason" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" }, "email": { "type": "string", "description": "optional, for follow-up" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "reason": { "enum": [ "scam_phishing", "malware", "illegal", "dmca", "spam", "child_sexual_exploitation", "other" ], "type": "string" }, "wallet": { "type": "string", "description": "optional 0x… contact wallet" }, "details": { "type": "string", "maxLength": 2000 } } }arguments 41 linesmy_unlocks unknown never probed
Links you paid for, newest first, with access state (open / expired / unavailable + reason), receipt and tx links.
{ "type": "object", "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 9 linesget_receipt unknown never probed
A receipt by id: paid at, amount, fee, explorer links, permanent URL.
{ "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" } } }arguments 11 linespayment_compat_check unknown never probed
FREE, verify-only check that your x402 client can pay URLGate before you spend anything. Call without payment → isError result with a two-leg PaymentRequired (main accepts[] entry + extensions["platform-fee"] entry; tiny amounts, 30 s validBefore). Sign BOTH with the same wallet and call again with _meta["x402/payment"] + _meta["x402/payment-fee"] (or paymentSignature + paymentSignatureFee). Both legs are verified, NEVER settled; you get verdict ok | fee_leg_missing | main_leg_missing | wrong_network | bad_signature | amount_mismatch (or requirement_mismatch, payer_mismatch, expired, insufficient_funds, facilitator_unavailable). Signatures sent here can never pay for anything. The preview testnet test link REQUIRES a wallet with Base Sepolia testnet + test USDC. If your wallet can't use testnet, follow the production path: run payment_compat_check on production (verify-only, no funds move) and, if you meet the two-signature requirements, proceed with the real paid tools. Testnet path: 1. wallet on Base Sepolia with test USDC; 2. payment_compat_check on the preview deployment; 3. sign both legs, call again; 4. verdict ok = ready. Production path: 1. payment_compat_check on production (verify-only, no funds move); 2. sign both legs, call again; 3. verdict ok = proceed with the real paid tools.
{ "type": "object", "properties": { "paymentSignature": { "type": "string", "description": "MAIN leg: base64 x402 v2 PaymentPayload for an accepts[] entry (same as the PAYMENT-SIGNATURE header). Fallback for params._meta[\"x402/payment\"], which wins when both are sent. Omit on the first call to get the payment requirements." }, "paymentSignatureFee": { "type": "string", "description": "FEE leg (open_link only, REQUIRED when the requirements have extensions[\"platform-fee\"]): base64 x402 v2 PaymentPayload for the extensions[\"platform-fee\"].accepts[] entry on the same network, signed by the same wallet (same as PAYMENT-SIGNATURE-FEE). Fallback for params._meta[\"x402/payment-fee\"]. Without it the call is refused with fee_leg_missing and nothing is charged. Sent ALONE when a partial payment owes only the platform fee (code partial_payment)." } } }arguments 13 linescreate_link unknown never probed
Create a paid short link. Signed in (sign_in token, Bearer or SIGN-IN-WITH-X) or with an agent key (token = ugk_…): FREE within your daily quota (10 a day, 100 on Premium; see get_started), the link and its earnings are your wallet's (an agent key's owner). Anonymous, over quota, or free creation paused: 0.01 USDC via x402: the call returns isError with the PaymentRequired and a code (anonymous, free_quota_exhausted, …) plus nextSteps in _meta["urlgate/payment-error"]; call again with the payment. Limits: 429 rate_limited, 409 duplicate_link, 403 domain_blocked. Payment is ONE signature (no platform-fee leg): sign an accepts[] entry and call again with params._meta["x402/payment"] (PaymentPayload) or paymentSignature (base64). Settlement comes back in result._meta["x402/payment-response"].
{ "type": "object", "required": [ "url", "price" ], "properties": { "url": { "type": "string", "format": "uri" }, "price": { "type": "string", "description": "USDC, e.g. \"0.25\". Minimum 0.01, max 6 decimals" }, "title": { "type": "string" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "wallet": { "type": "string" }, "afterPay": { "enum": [ "receipt", "redirect" ], "type": "string" }, "networks": { "type": "array", "items": { "type": "string" } }, "shortcode": { "type": "string", "description": "Custom code (premium)" }, "description": { "type": "string" }, "paymentSignature": { "type": "string", "description": "MAIN leg: base64 x402 v2 PaymentPayload for an accepts[] entry (same as the PAYMENT-SIGNATURE header). Fallback for params._meta[\"x402/payment\"], which wins when both are sent. Omit on the first call to get the payment requirements." } } }arguments 51 linesget_started unknown never probed
FREE, call this first. Returns JSON: pricing and limits, your tier and today's free-link quota (limit / used / remaining / resetsAt) when signed in or using an agent key, the three ways to create links (own wallet = free daily quota, earnings to you; agent key from a human = free within the key cap, earnings to the owner; anonymous or over quota = 0.01 USDC via x402), and nextSteps (sign_in, use_agent_key, pay_0.01, upgrade, create_link, compat_check).
{ "type": "object", "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 9 linespricing_and_limits unknown never probed
FREE. Alias of get_started: creation fee, free daily quota (Free / Premium / new wallets), global ceiling, agent-key limits, per-minute limits, Premium perks, and your remaining free links today when signed in or using an agent key.
{ "type": "object", "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 9 linesmy_links unknown never probed
Links you created: destination, options, status (with reason and when it changed), clicks, 402 views, sales, free unlocks, unique payers, gross, platform fees, earnings, conversion, failed payments, agent vs human sales, last sale and abuse report count.
{ "type": "object", "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 9 linesupdate_link unknown never probed
Edit one of your links. Free: price, title, description, afterPay, networks. Premium: receiptMessage, expiresAt, maxUses, accessTtlSeconds, destinationUrl after the first sale. null clears an option.
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" }, "price": { "type": "string", "description": "USDC, minimum 0.01 (a link already priced below it keeps its price until changed)" }, "title": { "type": [ "string", "null" ] }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "maxUses": { "type": [ "integer", "null" ] }, "afterPay": { "enum": [ "receipt", "redirect" ], "type": "string" }, "networks": { "type": [ "array", "null" ], "items": { "type": "string" } }, "expiresAt": { "type": [ "string", "null" ], "format": "date-time" }, "description": { "type": [ "string", "null" ] }, "destinationUrl": { "type": "string", "format": "uri" }, "receiptMessage": { "type": [ "string", "null" ] }, "accessTtlSeconds": { "type": [ "integer", "null" ] } } }arguments 77 linesset_link_status unknown never probed
Pause, resume, remove or restore one of your links. Buyers who already paid keep access while paused.
{ "type": "object", "required": [ "code", "action" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" }, "note": { "type": "string" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "action": { "enum": [ "pause", "resume", "remove", "restore" ], "type": "string" } } }arguments 29 lineslink_audit unknown never probed
Audit trail for one of your links: 402 shown, paid, re-opened, edits, status changes. IP addresses are truncated.
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" }, "type": { "type": "string" }, "limit": { "type": "integer" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "cursor": { "type": "string" } } }arguments 25 lineslink_qr unknown never probed
QR code for a link as SVG markup.
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "Short code, e.g. \"Gp1qJx\"" } } }arguments 12 linesbuy_membership unknown never probed
Buy (or extend by) 30 days of Premium (5.00 USDC). Call without a signature to get the x402 requirements; nothing renews automatically. Credited to the signed-in wallet, else the payer. Payment is ONE signature (no platform-fee leg): sign an accepts[] entry and call again with params._meta["x402/payment"] (PaymentPayload) or paymentSignature (base64). Settlement comes back in result._meta["x402/payment-response"].
{ "type": "object", "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "paymentSignature": { "type": "string", "description": "MAIN leg: base64 x402 v2 PaymentPayload for an accepts[] entry (same as the PAYMENT-SIGNATURE header). Fallback for params._meta[\"x402/payment\"], which wins when both are sent. Omit on the first call to get the payment requirements." } } }arguments 13 linesredeem_premium_code unknown never probed
Redeem a URLGate premium code for the signed-in wallet. Adds the code’s cycles (30 days each) on top of your current period. Each wallet can use a code once; invalid, expired, withdrawn and used-up codes all return invalid_code.
{ "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "The premium code, e.g. \"ABCD-EFGH-JKMN-PQRS\" (case, spaces and dashes ignored)" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 16 linesmy_points unknown never probed
Your points: confirmed vs pending (7-day review), items with state and reason, not-eligible events, rank, adjustments.
{ "type": "object", "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" } } }arguments 9 linesset_points_prefs unknown never probed
Hide or show your wallet on the public leaderboard (points keep accruing).
{ "type": "object", "required": [ "hideFromLeaderboard" ], "properties": { "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "hideFromLeaderboard": { "type": "boolean" } } }arguments 15 linespoints_leaderboard unknown never probed
Public top-100 leaderboard ranked by confirmed (final) points only, ties to the earliest earner. Each row also shows pending: points whose review is still open (not voided, confirmed or expired), never used for rank. Banned wallets are excluded. Wallets are shortened. Page with limit (max 100) and offset or page.
{ "type": "object", "properties": { "page": { "type": "integer", "minimum": 1 }, "limit": { "type": "integer", "maximum": 100, "minimum": 1 }, "offset": { "type": "integer", "maximum": 100, "minimum": 0 } } }arguments 19 linespoints_rules unknown never probed
How points are earned, the caps, and every not-eligible reason.
{ "type": "object", "properties": {} }arguments 4 linessite_config unknown never probed
FREE. The fees, prices, quotas, periods and limits in force right now, as JSON (the values every URLGate page and doc is rendered from). Personal quota usage: get_started.
{ "type": "object", "properties": {} }arguments 4 linesverify_ledger unknown never probed
Verify the hash chain of the points ledger.
{ "type": "object", "properties": {} }arguments 4 linessign_in unknown never probed
Sign in with a wallet. Step 1: {address} → message to sign (EIP-191). Step 2: {message, signature} → token; pass it as Authorization: Bearer on the MCP connection (or as `token` on each tool call).
{ "type": "object", "properties": { "address": { "type": "string" }, "chainId": { "type": "integer" }, "message": { "type": "string" }, "signature": { "type": "string" } } }arguments 17 linessessions unknown never probed
List your sessions/tokens (action=list) or revoke them (action=revoke with scope current|all or a jti).
{ "type": "object", "properties": { "jti": { "type": "string" }, "scope": { "enum": [ "current", "all" ], "type": "string" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "action": { "enum": [ "list", "revoke" ], "type": "string" } } }arguments 26 linesagent_keys unknown never probed
Manage agent keys for bots that have no wallet (signed in as the owner). action=list (default) | create (name, dailyCap, expiresInDays, networks; the key is returned once) | revoke (id). A key can only create links; they belong to your wallet.
{ "type": "object", "properties": { "id": { "type": "string", "description": "Key id (revoke)" }, "name": { "type": "string" }, "token": { "type": "string", "description": "Session token (Bearer) when the MCP connection cannot carry an Authorization header" }, "action": { "enum": [ "list", "create", "revoke" ], "type": "string" }, "dailyCap": { "type": "integer" }, "networks": { "type": "array", "items": { "type": "string" } }, "expiresInDays": { "type": "integer" } } }arguments 36 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id3e2469251fb7ef25.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/3e2469251fb7ef25/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/3e2469251fb7ef25?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.