{
  "schemaVersion": "1.0",
  "item": {
    "slug": "go2gg",
    "name": "Go2.gg",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Rakesh1002/go2gg",
    "canonicalUrl": "https://clawhub.ai/Rakesh1002/go2gg",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/go2gg",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=go2gg",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/go2gg"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/go2gg",
    "agentPageUrl": "https://openagent3.xyz/skills/go2gg/agent",
    "manifestUrl": "https://openagent3.xyz/skills/go2gg/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/go2gg/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Go2.gg — Edge-Native URL Shortener",
        "body": "URL shortening, analytics, QR codes, webhooks, galleries (link-in-bio). Built on Cloudflare's edge network with sub-10ms redirects globally."
      },
      {
        "title": "Setup",
        "body": "Get API key from: https://go2.gg/dashboard/api-keys (free, no credit card required)\n\nexport GO2GG_API_KEY=\"go2_your_key_here\"\n\nAPI base: https://api.go2.gg/api/v1\nAuth: Authorization: Bearer $GO2GG_API_KEY\nDocs: https://go2.gg/docs/api/links"
      },
      {
        "title": "Short Links",
        "body": "Create, manage, and track short links with custom slugs, tags, expiration, passwords, and geo/device targeting."
      },
      {
        "title": "Create a Link",
        "body": "curl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"destinationUrl\": \"https://example.com/landing-page\",\n    \"slug\": \"my-link\",\n    \"title\": \"My Campaign Link\",\n    \"tags\": [\"marketing\", \"q1-2025\"]\n  }'\n\nImportant: Field is destinationUrl (not url). Slug is optional (auto-generated if omitted)."
      },
      {
        "title": "Response",
        "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"lnk_abc123\",\n    \"shortUrl\": \"https://go2.gg/my-link\",\n    \"destinationUrl\": \"https://example.com/landing-page\",\n    \"slug\": \"my-link\",\n    \"domain\": \"go2.gg\",\n    \"title\": \"My Campaign Link\",\n    \"tags\": [\"marketing\", \"q1-2025\"],\n    \"clickCount\": 0,\n    \"createdAt\": \"2025-01-01T10:30:00Z\"\n  }\n}"
      },
      {
        "title": "List Links",
        "body": "# List all links (paginated)\ncurl \"https://api.go2.gg/api/v1/links?perPage=20&sort=clicks\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n# Search links\ncurl \"https://api.go2.gg/api/v1/links?search=marketing&tag=q1-2025\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\nQuery params: page, perPage (max 100), search, domain, tag, archived, sort (created/clicks/updated)"
      },
      {
        "title": "Update a Link",
        "body": "curl -X PATCH \"https://api.go2.gg/api/v1/links/lnk_abc123\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"destinationUrl\": \"https://example.com/updated-page\", \"tags\": [\"updated\"]}'"
      },
      {
        "title": "Delete a Link",
        "body": "curl -X DELETE \"https://api.go2.gg/api/v1/links/lnk_abc123\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n# Returns 204 No Content"
      },
      {
        "title": "Link Analytics",
        "body": "curl \"https://api.go2.gg/api/v1/links/lnk_abc123/stats\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\nReturns: totalClicks, byCountry, byDevice, byBrowser, byReferrer, overTime"
      },
      {
        "title": "Advanced Link Options",
        "body": "# Password-protected link\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"destinationUrl\": \"https://example.com/secret\", \"slug\": \"exclusive\", \"password\": \"secure123\"}'\n\n# Link with expiration + click limit\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"destinationUrl\": \"https://example.com/flash\", \"expiresAt\": \"2025-12-31T23:59:59Z\", \"clickLimit\": 1000}'\n\n# Geo-targeted link (different URLs per country)\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"destinationUrl\": \"https://example.com/default\",\n    \"geoTargets\": {\"US\": \"https://example.com/us\", \"GB\": \"https://example.com/uk\", \"IN\": \"https://example.com/in\"}\n  }'\n\n# Device-targeted link + app deep links\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"destinationUrl\": \"https://example.com/default\",\n    \"deviceTargets\": {\"mobile\": \"https://m.example.com\"},\n    \"iosUrl\": \"https://apps.apple.com/app/myapp\",\n    \"androidUrl\": \"https://play.google.com/store/apps/details?id=com.myapp\"\n  }'\n\n# Link with UTM parameters\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"destinationUrl\": \"https://example.com/product\",\n    \"slug\": \"summer-sale\",\n    \"utmSource\": \"email\",\n    \"utmMedium\": \"newsletter\",\n    \"utmCampaign\": \"summer-sale\"\n  }'"
      },
      {
        "title": "Create Link Parameters",
        "body": "FieldTypeRequiredDescriptiondestinationUrlstringyesTarget URL to redirect toslugstringnoCustom slug (auto-generated if omitted)domainstringnoCustom domain (default: go2.gg)titlestringnoLink titledescriptionstringnoLink descriptiontagsstring[]noTags for filteringpasswordstringnoPassword protectionexpiresAtstringnoISO 8601 expiration dateclickLimitnumbernoMax clicks allowedgeoTargetsobjectnoCountry → URL mappingdeviceTargetsobjectnoDevice → URL mappingiosUrlstringnoiOS app deep linkandroidUrlstringnoAndroid app deep linkutmSource/Medium/Campaign/Term/ContentstringnoUTM parameters"
      },
      {
        "title": "QR Codes",
        "body": "Generate customizable QR codes. QR generation is free and requires no auth."
      },
      {
        "title": "Generate QR Code (No Auth Required)",
        "body": "# Generate SVG QR code (free, no API key needed)\ncurl -X POST \"https://api.go2.gg/api/v1/qr/generate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://go2.gg/my-link\",\n    \"size\": 512,\n    \"foregroundColor\": \"#1a365d\",\n    \"backgroundColor\": \"#FFFFFF\",\n    \"cornerRadius\": 10,\n    \"errorCorrection\": \"H\",\n    \"format\": \"svg\"\n  }' -o qr-code.svg\n\n# PNG format\ncurl -X POST \"https://api.go2.gg/api/v1/qr/generate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\": \"https://example.com\", \"format\": \"png\", \"size\": 1024}' -o qr-code.png"
      },
      {
        "title": "QR Parameters",
        "body": "FieldTypeDefaultDescriptionurlstringrequiredURL to encodesizenumber256Size in pixels (64-2048)foregroundColorstring#000000Hex color for modulesbackgroundColorstring#FFFFFFHex color for backgroundcornerRadiusnumber0Module corner radius (0-50)errorCorrectionstringML (7%), M (15%), Q (25%), H (30%)formatstringsvgsvg or png"
      },
      {
        "title": "Save & Track QR Codes (Auth Required)",
        "body": "# Save QR config for tracking\ncurl -X POST \"https://api.go2.gg/api/v1/qr\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"Business Card QR\", \"url\": \"https://go2.gg/contact\", \"linkId\": \"lnk_abc123\"}'\n\n# List saved QR codes\ncurl \"https://api.go2.gg/api/v1/qr\" -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n# Download saved QR\ncurl \"https://api.go2.gg/api/v1/qr/qr_abc123/download?format=svg\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" -o qr.svg\n\n# Delete QR\ncurl -X DELETE \"https://api.go2.gg/api/v1/qr/qr_abc123\" -H \"Authorization: Bearer $GO2GG_API_KEY\""
      },
      {
        "title": "Webhooks",
        "body": "Receive real-time notifications for link clicks, creations, and updates.\n\n# Create webhook\ncurl -X POST \"https://api.go2.gg/api/v1/webhooks\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"Click Tracker\", \"url\": \"https://your-server.com/webhook\", \"events\": [\"click\", \"link.created\"]}'\n\n# List webhooks\ncurl \"https://api.go2.gg/api/v1/webhooks\" -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n# Test webhook\ncurl -X POST \"https://api.go2.gg/api/v1/webhooks/wh_abc123/test\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n# Delete webhook\ncurl -X DELETE \"https://api.go2.gg/api/v1/webhooks/wh_abc123\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\nEvents: click, link.created, link.updated, link.deleted, domain.verified, qr.scanned, * (all)\n\nWebhook payloads include X-Webhook-Signature (HMAC SHA256) for verification. Retries: 5s → 30s → 2m → 10m."
      },
      {
        "title": "Galleries (Link-in-Bio)",
        "body": "Create link-in-bio pages programmatically.\n\n# Create gallery\ncurl -X POST \"https://api.go2.gg/api/v1/galleries\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"slug\": \"myprofile\", \"title\": \"My Name\", \"bio\": \"Creator & developer\", \"theme\": \"gradient\"}'\n\n# Add link item\ncurl -X POST \"https://api.go2.gg/api/v1/galleries/gal_abc123/items\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"type\": \"link\", \"title\": \"My Website\", \"url\": \"https://example.com\"}'\n\n# Add YouTube embed\ncurl -X POST \"https://api.go2.gg/api/v1/galleries/gal_abc123/items\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"type\": \"embed\", \"title\": \"Latest Video\", \"embedType\": \"youtube\", \"embedData\": {\"videoId\": \"dQw4w9WgXcQ\"}}'\n\n# Publish gallery (makes it live at go2.gg/bio/myprofile)\ncurl -X POST \"https://api.go2.gg/api/v1/galleries/gal_abc123/publish\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"isPublished\": true}'\n\n# Reorder items\ncurl -X PATCH \"https://api.go2.gg/api/v1/galleries/gal_abc123/items/reorder\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"itemIds\": [\"item_3\", \"item_1\", \"item_2\"]}'\n\n# List galleries\ncurl \"https://api.go2.gg/api/v1/galleries\" -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\nThemes: default, minimal, gradient, dark, neon, custom (with customCss)\nItem types: link, header, divider, embed (youtube), image"
      },
      {
        "title": "Python Example",
        "body": "import requests\n\nAPI_KEY = \"go2_your_key_here\"  # or os.environ[\"GO2GG_API_KEY\"]\nBASE = \"https://api.go2.gg/api/v1\"\nheaders = {\"Authorization\": f\"Bearer {API_KEY}\", \"Content-Type\": \"application/json\"}\n\n# Create short link\nresp = requests.post(f\"{BASE}/links\", headers=headers, json={\n    \"destinationUrl\": \"https://example.com/product\",\n    \"slug\": \"my-product\",\n    \"title\": \"Product Link\",\n    \"tags\": [\"product\"]\n})\nlink = resp.json()[\"data\"]\nprint(f\"Short URL: {link['shortUrl']}\")\n\n# Get analytics\nstats = requests.get(f\"{BASE}/links/{link['id']}/stats\", headers=headers).json()[\"data\"]\nprint(f\"Clicks: {stats['totalClicks']}\")\n\n# Generate QR (no auth needed)\nqr = requests.post(f\"{BASE}/qr/generate\", json={\"url\": link[\"shortUrl\"], \"size\": 512, \"format\": \"png\"})\nwith open(\"qr.png\", \"wb\") as f:\n    f.write(qr.content)"
      },
      {
        "title": "API Endpoint Summary",
        "body": "ServiceEndpointMethodAuthLinks create/api/v1/linksPOSTyesLinks list/api/v1/linksGETyesLinks get/api/v1/links/:idGETyesLinks update/api/v1/links/:idPATCHyesLinks delete/api/v1/links/:idDELETEyesLinks stats/api/v1/links/:id/statsGETyesQR generate/api/v1/qr/generatePOSTnoQR save/api/v1/qrPOSTyesQR list/api/v1/qrGETyesQR download/api/v1/qr/:id/downloadGETyesWebhooks/api/v1/webhooksCRUDyesWebhook test/api/v1/webhooks/:id/testPOSTyesGalleries/api/v1/galleriesCRUDyesGallery items/api/v1/galleries/:id/itemsCRUDyesGallery publish/api/v1/galleries/:id/publishPOSTyes"
      },
      {
        "title": "Rate Limits",
        "body": "PlanRequests/minFree60Pro300Business1000"
      },
      {
        "title": "Error Codes",
        "body": "CodeDescriptionSLUG_RESERVEDSlug is reservedSLUG_EXISTSSlug already in use on this domainINVALID_URLDestination URL is invalidLIMIT_REACHEDPlan's link limit reachedDOMAIN_NOT_VERIFIEDCustom domain not verified"
      }
    ],
    "body": "Go2.gg — Edge-Native URL Shortener\n\nURL shortening, analytics, QR codes, webhooks, galleries (link-in-bio). Built on Cloudflare's edge network with sub-10ms redirects globally.\n\nSetup\n\nGet API key from: https://go2.gg/dashboard/api-keys (free, no credit card required)\n\nexport GO2GG_API_KEY=\"go2_your_key_here\"\n\n\nAPI base: https://api.go2.gg/api/v1 Auth: Authorization: Bearer $GO2GG_API_KEY Docs: https://go2.gg/docs/api/links\n\nShort Links\n\nCreate, manage, and track short links with custom slugs, tags, expiration, passwords, and geo/device targeting.\n\nCreate a Link\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"destinationUrl\": \"https://example.com/landing-page\",\n    \"slug\": \"my-link\",\n    \"title\": \"My Campaign Link\",\n    \"tags\": [\"marketing\", \"q1-2025\"]\n  }'\n\n\nImportant: Field is destinationUrl (not url). Slug is optional (auto-generated if omitted).\n\nResponse\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"lnk_abc123\",\n    \"shortUrl\": \"https://go2.gg/my-link\",\n    \"destinationUrl\": \"https://example.com/landing-page\",\n    \"slug\": \"my-link\",\n    \"domain\": \"go2.gg\",\n    \"title\": \"My Campaign Link\",\n    \"tags\": [\"marketing\", \"q1-2025\"],\n    \"clickCount\": 0,\n    \"createdAt\": \"2025-01-01T10:30:00Z\"\n  }\n}\n\nList Links\n# List all links (paginated)\ncurl \"https://api.go2.gg/api/v1/links?perPage=20&sort=clicks\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n# Search links\ncurl \"https://api.go2.gg/api/v1/links?search=marketing&tag=q1-2025\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n\nQuery params: page, perPage (max 100), search, domain, tag, archived, sort (created/clicks/updated)\n\nUpdate a Link\ncurl -X PATCH \"https://api.go2.gg/api/v1/links/lnk_abc123\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"destinationUrl\": \"https://example.com/updated-page\", \"tags\": [\"updated\"]}'\n\nDelete a Link\ncurl -X DELETE \"https://api.go2.gg/api/v1/links/lnk_abc123\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n# Returns 204 No Content\n\nLink Analytics\ncurl \"https://api.go2.gg/api/v1/links/lnk_abc123/stats\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n\nReturns: totalClicks, byCountry, byDevice, byBrowser, byReferrer, overTime\n\nAdvanced Link Options\n# Password-protected link\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"destinationUrl\": \"https://example.com/secret\", \"slug\": \"exclusive\", \"password\": \"secure123\"}'\n\n# Link with expiration + click limit\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"destinationUrl\": \"https://example.com/flash\", \"expiresAt\": \"2025-12-31T23:59:59Z\", \"clickLimit\": 1000}'\n\n# Geo-targeted link (different URLs per country)\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"destinationUrl\": \"https://example.com/default\",\n    \"geoTargets\": {\"US\": \"https://example.com/us\", \"GB\": \"https://example.com/uk\", \"IN\": \"https://example.com/in\"}\n  }'\n\n# Device-targeted link + app deep links\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"destinationUrl\": \"https://example.com/default\",\n    \"deviceTargets\": {\"mobile\": \"https://m.example.com\"},\n    \"iosUrl\": \"https://apps.apple.com/app/myapp\",\n    \"androidUrl\": \"https://play.google.com/store/apps/details?id=com.myapp\"\n  }'\n\n# Link with UTM parameters\ncurl -X POST \"https://api.go2.gg/api/v1/links\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"destinationUrl\": \"https://example.com/product\",\n    \"slug\": \"summer-sale\",\n    \"utmSource\": \"email\",\n    \"utmMedium\": \"newsletter\",\n    \"utmCampaign\": \"summer-sale\"\n  }'\n\nCreate Link Parameters\nField\tType\tRequired\tDescription\ndestinationUrl\tstring\tyes\tTarget URL to redirect to\nslug\tstring\tno\tCustom slug (auto-generated if omitted)\ndomain\tstring\tno\tCustom domain (default: go2.gg)\ntitle\tstring\tno\tLink title\ndescription\tstring\tno\tLink description\ntags\tstring[]\tno\tTags for filtering\npassword\tstring\tno\tPassword protection\nexpiresAt\tstring\tno\tISO 8601 expiration date\nclickLimit\tnumber\tno\tMax clicks allowed\ngeoTargets\tobject\tno\tCountry → URL mapping\ndeviceTargets\tobject\tno\tDevice → URL mapping\niosUrl\tstring\tno\tiOS app deep link\nandroidUrl\tstring\tno\tAndroid app deep link\nutmSource/Medium/Campaign/Term/Content\tstring\tno\tUTM parameters\nQR Codes\n\nGenerate customizable QR codes. QR generation is free and requires no auth.\n\nGenerate QR Code (No Auth Required)\n# Generate SVG QR code (free, no API key needed)\ncurl -X POST \"https://api.go2.gg/api/v1/qr/generate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://go2.gg/my-link\",\n    \"size\": 512,\n    \"foregroundColor\": \"#1a365d\",\n    \"backgroundColor\": \"#FFFFFF\",\n    \"cornerRadius\": 10,\n    \"errorCorrection\": \"H\",\n    \"format\": \"svg\"\n  }' -o qr-code.svg\n\n# PNG format\ncurl -X POST \"https://api.go2.gg/api/v1/qr/generate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\": \"https://example.com\", \"format\": \"png\", \"size\": 1024}' -o qr-code.png\n\nQR Parameters\nField\tType\tDefault\tDescription\nurl\tstring\trequired\tURL to encode\nsize\tnumber\t256\tSize in pixels (64-2048)\nforegroundColor\tstring\t#000000\tHex color for modules\nbackgroundColor\tstring\t#FFFFFF\tHex color for background\ncornerRadius\tnumber\t0\tModule corner radius (0-50)\nerrorCorrection\tstring\tM\tL (7%), M (15%), Q (25%), H (30%)\nformat\tstring\tsvg\tsvg or png\nSave & Track QR Codes (Auth Required)\n# Save QR config for tracking\ncurl -X POST \"https://api.go2.gg/api/v1/qr\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"Business Card QR\", \"url\": \"https://go2.gg/contact\", \"linkId\": \"lnk_abc123\"}'\n\n# List saved QR codes\ncurl \"https://api.go2.gg/api/v1/qr\" -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n# Download saved QR\ncurl \"https://api.go2.gg/api/v1/qr/qr_abc123/download?format=svg\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" -o qr.svg\n\n# Delete QR\ncurl -X DELETE \"https://api.go2.gg/api/v1/qr/qr_abc123\" -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\nWebhooks\n\nReceive real-time notifications for link clicks, creations, and updates.\n\n# Create webhook\ncurl -X POST \"https://api.go2.gg/api/v1/webhooks\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"Click Tracker\", \"url\": \"https://your-server.com/webhook\", \"events\": [\"click\", \"link.created\"]}'\n\n# List webhooks\ncurl \"https://api.go2.gg/api/v1/webhooks\" -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n# Test webhook\ncurl -X POST \"https://api.go2.gg/api/v1/webhooks/wh_abc123/test\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n# Delete webhook\ncurl -X DELETE \"https://api.go2.gg/api/v1/webhooks/wh_abc123\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n\nEvents: click, link.created, link.updated, link.deleted, domain.verified, qr.scanned, * (all)\n\nWebhook payloads include X-Webhook-Signature (HMAC SHA256) for verification. Retries: 5s → 30s → 2m → 10m.\n\nGalleries (Link-in-Bio)\n\nCreate link-in-bio pages programmatically.\n\n# Create gallery\ncurl -X POST \"https://api.go2.gg/api/v1/galleries\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"slug\": \"myprofile\", \"title\": \"My Name\", \"bio\": \"Creator & developer\", \"theme\": \"gradient\"}'\n\n# Add link item\ncurl -X POST \"https://api.go2.gg/api/v1/galleries/gal_abc123/items\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"type\": \"link\", \"title\": \"My Website\", \"url\": \"https://example.com\"}'\n\n# Add YouTube embed\ncurl -X POST \"https://api.go2.gg/api/v1/galleries/gal_abc123/items\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"type\": \"embed\", \"title\": \"Latest Video\", \"embedType\": \"youtube\", \"embedData\": {\"videoId\": \"dQw4w9WgXcQ\"}}'\n\n# Publish gallery (makes it live at go2.gg/bio/myprofile)\ncurl -X POST \"https://api.go2.gg/api/v1/galleries/gal_abc123/publish\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"isPublished\": true}'\n\n# Reorder items\ncurl -X PATCH \"https://api.go2.gg/api/v1/galleries/gal_abc123/items/reorder\" \\\n  -H \"Authorization: Bearer $GO2GG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"itemIds\": [\"item_3\", \"item_1\", \"item_2\"]}'\n\n# List galleries\ncurl \"https://api.go2.gg/api/v1/galleries\" -H \"Authorization: Bearer $GO2GG_API_KEY\"\n\n\nThemes: default, minimal, gradient, dark, neon, custom (with customCss) Item types: link, header, divider, embed (youtube), image\n\nPython Example\nimport requests\n\nAPI_KEY = \"go2_your_key_here\"  # or os.environ[\"GO2GG_API_KEY\"]\nBASE = \"https://api.go2.gg/api/v1\"\nheaders = {\"Authorization\": f\"Bearer {API_KEY}\", \"Content-Type\": \"application/json\"}\n\n# Create short link\nresp = requests.post(f\"{BASE}/links\", headers=headers, json={\n    \"destinationUrl\": \"https://example.com/product\",\n    \"slug\": \"my-product\",\n    \"title\": \"Product Link\",\n    \"tags\": [\"product\"]\n})\nlink = resp.json()[\"data\"]\nprint(f\"Short URL: {link['shortUrl']}\")\n\n# Get analytics\nstats = requests.get(f\"{BASE}/links/{link['id']}/stats\", headers=headers).json()[\"data\"]\nprint(f\"Clicks: {stats['totalClicks']}\")\n\n# Generate QR (no auth needed)\nqr = requests.post(f\"{BASE}/qr/generate\", json={\"url\": link[\"shortUrl\"], \"size\": 512, \"format\": \"png\"})\nwith open(\"qr.png\", \"wb\") as f:\n    f.write(qr.content)\n\nAPI Endpoint Summary\nService\tEndpoint\tMethod\tAuth\nLinks create\t/api/v1/links\tPOST\tyes\nLinks list\t/api/v1/links\tGET\tyes\nLinks get\t/api/v1/links/:id\tGET\tyes\nLinks update\t/api/v1/links/:id\tPATCH\tyes\nLinks delete\t/api/v1/links/:id\tDELETE\tyes\nLinks stats\t/api/v1/links/:id/stats\tGET\tyes\nQR generate\t/api/v1/qr/generate\tPOST\tno\nQR save\t/api/v1/qr\tPOST\tyes\nQR list\t/api/v1/qr\tGET\tyes\nQR download\t/api/v1/qr/:id/download\tGET\tyes\nWebhooks\t/api/v1/webhooks\tCRUD\tyes\nWebhook test\t/api/v1/webhooks/:id/test\tPOST\tyes\nGalleries\t/api/v1/galleries\tCRUD\tyes\nGallery items\t/api/v1/galleries/:id/items\tCRUD\tyes\nGallery publish\t/api/v1/galleries/:id/publish\tPOST\tyes\nRate Limits\nPlan\tRequests/min\nFree\t60\nPro\t300\nBusiness\t1000\nError Codes\nCode\tDescription\nSLUG_RESERVED\tSlug is reserved\nSLUG_EXISTS\tSlug already in use on this domain\nINVALID_URL\tDestination URL is invalid\nLIMIT_REACHED\tPlan's link limit reached\nDOMAIN_NOT_VERIFIED\tCustom domain not verified"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Rakesh1002/go2gg",
    "publisherUrl": "https://clawhub.ai/Rakesh1002/go2gg",
    "owner": "Rakesh1002",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/go2gg",
    "downloadUrl": "https://openagent3.xyz/downloads/go2gg",
    "agentUrl": "https://openagent3.xyz/skills/go2gg/agent",
    "manifestUrl": "https://openagent3.xyz/skills/go2gg/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/go2gg/agent.md"
  }
}