pipedrive-go – a v2-first, idiomatic Go SDK for the Pipedrive API

Hi!

I’ve been building pipedrive-go, an open-source Go SDK for the Pipedrive API, and wanted to share it here.

It’s v2-first; full API v2 coverage, with v1 kept only for endpoints that don’t exist in v2 yet, and those drop out automatically as v2 grows. The public API is hand-written and stable, the generated OpenAPI clients stay internal, so version upgrades don’t break your code with generator churn.

Highlights:

  • Idiomatic, service-based Go: context.Context, functional options, typed IDs, typed errors (errors.Is/As)

  • API token and OAuth2 auth

  • Built-in retries (429/502/503/504) with backoff, jitter, and Retry-After, typed RateLimitError

  • Cursor pagination helpers (ListPager / ForEach)

  • Pluggable http.Client + middleware for logging, tracing (OTel), metrics

  • A Raw escape hatch for anything not yet wrapped

client, _ := v2.NewClient(pipedrive.Config{
    Auth: pipedrive.APITokenAuth("YOUR_API_TOKEN"),
})
deals, _, err := client.Deals.List(ctx, v2.WithDealsPageSize(100))

Install:

go get github.com/juhokoskela/pipedrive-go@latest

MIT-licensed and actively maintained (currently v1.0.7). I’d love feedback, bug reports and feature requests, especially from anyone running Pipedrive integrations in Go in production. Thanks!