Everyoneapi

Everyoneapi allows you to lookup a phone number and get back information such as Name, Address, Carrier, and more.

It's available on GitHub at knewter/everyoneapi.

Configuration

Add configuration into your config/config.exs file:

config :everyoneapi,
  account_sid: "ACCOUNT_SID_HERE",
  auth_token: "AUTH_TOKEN_HERE"

It's based on HTTPoison, so you must first start the API client:

iex> Everyoneapi.start

This must be done once, and it starts the dependencies necessary to use the API client. Then, looking up someone's information is as simple as:

iex(2)> Everyoneapi.info! "2055551212"

%HTTPoison.Response{
  body: %{
    "data" => %{
      "carrier" => %{
        "id" => "7475",
        "name" => "T-Mobile"
      },
      "carrier_o" => %{
        "id" => "6214",
        "name" => "AT&T Mobility"
      },
      "cnam" => "ADAMS,JOSHUA   ",
      "gender" => "M",
      "linetype" => "mobile",
      "location" => %{
        "city" => "Birmingham",
        "geo" => %{
          "latitude" => 33.51685254860801,
          "longitude" => -86.81075983815
        },
        "state" => "AL",
        "zip" => "35203"
      },
      "name" => "Joshua Adams"
    },
    "invalid" => [],
    "missed" => ["image", "address"],
    "number" => "+12052153957",
    "pricing" => %{
      "breakdown" => %{
        "carrier" => -0.006,
        "carrier_o" => 0,
        "cnam" => -0.005,
        "gender" => -0.001,
        "linetype" => -0.001,
        "location" => -0.005,
        "name" => -0.01
      },
      "total" => -0.028
    },
    "status" => true,
    "type" => "person"
  },
  headers: %{
    "Connection" => "keep-alive",
    "Content-Length" => "553",
    "Content-Type" => "application/json",
    "Date" => "Fri, 06 Feb 2015 00:46:22 GMT",
    "Server" => "nginx/1.4.7"
  },
  status_code: 200
}

Summary

delete!(url, headers \\ [], options \\ [])
delete(url, headers \\ [], options \\ [])
get!(url, headers \\ [], options \\ [])
get(url, headers \\ [], options \\ [])
head!(url, headers \\ [], options \\ [])
head(url, headers \\ [], options \\ [])
info!(number)
options!(url, headers \\ [], options \\ [])
options(url, headers \\ [], options \\ [])
patch!(url, body, headers \\ [], options \\ [])
patch(url, body, headers \\ [], options \\ [])
post!(url, body, headers \\ [], options \\ [])
post(url, body, headers \\ [], options \\ [])
process_request_headers(headers)
process_response_body(body)
process_url(url)
put!(url, body, headers \\ [], options \\ [])
put(url, body, headers \\ [], options \\ [])
request!(method, url, body \\ "", headers \\ [], options \\ [])
request(method, url, body \\ "", headers \\ [], options \\ [])

Sends an HTTP request. Args: * method - HTTP method, atom (:get, :head, :post, :put, :delete, etc.) * url - URL, binary string or char list * body - request body, binary string or char list * headers - HTTP headers, orddict (eg. [{:Accept, "application/json"}]) * options - orddict of options Options: * timeout - timeout in ms, integer * stream_to - process id to stream the response

start()

Start httpoison and dependencies

Types

headers :: %{} | [{binary, binary}]

Functions

delete(url, headers \\ [], options \\ [])

Specs:

  • delete(binary, headers, [{atom, any}]) :: {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} | {:error, HTTPoison.Error.t}
delete!(url, headers \\ [], options \\ [])

Specs:

  • delete!(binary, headers, [{atom, any}]) :: HTTPoison.Response.t | HTTPoison.AsyncResponse.t
get(url, headers \\ [], options \\ [])

Specs:

  • get(binary, headers, [{atom, any}]) :: {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} | {:error, HTTPoison.Error.t}
get!(url, headers \\ [], options \\ [])

Specs:

  • get!(binary, headers, [{atom, any}]) :: HTTPoison.Response.t | HTTPoison.AsyncResponse.t
head(url, headers \\ [], options \\ [])

Specs:

  • head(binary, headers, [{atom, any}]) :: {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} | {:error, HTTPoison.Error.t}
head!(url, headers \\ [], options \\ [])

Specs:

  • head!(binary, headers, [{atom, any}]) :: HTTPoison.Response.t | HTTPoison.AsyncResponse.t
info!(number)
options(url, headers \\ [], options \\ [])

Specs:

  • options(binary, headers, [{atom, any}]) :: {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} | {:error, HTTPoison.Error.t}
options!(url, headers \\ [], options \\ [])

Specs:

  • options!(binary, headers, [{atom, any}]) :: HTTPoison.Response.t | HTTPoison.AsyncResponse.t
patch(url, body, headers \\ [], options \\ [])

Specs:

  • patch(binary, binary, headers, [{atom, any}]) :: {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} | {:error, HTTPoison.Error.t}
patch!(url, body, headers \\ [], options \\ [])

Specs:

  • patch!(binary, binary, headers, [{atom, any}]) :: HTTPoison.Response.t | HTTPoison.AsyncResponse.t
post(url, body, headers \\ [], options \\ [])

Specs:

  • post(binary, binary, headers, [{atom, any}]) :: {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} | {:error, HTTPoison.Error.t}
post!(url, body, headers \\ [], options \\ [])

Specs:

  • post!(binary, binary, headers, [{atom, any}]) :: HTTPoison.Response.t | HTTPoison.AsyncResponse.t
process_request_headers(headers)
process_response_body(body)
process_url(url)
put(url, body, headers \\ [], options \\ [])

Specs:

  • put(binary, binary, headers, [{atom, any}]) :: {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} | {:error, HTTPoison.Error.t}
put!(url, body, headers \\ [], options \\ [])

Specs:

  • put!(binary, binary, headers, [{atom, any}]) :: HTTPoison.Response.t | HTTPoison.AsyncResponse.t
request(method, url, body \\ "", headers \\ [], options \\ [])

Specs:

  • request(atom, binary, binary, headers, [{atom, any}]) :: {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} | {:error, HTTPoison.Error.t}

Sends an HTTP request. Args: * method - HTTP method, atom (:get, :head, :post, :put, :delete, etc.) * url - URL, binary string or char list * body - request body, binary string or char list * headers - HTTP headers, orddict (eg. [{:Accept, "application/json"}]) * options - orddict of options Options: * timeout - timeout in ms, integer * stream_to - process id to stream the response

Returns {:ok, Response} or {:ok, AsyncResponse} if successful. {:error, Error} otherwise.

request!(method, url, body \\ "", headers \\ [], options \\ [])

Specs:

  • request!(atom, binary, binary, headers, [{atom, any}]) :: HTTPoison.Response.t
start()

Start httpoison and dependencies.