Go2
  • Pricing
  • Docs
  • Blog
OverviewMCP serverREST APISkillsllms.txtOpenAPI 3.1
OpenAPI 3.1

REST API for branded links and clicks.

Hono on Cloudflare Workers. Bearer-token auth (API key) or OAuth 2.1. Use it from any backend, or expose it to your AI agent through MCP. Every endpoint optionally accepts agent-attribution fields (agent_id, agent_run_id, agent_actor_id, agent_tool_call_id); the /agent-attribution routes read them back.

5-min quickstartInteractive referenceOpenAPI JSONGet an API key

Featured endpoints

  • POST/api/v1/linksCreate a tracked short link. Accepts agent attribution context inline.
  • GET/api/v1/linksList links for the authenticated org, paginated and searchable.
  • GET/api/v1/links/{id}Fetch a single link by id.
  • PATCH/api/v1/links/{id}Update destination, expiry, click limit, targeting, or agent attribution.
  • DELETE/api/v1/links/{id}Archive a link. Existing redirects return 410.
  • GET/api/v1/agent-attributionStream of clicks filtered by agent_id / agent_run_id / link_id.
  • GET/api/v1/agent-attribution/summaryClick rollup grouped by agent_id or agent_run_id.
  • GET/api/v1/agent-attribution/runsDistinct agent runs with click counts and first/last timestamps.
  • GET/api/v1/analytics/{linkId}Per-link analytics: geo, device, browser, OS, referrer breakdowns.
  • POST/api/v1/qrGenerate a QR code (PNG or SVG) for a link.
  • GET/api/v1/api-keysList API keys for the authenticated organization.
  • POST/api/v1/api-keysProvision a new API key. Plaintext returned once at creation time.
  • GET/api/v1/webhooksList outgoing webhook subscriptions.
  • POST/api/v1/webhooksSubscribe a URL to events such as click, link.created, qr.scanned.
  • GET/api/v1/usageCurrent-period usage counters: links created, clicks, custom domains.

Three quick recipes

Create a tracked link (curl)
Drop into any shell.
curl -X POST https://api.go2.gg/api/v1/links \
  -H "Authorization: Bearer go2_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "destinationUrl": "https://example.com/launch",
    "agentId": "claude-code",
    "agentRunId": "run_2026_04_27_abc"
  }'
Same call (TypeScript SDK)
Drop into any shell.
import { Go2 } from "go2-sdk";
const go2 = new Go2({ apiKey: process.env.GO2_API_KEY! });

const link = await go2.links.create({
  destinationUrl: "https://example.com/launch",
  agentId: "claude-code",
  agentRunId: "run_2026_04_27_abc",
});
Read clicks for a run
Drop into any shell.
curl "https://api.go2.gg/api/v1/agent-attribution?agentRunId=run_2026_04_27_abc" \
  -H "Authorization: Bearer go2_xxx"
List distinct agent runs (SDK)
Drop into any shell.
const runs = await go2.agentAttribution.runs();
// [{ agentId: "claude-code", agentRunId: "run_...", clicks: 12, ... }]

Scopes

OAuth tokens issued via the remote MCP flow are scoped. Pass scope="links:read links:write attribution:read" on the authorize endpoint to mint a least-privilege token.

  • links:readList and read links.
  • links:writeCreate, update, and archive links.
  • analytics:readRead per-link click analytics.
  • attribution:readRead agent attribution streams and rollups.
  • attribution:writeMutate agent attribution metadata on links.
  • webhooks:readList webhook subscriptions.
  • webhooks:writeManage webhook subscriptions.
Go2

Links for AI agents. Per-run attribution, MCP server, edge-native API. Built on Cloudflare. Open source.

Get our weekly post on agent attribution patterns

for agents

  • Overview
  • 5-min Quickstart
  • MCP Server (npm)
  • TypeScript SDK (npm)
  • REST API
  • vs. Dub.co
  • AGENTS.md & Skills

product

  • Features
  • Analytics
  • Custom Domains
  • QR Codes
  • Pricing

solutions

  • For Owners
  • For Agencies
  • For Creators
  • For Developers
  • Enterprise

resources

  • Documentation
  • Blog
  • Help Center
  • llms.txt
  • OpenAPI

company

  • About
  • Contact
  • Changelog
  • Status
  • Affiliate Program
  • GitHub

© 2026 Go2. All rights reserved.

X (Twitter)GitHubPrivacyTermsCookiesAcceptable UseDPA
All systems operational