{"repo":"brunovenceslau/ynab.go","free":true,"listed":false,"github":"https://github.com/brunovenceslau/ynab.go","clone":"git clone https://github.com/brunovenceslau/ynab.go.git","description":"Complete, dependency-free Go client for the YNAB API — 44 operations, exact integer money, first-class delta sync, contract-tested. Unofficial.","language":"Go","stars":79,"topics":["ynab","ynab-api","golang","go","api-client","budgeting","finance"],"license":"BSD-2-Clause","category":"api-integrations-sdks","readme_excerpt":"YNAB for Go A complete Go client for the YNAB API v1: all 44 operations behind a domain-first surface, exact money arithmetic, first-class delta sync, and zero runtime dependencies . Not an OAuth flow, not a persistence layer, not a budgeting engine — a wire-faithful client. YNAB's API says budget ; this library says plan , following YNAB's own product vocabulary. client.Plan(id) maps to /budgets/{budget id} on the wire — the mapping is one-to-one. Install Requires Go 1.25+ (the minimum in go.mod). The public API follows SemVer: the v1 surface is frozen, and every change is recorded in the CHANGELOG. Create a Personal Access Token at app.ynab.com → Settings → Developer Settings and export it as YNAB TOKEN . Quick start A complete program — no IDs to look up, PlanIDLastUsed resolves server-side: [!TIP] Two flavors of examples: the examples/ directory holds runnable programs that hit the real API (quickstart, delta-sync, splits, mock testing), and the package examples on pkg.go.dev cover every service offline — 26 runnable, httptest -backed. The plan handle Everything plan-scoped hangs off the handle client.Plan(id) returns — built without I/O, bound to its id for good: Money is Milliunits (exact int64 thousandths — never floats), months are a dedicated Month type that accepts the server-resolved ynab.CurrentMonth() , and write payloads use the Optional tri-state: omitted, SetNull (clear), or Set — zero values included, so Approved: ynab.Set(false) reaches the wire. Delta sync ","default_branch":null,"files":null,"tree":[],"storefront":"/r/brunovenceslau","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/brunovenceslau/ynab.go/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}