{"service":"URLGate","summary":"Pay-to-open short links. Signed-in agents create links free within a daily quota; anonymous or over-quota creation costs the agent fee via x402. Earnings from every paid open go to the creator wallet.","pricing":{"agentFee":"0.01","currency":"USDC","freeCreation":true,"freeDailyQuota":{"free":10,"premium":100,"newWallet":3,"newWalletHours":24,"resets":"00:00 UTC"},"globalDailyCeiling":5000,"agentKeys":{"maxKeys":{"free":3,"premium":20},"maxDailyCapPerKey":{"free":10,"premium":100},"maxExpiryDays":365},"ratePerMinute":{"wallet":{"free":10,"premium":30},"key":{"free":10,"premium":30},"ip":30},"platformFeePercent":0.3,"creatorPercent":99.7,"webForm":"free (website create form only)"},"you":{"signedIn":false,"via":null},"nextSteps":[{"action":"sign_in","description":"Sign in with your wallet (SIWE) to create links free within the daily quota. Earnings go to that wallet.","how":"GET https://urlgate.xyz/api/v2/auth/nonce?address=0x… → sign → POST https://urlgate.xyz/api/v2/auth/verify {message, signature, kind:\"agent\"} → Authorization: Bearer <token>. MCP: sign_in tool.","url":"https://urlgate.xyz/api/v2/auth/nonce"},{"action":"use_agent_key","description":"No wallet? Ask a human to create an agent key for you (dashboard → Settings → Agent keys). Links belong to their wallet.","how":"Send Authorization: Bearer ugk_… (or X-URLGate-Agent-Key) when creating links. MCP: pass it as the token argument or on the connection.","url":"https://urlgate.xyz/agents/guide"},{"action":"pay_0.01","amount":"0.01","currency":"USDC","description":"Pay 0.01 USDC for this link via x402 (one signature).","how":"Retry the same request with PAYMENT-SIGNATURE (the accepts[] entry from the 402 PAYMENT-REQUIRED header). MCP: _meta[\"x402/payment\"].","url":"https://urlgate.xyz/api/urlgate/agent/create"},{"action":"compat_check","description":"Before paying for anything, rehearse the x402 payment for free (verify-only).","url":"https://urlgate.xyz/api/v2/payments/compat-check","mcpTool":"payment_compat_check"}],"paths":[{"id":"own_wallet","title":"Own wallet: free daily quota","who":"Agents that hold a wallet key","cost":"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","steps":["GET https://urlgate.xyz/api/v2/auth/nonce?address=0x… → sign the message (EIP-191) → POST https://urlgate.xyz/api/v2/auth/verify {message, signature, kind:\"agent\"} → token (MCP: sign_in).","POST https://urlgate.xyz/api/urlgate/agent/create {url, price} with Authorization: Bearer <token> (or a SIGN-IN-WITH-X header). MCP: create_link with token.","The response has freeQuota { limit, used, remaining, resetsAt }. Over quota you get 402 code free_quota_exhausted: pay, upgrade, or wait."]},{"id":"agent_key","title":"No wallet: agent key from a human","who":"Bots without a wallet, run for someone who has one","cost":"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","steps":["A human signs in at https://urlgate.xyz/dashboard.html#/settings/agent-keys and creates a key (name, daily cap, expiry, optional networks). It is shown once.","POST https://urlgate.xyz/api/urlgate/agent/create {url, price} with Authorization: Bearer ugk_… (or X-URLGate-Agent-Key). MCP: create_link with token = the key.","The key can only create links. The owner can revoke it at any time."]},{"id":"pay_per_link","title":"Anonymous or over quota: pay per link","who":"Anyone, no sign-in","cost":"0.01 USDC per link via x402 (one signature)","earnings":"the paying wallet (or your signed-in wallet)","steps":["POST https://urlgate.xyz/api/urlgate/agent/create {url, price} → 402 with PAYMENT-REQUIRED (MCP: isError + PaymentRequired).","Sign one accepts[] entry (EIP-3009) and retry with PAYMENT-SIGNATURE (MCP: _meta[\"x402/payment\"]).","200 with the link; settlement in PAYMENT-RESPONSE."]}],"premium":{"perks":[{"id":"free_quota","label":"100 free links a day (Free: 10)"},{"id":"agent_keys","label":"Up to 20 agent keys, each up to 100 free links a day (Free: 3 keys, 10/day)"},{"id":"rate_limits","label":"Higher creation rate limits: 30/min per wallet, 30/min per key (Free: 10 and 10)"},{"id":"no_new_wallet_gate","label":"No new-wallet limit (Free: 3 free links a day in a wallet's first 24 h)"},{"id":"priority_review","label":"Priority review when a link is flagged"}],"never":"Premium never bypasses the domain blocklist, malware checks, reports, strikes or takedowns, the kill switch, or the global daily free-link ceiling.","membershipUrl":"https://urlgate.xyz/api/v2/membership","purchaseUrl":"https://urlgate.xyz/api/v2/membership/purchase"},"errors":{"free_quota_exhausted / new_wallet_quota_exhausted / agent_key_cap_reached / free_global_ceiling / free_creation_paused / paid_only / anonymous":"402: the x402 fee applies; body has nextSteps","rate_limited":"429 with retryAfterSeconds and nextSteps","duplicate_link":"409 with the existing link","domain_blocked":"403","creation_paused":"503: an administrator paused all link creation (free and paid); retry later","invalid_agent_key / agent_key_revoked / agent_key_expired":"401"},"compatCheck":{"path":"/api/v2/payments/compat-check","mcpTool":"payment_compat_check","verifyOnly":true,"requirement":"The preview testnet test link REQUIRES a wallet with Base Sepolia testnet + test USDC.","fallback":"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":["Use a wallet on Base Sepolia (eip155:84532) holding test USDC (e.g. faucet.circle.com). Only signatures are needed, no gas.","Call payment_compat_check on the preview testnet deployment (urlgate-preview) without payment: you get a two-leg PaymentRequired.","Sign BOTH legs (an accepts[] entry + the extensions[\"platform-fee\"].accepts[] entry on the same network) with the same wallet and call it again with both.","verdict \"ok\" = your client can pay URLGate. Nothing is ever settled."],"production":["Call payment_compat_check on production (https://urlgate.xyz/api/v2/payments/compat-check) without payment: a two-leg PaymentRequired on mainnet (Base).","Sign BOTH legs and call it again with both signatures. Verify-only: no funds move (the wallet only needs to hold the 0.001 USDC test amount for verification).","verdict \"ok\" = you meet the two-signature requirement: proceed with the real paid tools (open_link with main leg + fee leg).","Any other verdict names what to fix (fee_leg_missing, wrong_network, bad_signature, amount_mismatch, ...); fix it and re-run the check before paying."]},"networks":[{"id":"eip155:8453","label":"Base"},{"id":"eip155:137","label":"Polygon"},{"id":"eip155:42161","label":"Arbitrum"}],"links":{"agents":"https://urlgate.xyz/agents","guide":"https://urlgate.xyz/agents/guide","openapi":"https://urlgate.xyz/openapi.json","skill":"https://urlgate.xyz/skills/urlgate/SKILL.md","llms":"https://urlgate.xyz/llms.txt","mcp":"https://urlgate.xyz/mcp","x402":"https://urlgate.xyz/.well-known/x402"}}