Skip to content
Elixir library for the API
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Learn about the Closeio API at

I ❤️, so if you have problems using the gem or would like to see support for new endpoints, please open a GitHub issue -- I'll get it resolved as quick as I can.

Fwiw, I also run -- a service for building automated email sequences using


ExCloseio is currently beta software. You can install it from Hex:

def deps do
  [ {:ex_closeio, "~> 0.0.6"} ]


For security, I recommend that you use environment variables for storing your account credentials. If you don't already have an environment variable manager, you can create a .env file in your project with the following content:

export CLOSEIO_API_KEY={{ your api key }}

Then, just be sure to run source .env in your shell before compiling your project.

Alternatively, you can set the following configuration variables in your config/config.exs file:

config :ex_closeio, closeio_api_key: System.get_env("CLOSEIO_API_KEY"),

Or you can pass the API key in with each request:

ExCloseio.Lead.find("lead_id_1234", "api_key_5678")


ExCloseio comes with module for each supported API resource. For example, the "Lead" resource is accessible through the ExCloseio.Lead module. Depending on what the underlying API supports, a resource module may have the following methods:

Method Description
all Get the first page of the resource.
paginate Load all of the resource items on all pages. Use with care!
find Find a resource given its id.
create Create a resource.
update Update a resource.
destroy Destroy a resource.

Supported Endpoints

ExCloseio currently supports the following Closeio endpoints:


# Get all the leads in the Lead endpoint. Be warned, this will block
# until all the pages of leads have been fetched.
leads = ExCloseio.Lead.paginate(
  %{query: "custom.current_system:paypal"},

# Get the first page. The meta variable is a map of paging information
# from
{:ok, leads} = ExCloseio.Lead.all

# Find a lead
{:ok, lead} = ExCloseio.Lead.find("lead_id_1234")

# Update a lead
lead = ExCloseio.Lead.update(lead, status: "cancelled")

# Destroy a lead


ExCloseio is licensed under the MIT license. For more details, see the LICENSE file at the root of the repository. It depends on Elixir, which is under the Apache 2 license.

CloseioTM is trademark of Elastic, Inc.

You can’t perform that action at this time.