1import{c as S,j as e,L as i,r as y}from"./main-DdfLmGdR.js";import{K as o}from"./key-BWzKMRQV.js";import{Z as x}from"./zap-MrgdXzge.js";import{P as u}from"./package-BCUFjXGR.js";import{L as j}from"./link-2-C2iPchgg.js";import{C as p}from"./chart-column-DfTt8zPv.js";import{G as b}from"./globe-bFOGPi9r.js";import{Q as N}from"./qr-code-Cb9qoBX2.js";import{C as f}from"./clock-B_Uwweks.js";import{S as k}from"./shield-Dv8oV1Uj.js";import{C}from"./code-CkeLy-B4.js";import{E as m}from"./external-link-NmtRqDLi.js";import{C as T}from"./check-B8rjsWgk.js";import{C as A}from"./copy-B7oUKSIs.js";import{C as G}from"./chevron-right-DzU2VuFe.js";const P=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],g=S("server",P);function t({code:r,language:d="bash"}){const[n,l]=y.useState(!1),c=async()=>{await navigator.clipboard.writeText(r),l(!0),setTimeout(()=>l(!1),2e3)};return e.jsxs("div",{className:"relative group",children:[e.jsx("pre",{className:"bg-slate-900 dark:bg-[#0f0f1a] rounded-lg p-4 overflow-x-auto",children:e.jsx("code",{className:"text-sm text-slate-300 font-mono whitespace-pre",children:r})}),e.jsx("button",{onClick:c,className:"absolute top-3 right-3 p-2 bg-slate-800 hover:bg-slate-700 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity",children:n?e.jsx(T,{className:"h-4 w-4 text-green-400"}):e.jsx(A,{className:"h-4 w-4 text-slate-400"})})]})}function s({method:r,path:d,description:n,scope:l,requestBody:c,responseBody:w}){const[h,v]=y.useState(!1),_={GET:"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400",POST:"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",PUT:"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400",DELETE:"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400"};return e.jsxs("div",{className:"border border-slate-200 dark:border-white/10 rounded-xl overflow-hidden",children:[e.jsxs("button",{onClick:()=>v(!h),className:"w-full flex items-center gap-4 p-4 hover:bg-slate-50 dark:hover:bg-white/5 transition-colors text-left",children:[e.jsx("span",{className:`px-2.5 py-1 rounded-md text-xs font-bold ${_[r]}`,children:r}),e.jsx("code",{className:"text-sm font-mono text-slate-900 dark:text-white flex-1",children:d}),e.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400 hidden sm:block",children:l}),e.jsx(G,{className:`h-4 w-4 text-slate-400 transition-transform ${h?"rotate-90":""}`})]}),h&&e.jsxs("div",{className:"p-4 pt-0 space-y-4 border-t border-slate-100 dark:border-white/5",children:[e.jsx("p",{className:"text-sm text-slate-600 dark:text-slate-400",children:n}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx(k,{className:"h-3.5 w-3.5 text-purple-500"}),e.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"Required scope:"}),e.jsx("code",{className:"px-1.5 py-0.5 bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-400 rounded",children:l})]}),c&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-slate-500 dark:text-slate-400 mb-2 uppercase tracking-wide",children:"Request Body"}),e.jsx(t,{code:c,language:"json"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-slate-500 dark:text-slate-400 mb-2 uppercase tracking-wide",children:"Response"}),e.jsx(t,{code:w,language:"json"})]})]})]})}function a({href:r,icon:d,label:n,active:l}){return e.jsxs("a",{href:r,className:`flex items-center gap-2 px-3 py-2 rounded-lg text-sm font-medium transition-colors ${l?"bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-400":"text-slate-600 dark:text-slate-400 hover:bg-slate-100 dark:hover:bg-white/5"}`,children:[e.jsx(d,{className:"h-4 w-4"}),n]})}function X(){return e.jsxs("div",{className:"min-h-screen bg-slate-50 dark:bg-[#0a0a14]",children:[e.jsx("header",{className:"sticky top-0 z-40 bg-white/80 dark:bg-[#0a0a14]/80 backdrop-blur-xl border-b border-slate-200 dark:border-white/10",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"flex items-center justify-between h-16",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs(i,{to:"/",className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-8 h-8 rounded-xl bg-gradient-to-br from-purple-500 to-blue-500 flex items-center justify-center",children:e.jsx("span",{className:"text-white text-sm font-bold",children:"G2"})}),e.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:"go2.ge"})]}),e.jsx("span",{className:"text-slate-300 dark:text-slate-600",children:"/"}
vendor: 4,103 bytes, lines 1-2
1),e.jsx("span",{className:"text-slate-600 dark:text-slate-400",children:"API Documentation"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(i,{to:"/dashboard/api-keys",className:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-purple-600 dark:text-purple-400 hover:bg-purple-50 dark:hover:bg-purple-900/20 rounded-lg transition-colors",children:[e.jsx(o,{className:"h-4 w-4"}),"Get API Key"]}),e.jsx(i,{to:"/dashboard",className:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium bg-gradient-to-r from-purple-600 to-blue-600 text-white rounded-lg hover:from-purple-500 hover:to-blue-500 transition-colors",children:"Dashboard"})]})]})})}),e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:e.jsxs("div",{className:"flex gap-8",children:[e.jsx("aside",{className:"hidden lg:block w-64 flex-shrink-0",children:e.jsxs("nav",{className:"sticky top-24 space-y-1",children:[e.jsx(a,{href:"#getting-started",icon:x,label:"Getting Started",active:!0}),e.jsx(a,{href:"#sdks",icon:u,label:"SDKs"}),e.jsx(a,{href:"#grpc",icon:g,label:"gRPC API"}),e.jsx(a,{href:"#authentication",icon:o,label:"Authentication"}),e.jsx(a,{href:"#links",icon:j,label:"Links"}),e.jsx(a,{href:"#analytics",icon:p,label:"Analytics"}),e.jsx(a,{href:"#domains",icon:b,label:"Domains"}),e.jsx(a,{href:"#qr-codes",icon:N,label:"QR Codes"}),e.jsx(a,{href:"#integrations",icon:x,label:"Integrations"}),e.jsx(a,{href:"#campaigns",icon:p,label:"Campaigns"}),e.jsx(a,{href:"#rate-limits",icon:f,label:"Rate Limits"}),e.jsx(a,{href:"#errors",icon:k,label:"Errors"})]})}),e.jsx("main",{className:"flex-1 min-w-0",children:e.jsxs("div",{className:"prose prose-slate dark:prose-invert max-w-none",children:[e.jsxs("div",{className:"not-prose mb-12",children:[e.jsx("h1",{className:"text-4xl font-bold text-slate-900 dark:text-white mb-4",children:"Go2 API Documentation"}),e.jsx("p",{className:"text-lg text-slate-600 dark:text-slate-400 max-w-2xl",children:"Programmatically create smart links, fetch analytics, and manage your Go2 account. The API uses REST conventions and returns JSON responses."})]}),e.jsxs("section",{id:"getting-started",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(x,{className:"h-6 w-6 text-purple-500"}),"Getting Started"]}),e.jsxs("div",{className:"not-prose space-y-6",children:[e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-6",children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white mb-4",children:"Quick Start"}),e.jsxs("ol",{className:"space-y-4",children:[e.jsxs("li",{className:"flex gap-4",children:[e.jsx("span",{className:"flex-shrink-0 w-8 h-8 rounded-full bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400 flex items-center justify-center font-bold text-sm",children:"1"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-slate-900 dark:text-white",children:"Get your API key"}),e.jsxs("p",{className:"text-sm text-slate-500 dark:text-slate-400 mt-1",children:["Create an API key from your"," ",e.jsx(i,{to:"/dashboard/api-keys",className:"text-purple-600 dark:text-purple-400 hover:underline",children:"dashboard"}),". API access requires a Pro or Team plan."]})]})]}),e.jsxs("li",{className:"flex gap-4",children:[e.jsx("span",{className:"flex-shrink-0 w-8 h-8 rounded-full bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400 flex items-center justify-center font-bold text-sm",children:"2"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-slate-900 dark:text-white",children:"Make your first request"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mt-1 mb-3",children:"Use your API key to authenticate requests:"}),e.jsx(t,{code:`curl -H "X-API-Key: go2_your_key_here" \\ 2 https://go2.ge/api/v1/links`})]})]}),e.jsxs("li",{className:"flex gap-4",children:[e.jsx("span",{className:"flex-shrink-0 w-8 h-8 rounded-full bg-purple-100 dar
2k:bg-purple-900/30 text-purple-600 dark:text-purple-400 flex items-center justify-center font-bold text-sm",children:"3"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-slate-900 dark:text-white",children:"Create a smart link"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mt-1 mb-3",children:"Create your first link that redirects to different app stores:"}),e.jsx(t,{code:`curl -X POST \\ 3 -H "X-API-Key: go2_your_key_here" \\ 4 -H "Content-Type: application/json" \\ 5 -d '{ 6 "slug": "myapp", 7 "title": "My Awesome App", 8 "ios_url": "https://apps.apple.com/app/id123456", 9 "android_url": "https://play.google.com/store/apps/details?id=com.myapp", 10 "web_url": "https://myapp.com" 11 }' \\ 12 https://go2.ge/api/v1/links`})]})]})]})]}),e.jsx("div",{className:"bg-gradient-to-r from-purple-50 to-blue-50 dark:from-purple-950/30 dark:to-blue-950/30 rounded-xl border border-purple-200 dark:border-purple-800 p-6",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 bg-purple-100 dark:bg-purple-900/50 rounded-lg",children:e.jsx(C,{className:"h-5 w-5 text-purple-600 dark:text-purple-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white mb-1",children:"Base URL"}),e.jsx("p",{className:"text-sm text-slate-600 dark:text-slate-400 mb-2",children:"All API requests should be made to:"}),e.jsx("code",{className:"px-3 py-1.5 bg-white dark:bg-slate-900 rounded-lg text-sm font-mono text-purple-600 dark:text-purple-400",children:"https://go2.ge/api/v1"})]})]})})]})]}),e.jsxs("section",{id:"sdks",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(u,{className:"h-6 w-6 text-purple-500"}),"Official SDKs"]}),e.jsxs("div",{className:"not-prose space-y-6",children:[e.jsx("p",{className:"text-slate-600 dark:text-slate-400",children:"Use our official SDKs for the best developer experience. All SDKs support both REST and gRPC APIs."}),e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-cyan-100 dark:bg-cyan-900/30 flex items-center justify-center",children:e.jsx("span",{className:"text-cyan-600 dark:text-cyan-400 font-bold text-sm",children:"Go"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white",children:"Go SDK"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"github.com/gosms-ge/go2-sdk/go"})]})]}),e.jsxs("a",{href:"https://pkg.go.dev/github.com/gosms-ge/go2-sdk/go",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-cyan-700 dark:text-cyan-400 bg-cyan-50 dark:bg-cyan-900/20 rounded-lg hover:bg-cyan-100 dark:hover:bg-cyan-900/40 transition-colors",children:[e.jsx(m,{className:"h-3.5 w-3.5"}),"pkg.go.dev"]})]}),e.jsx(t,{code:"go get github.com/gosms-ge/go2-sdk/go"}),e.jsxs("div",{className:"mt-4",children:[e.jsx("p",{className:"text-xs font-medium text-slate-500 dark:text-slate-400 mb-2 uppercase tracking-wide",children:"Usage"}),e.jsx(t,{code:`package main 13 14import ( 15 "context" 16 go2 "github.com/gosms-ge/go2-sdk/go" 17 linksv1 "github.com/gosms-ge/go2-sdk/go/links/v1" 18) 19 20func main() { 21 client, _ := go2.NewClient(go2.WithAPIKey("go2_your_key")) 22 defer client.Close() 23 24 ctx := context.Background() 25 26 // Create a smart link 27 link, _ := client.Links.Create(ctx, &linksv1.CreateLinkRequest{ 28 Slug: "myapp", 29 Title: "My App", 30 IosUrl: "https://apps.apple.com/app/id123", 31 AndroidUrl: "https://play.google.com/store/apps/details?id=com.myapp", 32 }) 33 34 // Get analytics 35 stats, _ := client.Analytics.GetStats(ctx, link.Id, "7d") 36 37 // Generate QR code 38 qr, _ := client.QR.Generate(ctx, &qrv1.GenerateQRRequest{ 39 LinkId: link.Id, 40 Size: 256, 41 Format: "png", 42 }) 43}`,language:"go"})]})]}),e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-yellow-100 dark:bg-yellow-900/30 flex items-center justify-center",children:e.jsx("span",{className:"text-yellow-600 dark:text-yellow-400 font-bold text-sm",children:"Py"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white",children:"Python SDK"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"go2-sdk on PyPI"})]})]}),e.jsxs("a",{href:"https://pypi.org/project/go2-sdk/",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-yellow-700 dark:text-yellow-400 bg-yellow-50 dark:bg-yellow-900/20 rounded-lg hover:bg-yellow-100 dark:hover:bg-yellow-900/40 transition-colors",children:[e.jsx(m,{className:"h-3.5 w-3.5"}),"PyPI"]})]}),e.jsx(t,{code:"pip install go2-sdk"}),e.jsxs("div",{className:"mt-4",children:[e.jsx("p",{className:"text-xs font-medium text-slate-500 dark:text-slate-400 mb-2 uppercase tracking-wide",children:"Usage"}),e.jsx(t,{code:`from go2_sdk import Go2Client 44 45with Go2Client(api_key="go2_your_key") as client: 46 # Create a smart link 47 link = client.links.create( 48 slug="myapp", 49 title="My App", 50 ios_url="https://apps.apple.com/app/id123", 51 android_url="https://play.google.com/store/apps/details?id=com.myapp" 52 ) 53 54 # Get analytics 55 stats = client.analytics.get_stats(link.id, period="7d") 56 57 # Generate QR code 58 qr = client.qr.generate(link_id=link.id, size=256)`,language:"python"})]})]}),e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-blue-100 dar
58k:bg-blue-900/30 flex items-center justify-center",children:e.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-bold text-sm",children:"TS"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white",children:"TypeScript/Node.js SDK"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"@go2ge/sdk on npm"})]})]}),e.jsxs("a",{href:"https://www.npmjs.com/package/@go2ge/sdk",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-900/20 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/40 transition-colors",children:[e.jsx(m,{className:"h-3.5 w-3.5"}),"npm"]})]}),e.jsx(t,{code:"npm install @go2ge/sdk"}),e.jsxs("div",{className:"mt-4",children:[e.jsx("p",{className:"text-xs font-medium text-slate-500 dark:text-slate-400 mb-2 uppercase tracking-wide",children:"Usage"}),e.jsx(t,{code:`import { Go2Client } from '@go2ge/sdk'; 59 60const client = new Go2Client({ apiKey: 'go2_your_key' }); 61 62// Create a smart link 63const link = await client.links.create({ 64 slug: 'myapp', 65 title: 'My App', 66 iosUrl: 'https://apps.apple.com/app/id123', 67 androidUrl: 'https://play.google.com/store/apps/details?id=com.myapp', 68}); 69 70// Get analytics 71const stats = await client.analytics.getStats(link.id, '7d'); 72 73// Generate QR code 74const qr = await client.qr.generate({ 75 linkId: link.id, 76 size: 256, 77 format: 'png', 78}); 79 80// Manage custom domains 81const domains = await client.domains.list(); 82 83client.close();`,language:"typescript"})]})]}),e.jsx("div",{className:"flex gap-4",children:e.jsxs("a",{href:"https://github.com/gosms-ge/go2-sdk",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-slate-700 dark:text-slate-300 bg-slate-100 dark:bg-white/10 rounded-lg hover:bg-slate-200 dark:hover:bg-white/20 transition-colors",children:[e.jsx(m,{className:"h-4 w-4"}),"View on GitHub"]})})]})]}),e.jsxs("section",{id:"grpc",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(g,{className:"h-6 w-6 text-purple-500"}),"gRPC API"]}),e.jsxs("div",{className:"not-prose space-y-6",children:[e.jsx("p",{className:"text-slate-600 dark:text-slate-400",children:"For high-performance applications, use our gRPC API. It offers lower latency and better throughput than REST."}),e.jsx("div",{className:"bg-gradient-to-r from-purple-50 to-blue-50 dark:from-purple-950/30 dark:to-blue-950/30 rounded-xl border border-purple-200 dark:border-purple-800 p-6",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 bg-purple-100 dark:bg-purple-900/50 rounded-lg",children:e.jsx(g,{className:"h-5 w-5 text-purple-600 dark:text-purple-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white mb-1",children:"gRPC Endpoint"}),e.jsx("code",{className:"px-3 py-1.5 bg-white dark:bg-slate-900 rounded-lg text-sm font-mono text-purple-600 dark:text-purple-400",children:"grpc.go2.ge:443"})]})]})}),e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-6",children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white mb-4",children:"Available Services"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"p-4 bg-slate-50 dark:bg-white/5 rounded-lg",children:[e.jsx("h4",{className:"font-medium text-slate-900 dark:text-white mb-2",children:"LinkService"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mb-3",children:"Create and manage smart links"}),e.jsxs("div",{className:"grid grid-cols-2 gap-1 text-sm font-mono",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"ListLinks"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"CreateLink"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetLink"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"UpdateLink"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"DeleteLink"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"CheckSlug"})]})]})]}),e.jsxs("div",{className:"p-4 bg-slate-50 dark:bg-white/5 rounded-lg",children:[e.jsx("h4",{className:"font-medium text-slate-900 dark:text-white mb-2",children:"AnalyticsService"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mb-3",children:"Link click analytics and statistics"}),e.jsxs("div",{className:"grid grid-cols-2 gap-1 text-sm font-mono",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetStats"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetTimeseries"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetPlatforms"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetCountries"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetReferrers"})]})]})]}),e.jsxs("div",{className:"p-4 bg-slate-50 dark:bg-white/5 rounded-lg",children:[e.jsx("h4",{className:"font-medium text-slate-900 dark:text-white mb-2",children:"DomainService"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mb-3",children:"Custom domain management"}),e.jsxs("div",{className:"grid grid-cols-2 gap-1 text-sm font-mono",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"ListDomains"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"CreateDomain"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetDomain"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"VerifyDomain"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"DeleteDomain"})]})]})]}),e.jsxs("div",{className:"p-4 bg-slate-50 dark:bg-white/5 rounded-lg",children:[e.jsx("h4",{className:"font-medium text-slate-900 dark:text-white mb-2",children:"QRService"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mb-3",children:"QR code generation with customization"}),e.jsx("div",{className:"grid grid-cols-2 gap-1 text-sm font-mono",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GenerateQR"})]})})]}),e.jsxs("div",{className:"p-4 bg-slate-50 dark:bg-white/5 rounded-lg",children:[e.jsx("h4",{className:"font-medium text-slate-900 dark:text-white mb-2",children:"IntegrationService"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mb-3",children:"Third-party integrations (Slack, Discord, Telegram, etc.)"}),e.jsxs("div",{className:"grid grid-cols-2 gap-1 text-sm font-mono",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"ListIntegrations"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"CreateIntegration"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetIntegration"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"UpdateIntegration"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"DeleteIntegration"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"TestIntegration"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetIntegrationTypes"})]})]})]}),e.jsxs("div",{className:"p-4 bg-slate-50 dark:bg-white/5 rounded-lg",children:[e.jsx("h4",{className:"font-medium text-slate-900 dark:text-white mb-2",children:"CampaignService"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mb-3",children:"SMS/Email marketing campaigns with bulk trackable links"}),e.jsxs("div",{className:"grid grid-cols-2 gap-1 text-sm font-mono",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"ListCampaigns"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"CreateCampaign"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetCampaign"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"UpdateCampaign"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"DeleteC
83ampaign"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GenerateLinks"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"ListCampaignLinks"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"GetCampaignStats"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-600",children:"rpc"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-300",children:"ExportLinks"})]})]})]})]})]}),e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-6",children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white mb-4",children:"Authentication"}),e.jsx("p",{className:"text-sm text-slate-600 dark:text-slate-400 mb-3",children:"Pass your API key in the gRPC metadata:"}),e.jsx(t,{code:"x-api-key: go2_your_key_here"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mt-3",children:"Or use the Authorization header:"}),e.jsx(t,{code:"authorization: Bearer go2_your_key_here"})]}),e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-6",children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white mb-4",children:"Proto Files"}),e.jsx("p",{className:"text-sm text-slate-600 dark:text-slate-400 mb-3",children:"Download proto files to generate client code for any language:"}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("a",{href:"https://github.com/gosms-ge/go2-sdk/blob/main/proto/links/v1/links.proto",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/20 rounded-lg hover:bg-purple-100 dark:hover:bg-purple-900/40 transition-colors",children:"links.proto"}),e.jsx("a",{href:"https://github.com/gosms-ge/go2-sdk/blob/main/proto/analytics/v1/analytics.proto",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/20 rounded-lg hover:bg-purple-100 dark:hover:bg-purple-900/40 transition-colors",children:"analytics.proto"}),e.jsx("a",{href:"https://github.com/gosms-ge/go2-sdk/blob/main/proto/domains/v1/domains.proto",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/20 rounded-lg hover:bg-purple-100 dark:hover:bg-purple-900/40 transition-colors",children:"domains.proto"}),e.jsx("a",{href:"https://github.com/gosms-ge/go2-sdk/blob/main/proto/qr/v1/qr.proto",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/20 rounded-lg hover:bg-purple-100 dark:hover:bg-purple-900/40 transition-colors",children:"qr.proto"}),e.jsx("a",{href:"https://github.com/gosms-ge/go2-sdk/blob/main/proto/integrations/v1/integrations.proto",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/20 rounded-lg hover:bg-purple-100 dark:hover:bg-purple-900/40 transition-colors",children:"integrations.proto"}),e.jsx("a",{href:"https://github.com/gosms-ge/go2-sdk/blob/main/proto/campaigns/v1/campaigns.proto",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/20 rounded-lg hover:bg-purple-100 dar
83k:hover:bg-purple-900/40 transition-colors",children:"campaigns.proto"})]})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-5",children:[e.jsx("h4",{className:"font-semibold text-slate-900 dark:text-white mb-2",children:"Why gRPC?"}),e.jsxs("ul",{className:"text-sm text-slate-500 dark:text-slate-400 space-y-1",children:[e.jsx("li",{children:"⢠2-10x faster than REST"}),e.jsx("li",{children:"⢠Binary protocol (smaller payloads)"}),e.jsx("li",{children:"⢠Strongly typed contracts"}),e.jsx("li",{children:"⢠Bi-directional streaming"})]})]}),e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-5",children:[e.jsx("h4",{className:"font-semibold text-slate-900 dark:text-white mb-2",children:"When to use REST?"}),e.jsxs("ul",{className:"text-sm text-slate-500 dark:text-slate-400 space-y-1",children:[e.jsx("li",{children:"⢠Browser-based applications"}),e.jsx("li",{children:"⢠Simple integrations"}),e.jsx("li",{children:"⢠Debugging with curl"}),e.jsx("li",{children:"⢠Webhook callbacks"})]})]})]})]})]}),e.jsxs("section",{id:"authentication",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(o,{className:"h-6 w-6 text-purple-500"}),"Authentication"]}),e.jsxs("div",{className:"not-prose space-y-4",children:[e.jsx("p",{className:"text-slate-600 dark:text-slate-400",children:"Authenticate your requests using an API key. You can pass the key in one of two ways:"}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-5",children:[e.jsx("h4",{className:"font-semibold text-slate-900 dark:text-white mb-2",children:"X-API-Key Header"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mb-3",children:"Recommended method"}),e.jsx(t,{code:"X-API-Key: go2_your_key_here"})]}),e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-5",children:[e.jsx("h4",{className:"font-semibold text-slate-900 dark:text-white mb-2",children:"Bearer Token"}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 mb-3",children:"Alternative method"}),e.jsx(t,{code:"Authorization: Bearer go2_your_key_here"})]})]}),e.jsx("div",{className:"bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-xl p-4",children:e.jsxs("p",{className:"text-sm text-amber-800 dark:text-amber-400",children:[e.jsx("strong",{children:"Keep your API key secure!"})," Never expose it in client-side code or public repositories. If your key is compromised, revoke it immediately from your dashboard."]})})]})]}),e.jsxs("section",{id:"links",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(j,{className:"h-6 w-6 text-purple-500"}),"Links"]}),e.jsxs("div",{className:"not-prose space-y-4",children:[e.jsx("p",{className:"text-slate-600 dark:text-slate-400 mb-6",children:"Create and manage smart links that redirect users to the right app store based on their device."}),e.jsx(s,{method:"GET",path:"/links",description:"List all your links with pagination support.",scope:"links:read",responseBody:`{ 84 "links": [ 85 { 86 "id": "550e8400-e29b-41d4-a716-446655440000", 87 "slug": "myapp", 88 "title": "My Awesome App", 89 "ios_url": "https://apps.apple.com/app/id123456", 90 "android_url": "https://play.google.com/store/apps/details?id=com.myapp", 91 "web_url": "https://myapp.com", 92 "total_clicks": 1234, 93 "is_active": true, 94 "created_at": "2024-01-15T10:30:00Z" 95 } 96 ], 97 "total": 15, 98 "page": 1, 99 "per_page": 20 100}`}),e.jsx(s,{method:"POST",path:"/links",description:"Create a new smart link with platform-specific destinations.",scope:"links:write",requestBody:`{ 101 "slug": "myapp", 102 "title": "My Awesome App", 103 "ios_url": "https://apps.apple.com/app/id123456", 104 "android_url": "https://play.google.com/store/apps/details?id=com.myapp", 105 "web_url": "https://myapp.com", 106 "fallback_url": "https://myapp.com/download" 107}`,responseBody:`{ 108 "link": { 109 "id": "550e8400-e29b-41d4-a716-446655440000", 110 "slug": "myapp", 111 "title": "My Awesome App", 112 "ios_url": "https://apps.apple.com/app/id123456", 113 "android_url": "https://play.google.com/store/apps/details?id=com.myapp", 114 "web_url": "https://myapp.com", 115 "total_clicks": 0, 116 "is_active": true, 117 "created_at": "2024-01-15T10:30:00Z" 118 } 119}`}),e.jsx(s,{method:"GET",path:"/links/:id",description:"Get details of a specific link by ID.",scope:"links:read",responseBody:`{ 120 "link": { 121 "id": "550e8400-e29b-41d4-a716-446655440000", 122 "slug": "myapp", 123 "title": "My Awesome App", 124 "ios_url": "https://apps.apple.com/app/id123456", 125 "android_url": "https://play.google.com/store/apps/details?id=com.myapp", 126 "web_url": "https://myapp.com", 127 "total_clicks": 1234, 128 "is_active": true, 129 "created_at": "2024-01-15T10:30:00Z", 130 "updated_at": "2024-01-20T15:45:00Z" 131 } 132}`}),e.jsx(s,{method:"PUT",path:"/links/:id",description:"Update an existing link's settings and destinations.",scope:"links:write",requestBody:`{ 133 "title": "Updated App Name", 134 "ios_url": "https://apps.apple.com/app/id999999", 135 "is_active": false 136}`,responseBody:`{ 137 "link": { 138 "id": "550e8400-e29b-41d4-a716-446655440000", 139 "slug": "myapp", 140 "title": "Updated App Name", 141 "ios_url": "https://apps.apple.com/app/id999999", 142 "is_active": false, 143 "updated_at": "2024-01-25T12:00:00Z" 144 } 145}`}),e.jsx(s,{method:"DELETE",path:"/links/:id",description:"Permanently delete a link. This action cannot be undone.",scope:"links:write",responseBody:`{ 146 "message": "Link deleted successfully" 147}`}),e.jsx(s,{method:"GET",path:"/links/check-slug/:slug",description:"Check if a slug is available for use.",scope:"links:read",responseBody:`{ 148 "available": true, 149 "slug": "myapp" 150}`})]})]}),e.jsxs("section",{id:"analytics",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(p,{className:"h-6 w-6 text-purple-500"}),"Analytics"]}),e.jsxs("div",{className:"not-prose space-y-4",children:[e.jsx("p",{className:"text-slate-600 dar
150k:text-slate-400 mb-6",children:"Access detailed click analytics for your links including platform breakdowns, geographic data, and time series."}),e.jsx(s,{method:"GET",path:"/links/:id/stats",description:"Get overview statistics for a link.",scope:"analytics:read",responseBody:`{ 151 "stats": { 152 "total_clicks": 15234, 153 "unique_clicks": 12891, 154 "ios_clicks": 6543, 155 "android_clicks": 5234, 156 "web_clicks": 3457, 157 "top_countries": [ 158 {"country": "US", "clicks": 5432}, 159 {"country": "GB", "clicks": 2341} 160 ] 161 } 162}`}),e.jsx(s,{method:"GET",path:"/links/:id/stats/timeseries?period=7d",description:"Get click data over time. Periods: 7d, 30d, 90d",scope:"analytics:read",responseBody:`{ 163 "timeseries": [ 164 {"date": "2024-01-15", "clicks": 234, "unique": 198}, 165 {"date": "2024-01-16", "clicks": 312, "unique": 267}, 166 {"date": "2024-01-17", "clicks": 189, "unique": 156} 167 ] 168}`}),e.jsx(s,{method:"GET",path:"/links/:id/stats/platforms",description:"Get breakdown of clicks by platform (iOS, Android, etc.)",scope:"analytics:read",responseBody:`{ 169 "platforms": [ 170 {"platform": "ios", "clicks": 6543, "percentage": 42.9}, 171 {"platform": "android", "clicks": 5234, "percentage": 34.4}, 172 {"platform": "web", "clicks": 3457, "percentage": 22.7} 173 ] 174}`}),e.jsx(s,{method:"GET",path:"/links/:id/stats/countries",description:"Get geographic breakdown of clicks.",scope:"analytics:read",responseBody:`{ 175 "countries": [ 176 {"country": "US", "country_name": "United States", "clicks": 5432}, 177 {"country": "GB", "country_name": "United Kingdom", "clicks": 2341}, 178 {"country": "DE", "country_name": "Germany", "clicks": 1523} 179 ] 180}`})]})]}),e.jsxs("section",{id:"domains",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(b,{className:"h-6 w-6 text-purple-500"}),"Domains"]}),e.jsxs("div",{className:"not-prose space-y-4",children:[e.jsx("p",{className:"text-slate-600 dark:text-slate-400 mb-6",children:"Add and manage custom domains for your smart links. Use your own domain instead of go2.ge."}),e.jsx(s,{method:"GET",path:"/domains",description:"List all your custom domains.",scope:"domains:read",responseBody:`{ 181 "domains": [ 182 { 183 "id": "550e8400-e29b-41d4-a716-446655440000", 184 "domain": "links.myapp.com", 185 "status": "active", 186 "verified_at": "2024-01-15T10:30:00Z", 187 "ssl_status": "active", 188 "created_at": "2024-01-10T08:00:00Z" 189 } 190 ] 191}`}),e.jsx(s,{method:"POST",path:"/domains",description:"Add a new custom domain. You'll need to configure DNS records after adding.",scope:"domains:write",requestBody:`{ 192 "domain": "links.myapp.com" 193}`,responseBody:`{ 194 "domain": { 195 "id": "550e8400-e29b-41d4-a716-446655440000", 196 "domain": "links.myapp.com", 197 "status": "pending", 198 "verification_token": "go2-verify-abc123", 199 "created_at": "2024-01-15T10:30:00Z" 200 }, 201 "dns_records": [ 202 { 203 "type": "CNAME", 204 "name": "links", 205 "value": "domains.go2.ge" 206 }, 207 { 208 "type": "TXT", 209 "name": "_go2-verify.links", 210 "value": "go2-verify-abc123" 211 } 212 ] 213}`}),e.jsx(s,{method:"POST",path:"/domains/:id/verify",description:"Trigger domain verification. Call this after configuring DNS records.",scope:"domains:write",responseBody:`{ 214 "domain": { 215 "id": "550e8400-e29b-41d4-a716-446655440000", 216 "domain": "links.myapp.com", 217 "status": "active", 218 "verified_at": "2024-01-15T12:00:00Z", 219 "ssl_status": "provisioning" 220 } 221}`}),e.jsx(s,{method:"DELETE",path:"/domains/:id",description:"Remove a custom domain.",scope:"domains:write",responseBody:`{ 222 "message": "Domain deleted successfully" 223}`})]})]}),e.jsxs("section",{id:"qr-codes",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(N,{className:"h-6 w-6 text-purple-500"}),"QR Codes"]}),e.jsxs("div",{className:"not-prose space-y-4",children:[e.jsx("p",{className:"text-slate-600 dark:text-slate-400 mb-6",children:"Generate customizable QR codes for your links."}),e.jsx(s,{method:"POST",path:"/links/:id/qr",description:"Generate a QR code for a link
223with custom styling.",scope:"qr:generate",requestBody:`{ 224 "size": 512, 225 "format": "png", 226 "foreground_color": "#000000", 227 "background_color": "#FFFFFF" 228}`,responseBody:`{ 229 "qr_code": { 230 "url": "https://go2.ge/qr/abc123.png", 231 "size": 512, 232 "format": "png" 233 } 234}`})]})]}),e.jsxs("section",{id:"integrations",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(x,{className:"h-6 w-6 text-purple-500"}),"Integrations"]}),e.jsxs("div",{className:"not-prose space-y-4",children:[e.jsx("p",{className:"text-slate-600 dark:text-slate-400 mb-6",children:"Connect Go2 with third-party services to receive notifications and automate workflows when links are clicked."}),e.jsx(s,{method:"GET",path:"/integrations",description:"List all your integrations.",scope:"integrations:read",responseBody:`{ 235 "integrations": [ 236 { 237 "id": "550e8400-e29b-41d4-a716-446655440000", 238 "type": "slack", 239 "name": "Marketing Alerts", 240 "is_active": true, 241 "events": ["click_milestone", "click_alert"], 242 "created_at": "2024-01-15T10:30:00Z" 243 } 244 ] 245}`}),e.jsx(s,{method:"POST",path:"/integrations",description:"Create a new integration with a third-party service.",scope:"integrations:write",requestBody:`{ 246 "type": "slack", 247 "name": "Marketing Alerts", 248 "config": { 249 "webhook_url": "https://hooks.slack.com/services/..." 250 }, 251 "events": ["click_milestone", "click_alert"] 252}`,responseBody:`{ 253 "integration": { 254 "id": "550e8400-e29b-41d4-a716-446655440000", 255 "type": "slack", 256 "name": "Marketing Alerts", 257 "is_active": true, 258 "events": ["click_milestone", "click_alert"], 259 "created_at": "2024-01-15T10:30:00Z" 260 } 261}`}),e.jsx(s,{method:"POST",path:"/integrations/:id/test",description:"Send a test notification to verify the integration is working.",scope:"integrations:write",responseBody:`{ 262 "success": true, 263 "message": "Test notification sent successfully" 264}`}),e.jsx(s,{method:"DELETE",path:"/integrations/:id",description:"Delete an integration.",scope:"integrations:write",responseBody:`{ 265 "message": "Integration deleted successfully" 266}`}),e.jsxs("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 p-6",children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white mb-4",children:"Supported Integrations"}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-[#4A154B] rounded-lg flex items-center justify-center",children:e.jsx("span",{className:"text-white text-xs font-bold",children:"#"})}),e.jsx("span",{className:"text-sm text-slate-700 dark:text-slate-300",children:"Slack"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-[#5865F2] rounded-lg flex items-center justify-center",children:e.jsx("span",{className:"text-white text-xs font-bold",children:"D"})}),e.jsx("span",{className:"text-sm text-slate-700 dark:text-slate-300",children:"Discord"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-[#0088cc] rounded-lg flex items-center justify-center",children:e.jsx("span",{className:"text-white text-xs font-bold",children:"T"})}),e.jsx("span",{className:"text-sm text-slate-700 dark:text-slate-300",children:"Telegram"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-[#52BD95] rounded-lg flex items-center justify-center",children:e.jsx("span",{className:"text-white text-xs font-bold",children:"S"})}),e.jsx("span",{className:"text-sm text-slate-700 dark:text-slate-300",children:"Segment"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-[#FF4A00] rounded-lg flex items-center justify-center",children:e.jsx("span",{className:"text-white text-xs font-bold",children:"Z"})}),e.jsx("span",{className:"text-sm text-slate-700 dark:text-slate-300",children:"Zapier"})]})]})]})]})]}),e.jsxs("section",{id:"campaigns",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(p,{className:"h-6 w-6 text-purple-500"}),"Campaigns"]}),e.jsxs("div",{className:"not-prose space-y-4",children:[e.jsx("p",{className:"text-slate-600 dar
266k:text-slate-400 mb-6",children:"Create and manage SMS/Email marketing campaigns with bulk trackable links. Generate unique links for each recipient to track individual engagement."}),e.jsx(s,{method:"GET",path:"/campaigns",description:"List all your campaigns with optional status and search filters.",scope:"campaigns:read",responseBody:`{ 267 "campaigns": [ 268 { 269 "id": "550e8400-e29b-41d4-a716-446655440000", 270 "name": "Summer Sale 2024", 271 "destination_url": "https://myshop.com/sale", 272 "total_recipients": 10000, 273 "total_clicks": 1523, 274 "unique_clicks": 1234, 275 "status": "active", 276 "created_at": "2024-01-15T10:30:00Z" 277 } 278 ], 279 "total": 5 280}`}),e.jsx(s,{method:"POST",path:"/campaigns",description:"Create a new marketing campaign.",scope:"campaigns:write",requestBody:`{ 281 "name": "Summer Sale 2024", 282 "description": "Promotional campaign for summer sale", 283 "destination_url": "https://myshop.com/sale", 284 "pass_recipient_id": true, 285 "recipient_param_name": "uid" 286}`,responseBody:`{ 287 "campaign": { 288 "id": "550e8400-e29b-41d4-a716-446655440000", 289 "name": "Summer Sale 2024", 290 "destination_url": "https://myshop.com/sale", 291 "status": "active", 292 "created_at": "2024-01-15T10:30:00Z" 293 } 294}`}),e.jsx(s,{method:"POST",path:"/campaigns/:id/links",description:"Generate unique trackable links for campaign recipients in bulk. Max 100,000 recipients per request.",scope:"campaigns:write",requestBody:`{ 295 "recipients": [ 296 {"id": "+1234567890", "name": "John Doe"}, 297 {"id": "+0987654321", "name": "Jane Smith"}, 298 {"id": "[email protected]", "name": "Bob Wilson"} 299 ] 300}`,responseBody:`{ 301 "campaign_id": "550e8400-e29b-41d4-a716-446655440000", 302 "links_created": 3, 303 "sample_links": [ 304 { 305 "recipient_id": "+1234567890", 306 "recipient_name": "John Doe", 307 "short_url": "https://go2.ge/c/abc123", 308 "clicked": false 309 } 310 ] 311}`}),e.jsx(s,{method:"GET",path:"/campaigns/:id/links",description:"List campaign links with pagination. Filter by clicked status or search by recipient.",scope:"campaigns:read",responseBody:`{ 312 "links": [ 313 { 314 "id": "123e4567-e89b-12d3-a456-426614174000", 315 "recipient_id": "+1234567890", 316 "recipient_name": "John Doe", 317 "short_url": "https://go2.ge/c/abc123", 318 "clicked": true, 319 "click_count": 3, 320 "first_clicked_at": "2024-01-16T08:30:00Z", 321 "first_click_platform": "ios", 322 "first_click_country": "US" 323 } 324 ], 325 "total": 10000 326}`}),e.jsx(s,{method:"GET",path:"/campaigns/:id/stats",description:"Get detailed campaign statistics including click rates and breakdowns.",scope:"campaigns:read",responseBody:`{ 327 "campaign_id": "550e8400-e29b-41d4-a716-446655440000", 328 "total_recipients": 10000, 329 "total_clicks": 1523, 330 "unique_clicks": 1234, 331 "click_rate": 12.34, 332 "clicks_by_platform": { 333 "ios": 623, 334 "android": 456, 335 "web": 155 336 }, 337 "clicks_by_country": { 338 "US": 800, 339 "GB": 234, 340 "DE": 200 341 } 342}`}),e.jsx(s,{method:"GET",path:"/campaigns/:id/export",description:"Export all campaign links as CSV or JSON for analysis or SMS/Email sending.",scope:"campaigns:read",responseBody:`[ 343 { 344 "recipient_id": "+1234567890", 345 "recipient_name": "John Doe", 346 "short_url": "https://go2.ge/c/abc123", 347 "clicked": true, 348 "click_count": 3 349 } 350]`}),e.jsxs("div",{className:"bg-gradient-to-r from-blue-50 to-purple-50 dark:from-blue-950/30 dark:to-purple-950/30 rounded-xl border border-blue-200 dark:border-blue-800 p-6",children:[e.jsx("h3",{className:"font-semibold text-slate-900 dark:text-white mb-3",children:"Campaign Workflow"}),e.jsxs("ol",{className:"text-sm text-slate-600 dark:text-slate-400 space-y-2 list-decimal list-inside",children:[e.jsx("li",{children:"Create a campaign with your destination URL"}),e.jsx("li",{children:"Generate unique links for each recipient (phone, email, or custom ID)"}),e.jsx("li",{children:"Export links and send via your SMS/Email provider"}),e.jsx("li",{children:"Track individual recipient engagement in real-time"}),e.jsx("li",{children:"Analyze campaign performance with detailed statistics"})]})]})]})]}),e.jsxs("section",{id:"rate-limits",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(f,{className:"h-6 w-6 text-purple-500"}),"Rate Limits"]}),e.jsxs("div",{className:"not-prose space-y-4",children:[e.jsx("p",{className:"text-slate-600 dar
350k:text-slate-400",children:"API requests are rate limited to ensure fair usage. Limits are applied per API key."}),e.jsx("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 overflow-hidden",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-slate-200 dark:border-white/10",children:[e.jsx("th",{className:"px-4 py-3 text-left font-semibold text-slate-900 dark:text-white",children:"Plan"}),e.jsx("th",{className:"px-4 py-3 text-left font-semibold text-slate-900 dark:text-white",children:"Limit"}),e.jsx("th",{className:"px-4 py-3 text-left font-semibold text-slate-900 dark:text-white",children:"Window"})]})}),e.jsxs("tbody",{className:"divide-y divide-slate-100 dark:divide-white/5",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"Pro"}),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"1,000 requests"}),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"per hour"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"Team"}),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"5,000 requests"}),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"per hour"})]})]})]})}),e.jsx("p",{className:"text-slate-600 dark:text-slate-400",children:"Rate limit headers are included in every response:"}),e.jsx(t,{code:`X-RateLimit-Limit: 1000 351X-RateLimit-Remaining: 987 352X-RateLimit-Reset: 1705329600`})]})]}),e.jsxs("section",{id:"errors",className:"mb-16 scroll-mt-24",children:[e.jsxs("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(k,{className:"h-6 w-6 text-purple-500"}),"Errors"]}),e.jsxs("div",{className:"not-prose space-y-4",children:[e.jsx("p",{className:"text-slate-600 dark:text-slate-400",children:"The API uses conventional HTTP status codes and returns JSON error responses."}),e.jsx("div",{className:"bg-white dark:bg-white/5 rounded-xl border border-slate-200 dark:border-white/10 overflow-hidden",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-slate-200 dark:border-white/10",children:[e.jsx("th",{className:"px-4 py-3 text-left font-semibold text-slate-900 dark:text-white",children:"Code"}),e.jsx("th",{className:"px-4 py-3 text-left font-semibold text-slate-900 dark:text-white",children:"Description"})]})}),e.jsxs("tbody",{className:"divide-y divide-slate-100 dark:divide-white/5",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:e.jsx("code",{className:"text-green-600",children:"200"})}),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"Success"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:e.jsx("code",{className:"text-amber-600",children:"400"})}),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"Bad Request - Invalid parameters"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:e.jsx("code",{className:"text-red-600",children:"401"})}),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"Unauthorized - Invalid or missing API key"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:e.jsx("code",{className:"text-red-600",children:"403"})}),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"Forbidden - Insufficient scope permissions"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:e.jsx("code",{className:"text-amber-600",children:"404"})}),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"Not Found - Resource doesn't exist"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:e.jsx("code",{className:"text-orange-600",children:"429"})}),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"Rate Limited - Too many requests"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:e.jsx("code",{className:"text-red-600",children:"500"})}
vendor: 2,209 bytes, lines 352-356
352),e.jsx("td",{className:"px-4 py-3 text-slate-600 dark:text-slate-400",children:"Server Error - Something went wrong"})]})]})]})}),e.jsx("p",{className:"text-slate-600 dark:text-slate-400",children:"Error response format:"}),e.jsx(t,{code:`{ 353 "error": "insufficient permissions", 354 "required_scope": "links:write", 355 "message": "Your API key does not have the required scope for this action" 356}`})]})]}),e.jsx("section",{className:"not-prose mt-16 pt-8 border-t border-slate-200 dark:border-white/10",children:e.jsxs("div",{className:"bg-gradient-to-r from-purple-600 to-blue-600 rounded-2xl p-8 text-center",children:[e.jsx("h3",{className:"text-2xl font-bold text-white mb-3",children:"Ready to get started?"}),e.jsx("p",{className:"text-purple-100 mb-6 max-w-md mx-auto",children:"Create your API key and start integrating Go2 into your applications today."}),e.jsxs(i,{to:"/dashboard/api-keys",className:"inline-flex items-center gap-2 px-6 py-3 bg-white text-purple-600 font-semibold rounded-xl hover:bg-purple-50 transition-colors",children:[e.jsx(o,{className:"h-5 w-5"}),"Create API Key"]})]})})]})})]})}),e.jsx("footer",{className:"border-t border-slate-200 dark:border-white/10 mt-16",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 text-slate-400",children:[e.jsx("div",{className:"w-6 h-6 rounded-lg bg-gradient-to-br from-purple-500 to-blue-500 flex items-center justify-center",children:e.jsx("span",{className:"text-white text-xs font-bold",children:"G2"})}),e.jsx("span",{className:"text-sm",children:"go2.ge - Smart App Links"})]}),e.jsxs("div",{className:"flex items-center gap-6 text-sm text-slate-500 dark:text-slate-400",children:[e.jsx(i,{to:"/",className:"hover:text-slate-900 dark:hover:text-white transition-colors",children:"Home"}),e.jsx(i,{to:"/dashboard",className:"hover:text-slate-900 dark:hover:text-white transition-colors",children:"Dashboard"}),e.jsx("a",{href:"mailto:[email protected]",className:"hover:text-slate-900 dark:hover:text-white transition-colors",children:"Support"})]})]})})})]})}export{X as component};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.