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.
| Language | Install | Docs | Repo |
|---|---|---|---|
| JavaScript / TypeScript | npm install @growpanel/sdk | Guide | growpanel-sdk-js |
| Python | pip install growpanel | Guide | growpanel-sdk-python |
| Go | go get github.com/growpanel/growpanel-sdk-go | Guide | growpanel-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 aGrowPanelError.
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, churncustomers.*— list + detail (the analytics view)plans.*— list plans (analytics view)
Account & integrations:
profile.*— current usernotifications.*— report subscriptions + alert thresholdswebhooks.*— event subscriptions (Zapier / n8n / Make)
Ingestion (nested under data.*):
data.customers.*— CRUD raw customer rowsdata.plans.*— CRUD raw plansdata.planGroups.*— group plans togetherdata.segments.*— saved filter combinationsdata.invoices.*— CRUD raw invoicesdata.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-tsgenerates the typed low-level client; a hand-written wrapper adds the namespaced ergonomics. - Python —
openapi-python-clientproduces fully-typed attrs models + sync/async functions per operation. - Go —
oapi-codegenemits 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.
Related
- Interactive API reference — try-it-out + every endpoint
- Authentication — getting your API key
- Rate limiting — request limits
- Error codes — what each HTTP status means