// the find
simpleforce/simpleforce
Simple Golang client for Salesforce
simpleforce is a small Go client for Salesforce's REST and Tooling APIs. It covers SOQL queries, record create, read, update, and delete, upsert on external IDs, file download, anonymous Apex, and calls to custom Apex REST endpoints. It suits a Go service that syncs data with a Salesforce org and doesn't want a heavier SDK.
The Tooling API runs through the same client (client.Tooling().Query), so Apex and metadata queries don't need a second library. Upsert on an external ID is a first-class call, which is the operation most sync jobs actually need. The API surface is small enough to read in an afternoon, with about a dozen Go files and no sprawling abstraction layers.
The last push was May 2024, so this is a snapshot rather than an active project. The examples pin API v43.0, which is years old, and nothing in the README says whether DefaultAPIVersion is still current. The 'unit tests' run against a live org and need a custom Case field, so they are integration tests in practice, and CI can't run them without a sandbox. Login is shown only as username, password, and security token, with no OAuth or JWT bearer flow, and the README doesn't explain how Query handles paging past the first batch of records.