Point11

SDK libraries (Node, Python, Go)

Install and configure the official Point11 SDK for Node.js, Python, and Go to integrate with the Point11 API.

Point11 provides official SDK libraries for Node.js, Python, and Go. The SDKs wrap the REST API with idiomatic language constructs, handle authentication, implement automatic retries with exponential backoff, and provide TypeScript/type definitions for a first-class developer experience.

Node.js SDK

Installation

bashnpm install @point11/sdk

Configuration

typescript

const client = new Point11Client({ apiKey: process.env.POINT11_API_KEY, environment: "production", // or "sandbox" timeout: 30000, // request timeout in milliseconds retries: 3, // automatic retry count for transient failures }); `

Usage Examples

typescript// Create an audit
const audit = await client.audits.create({
  type: "google_ads_account",
  target: {
    accountId: "123-456-7890",
    dateRange: { start: "2026-01-01", end: "2026-01-31" },
  },
  modules: ["conversion_tracking", "bid_strategy"],

// Poll until complete const completed = await client.audits.waitForCompletion(audit.id, { pollInterval: 5000, // check every 5 seconds timeout: 600000, // give up after 10 minutes });

// Query analytics const performance = await client.analytics.getPerformance({ accountId: "123-456-7890", startDate: "2026-01-01", endDate: "2026-01-31", });

// Set up a webhook const webhook = await client.webhooks.create({ url: "https://your-app.example.com/webhooks/point11", events: ["audit.completed", "alert.triggered"], secret: "whsec_your_secret", }); `

The Node.js SDK is fully typed with TypeScript definitions. All response objects include type information for autocomplete and compile-time validation. The SDK targets Node.js 18+ and uses the native fetch API.

Python SDK

Installation

bashpip install point11

Configuration

python

client = Point11Client( api_key=os.environ["POINT11_API_KEY"], environment="production", # or "sandbox" timeout=30.0, # request timeout in seconds max_retries=3, ) `

Usage Examples

python# Create an audit
audit = client.audits.create(
    type="google_ads_account",
    target={
        "account_id": "123-456-7890",
        "date_range": {"start": "2026-01-01", "end": "2026-01-31"},
    },
    modules=["conversion_tracking", "bid_strategy"],

# Wait for completion completed = client.audits.wait_for_completion( audit.id, poll_interval=5.0, timeout=600.0, )

# Access findings for finding in completed.findings: if finding.severity == "critical": print(f"Critical: {finding.title}") print(f"Remediation: {finding.remediation}")

# Query time-series analytics timeseries = client.analytics.get_timeseries( account_id="123-456-7890", start_date="2026-01-01", end_date="2026-01-31", interval="day", metrics=["spend", "conversions", "roas"], ) `

The Python SDK supports Python 3.9+ and includes an async client (AsyncPoint11Client) for use with asyncio. All models use Pydantic for runtime validation and IDE autocompletion.

Go SDK

Installation

bashgo get github.com/point11/point11-go

Configuration

go

import ( "context" "os"

"github.com/point11/point11-go" )

func main() { client := point11.NewClient( point11.WithAPIKey(os.Getenv("POINT11_API_KEY")), point11.WithEnvironment(point11.Production), point11.WithTimeout(30 * time.Second), point11.WithMaxRetries(3), )

ctx := context.Background()

// Create an audit audit, err := client.Audits.Create(ctx, &point11.AuditCreateParams{ Type: point11.AuditTypeGoogleAdsAccount, Target: point11.AuditTarget{ AccountID: "123-456-7890", DateRange: point11.DateRange{ Start: "2026-01-01", End: "2026-01-31", }, }, Modules: []string{"conversion_tracking", "bid_strategy"}, }) if err != nil { log.Fatal(err) }

// Query analytics perf, err := client.Analytics.GetPerformance(ctx, &point11.PerformanceParams{ AccountID: "123-456-7890", StartDate: "2026-01-01", EndDate: "2026-01-31", }) if err != nil { log.Fatal(err) } } `

The Go SDK requires Go 1.21+ and follows Go conventions with functional options for configuration, context-based cancellation, and structured error types.

Error Handling

All SDKs provide typed error classes for common API errors:

  • AuthenticationError: Invalid or expired API key/token (HTTP 401).
  • PermissionError: Insufficient scopes for the requested operation (HTTP 403).
  • NotFoundError: The requested resource does not exist (HTTP 404).
  • RateLimitError: Rate limit exceeded (HTTP 429). Includes a retryAfter property indicating when to retry.
  • ValidationError: Invalid request parameters (HTTP 400/422). Includes a details property with field-level error messages.
  • ServerError: Point11 platform error (HTTP 5xx). Automatically retried by the SDK.

Webhook Signature Verification

Each SDK includes a utility for verifying webhook signatures:

typescript// Node.js

const isValid = verifyWebhookSignature(rawBody, signature, timestamp, secret); `

python# Python

is_valid = verify_signature(raw_body, signature, timestamp, secret) `

go// Go
valid := point11.VerifyWebhookSignature(rawBody, signature, timestamp, secret)

Sources

Need help implementing this?

Our team can walk you through the setup.