Official SDKs


GrowPanel ships official SDKs in three languages. They're auto-generated from the same OpenAPI spec that powers the interactive API reference, so they're always in lock-step with the API surface and stay typed end-to-end.

LanguageInstallDocsRepo
JavaScript / TypeScriptnpm install @growpanel/sdkGuidegrowpanel-sdk-js
Pythonpip install growpanelGuidegrowpanel-sdk-python
Gogo get github.com/growpanel/growpanel-sdk-goGuidegrowpanel-sdk-go

Why use an SDK?

You can talk to the REST API with any HTTP client (the API reference has working cURL examples for every endpoint). The SDKs add three things on top:

  • Typed parameters and responses. Your editor autocompletes gp.reports.getMrr({ query: { ... } }) and refuses to build if you misspell a field name.
  • One namespace per area. Methods are grouped so you can explore the surface — gp.reports.*, gp.customers.*, gp.data.* for ingestion, gp.webhooks.* for event subscriptions.
  • Pagination, errors, and retries handled. No fiddling with Authorization: Bearer ... headers or parsing { error: '...' } envelopes — every method returns the typed payload or throws a GrowPanelError.

Surface map (same across all SDKs)

The three SDKs expose the same shape, just in idiomatic naming for each language. Once you've used one, the others are familiar.

Analytics (read-only):

  • reports.* — MRR, leads, cohorts, cashflow, retention, churn
  • customers.* — list + detail (the analytics view)
  • plans.* — list plans (analytics view)

Account & integrations:

  • profile.* — current user
  • notifications.* — report subscriptions + alert thresholds
  • webhooks.* — event subscriptions (Zapier / n8n / Make)

Ingestion (nested under data.*):

  • data.customers.* — CRUD raw customer rows
  • data.plans.* — CRUD raw plans
  • data.planGroups.* — group plans together
  • data.segments.* — saved filter combinations
  • data.invoices.* — CRUD raw invoices
  • data.sources.* — connected billing systems + import controls

The data.* namespace mirrors the /data/* URL prefix — it's the "import API" for pushing your own data in, separate from the read-only analytics surfaces.


How they're built

All three SDKs are auto-generated from https://api.growpanel.io/openapi.json:

  • JS/TS@hey-api/openapi-ts generates the typed low-level client; a hand-written wrapper adds the namespaced ergonomics.
  • Pythonopenapi-python-client produces fully-typed attrs models + sync/async functions per operation.
  • Gooapi-codegen emits a struct-based client with one method per operation.

When the API surface changes, a GitHub Action regenerates and publishes all three SDKs along with the CLI and MCP server — usually within minutes of a deploy.