force is a Go client library for accessing the Salesforce API ☁️
Switch branches/tags
Nothing to show
Clone or download


force is a Go client library for accessing the Salesforce API.

GoDoc TravisCI Build Status CircleCI Build Status Coverage Status

WARNING: Both the documentation and the package itself is under heavy development and in a very early stage. That means, this repo is full of untested code and the API can break without any further notice. Therefore, it comes with absolutely no warranty at all. Feel free to browse or even contribute to it :)


import ""

Construct a new Force client, then use the various services on the client to access different parts of the Salesforce API. For example, to retrieve query performance feedback:

  c, _ := force.NewClient(client, "")
  explain, err := c.QueryExplain("SELECT Id, Name, OwnerId FROM Account LIMIT 10")

To execute some anonymous Apex code, you can use the ExecuteAnonymous function, part of the Tooling service:

c.Tooling.ExecuteAnonymous("System.debug('Hello world!');")


The force library does not directly handle authentication. Instead, when creating a new client, pass an http.Client that can handle authentication for you. The easiest and recommended way to do this is using the oauth2 library, but you can always use any other library that provides an http.Client.


This library is being initially developed for one of my internal project, so API methods will likely be implemented in the order that they are needed by my project. Eventually, I would like to cover the entire Salesforce API, so contributions are of course always welcome. The calling pattern is pretty well established, so adding new methods is relatively straightforward.


This library is distributed under the MIT license found in the LICENSE file.