NAV Navbar
Logo
shell ruby python

Introduction

Welcome to the Toofr Sales Hacking API! You can use our API to guess business emails, test emails, and extract prospects from webpages and our database.

We have language examples in Shell, Ruby, and Python. You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

Authentication

Every Toofr user has access to our API. API calls use credits in the same way that our web application use credits. For more information on how credits are used, view our FAQ.

To get an API key, first register for a free Toofr account. Check your email for a confirmation message, click through the link, and log in. Your API key is available on your Account page.

If you run out of credits, you’ll need to sign up for a monthly plan to get more. Currenty they start at just $29/mo.

Your API key is a long alphanumeric string that looks similar to this:

e3eabc123ccabcd3efg233hij06b7031

Emails

Guess Emails

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/guess_email.json')
res = Net::HTTP.post_form(uri, 'key' => 'abc123yourkeyhere', 'first_name' => 'ryan', 'last_name' => 'buckley', 'company_name' => 'toofr.com')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/guess_email.json'
payload = {'key': 'abc123yourkeyhere', 'first_name': 'ryan', 'last_name': 'buckley', 'company_name': 'toofr.com'}
r = requests.post(uri, data = payload)
r.json()
curl --data "key=abc123yourkeyhere&first_name=ryan&last_name=buckley&company_name=toofr.com" https://www.toofr.com/api/v1/guess_email.json

The above command returns JSON structured like this:

{
  "ryan@toofr.com": {
    "confidence":119,"email":"ryan@toofr.com","default":20
  },
  "rbuckley@toofr.com": {
    "confidence":20,"email":"rbuckley@toofr.com","default":15
  },
  "ryan.buckley@toofr.com": {
    "confidence":18,"email":"ryan.buckley@toofr.com","default":16
  },
  "ryanbuckley@toofr.com": {
    "confidence":17,"email":"ryanbuckley@toofr.com","default":17
  },
  "ryan_buckley@toofr.com": {
    "confidence":16,"email":"ryan_buckley@toofr.com","default":18
  },
  "ryan-buckley@toofr.com": {
    "confidence":15,"email":"ryan-buckley@toofr.com","default":19
  },
  "ryanb@toofr.com": {
    "confidence":14,"email":"ryanb@toofr.com","default":14
  },
  "buckley@toofr.com": {
    "confidence":13,"email":"buckley@toofr.com","default":13
  }
}

This endpoint discovers emails based on the first name, last name, and company name.

HTTP Request

POST https://www.toofr.com/api/v1/guess_email.json

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page
first_name This is the text of the first name of your prospect, cleansed of spaces and non-ASCII characters (por favor!)
last_name This is the text of the last name of your prospect, cleansed of spaces and non-ASCII characters (por favor!)
company_name This is the text of either the company name or website

Test Emails

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/test_email.json')
res = Net::HTTP.post_form(uri, 'key' => 'abc123yourkeyhere', 'email' => 'ryan@toofr.com')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/guess_email.json'
payload = {'key': 'abc123yourkeyhere', 'email': 'ryan@toofr.com'}
r = requests.post(uri, data = payload)
r.json()
curl --data "key=abc123yourkeyhere&email=ryan@scripted.com" https://www.toofr.com/api/v1/test_email.json

The above command returns JSON structured like this:

{ "email": "ryan@toofr.com", "confidence": 119 }

This endpoint delivers our confidence score for a given email address.

HTTP Request

POST https://www.toofr.com/api/v1/test_email.json

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page
email The properly formatted email address you want to test

Domains

Get Prospects

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/get_prospects.json')
res = Net::HTTP.post_form(uri, 'key' => 'abc123yourkeyhere', 'company' => 'toofr.com')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/get_prospects.json'
payload = {'key': 'abc123yourkeyhere', 'company': 'toofr.com'}
r = requests.post(uri, data = payload)
r.json()
curl --data "key=abc123yourkeyhere&company=toofr.com" https://www.toofr.com/api/v1/get_prospects.json

The above command returns JSON structured like this:

{ "prospects": {
  "domain":"toofr.com",
  "prospects":    
    [
      {"id":null,"email":"ryan@toofr.com","first_name":"Ryan","last_name":"Buckley","confidence":119},
      {"id":null,"email":"pinak@toofr.com","first_name":"Pinak","last_name":"Thakkar","confidence":79},
      {"id":null,"email":"Ryan@toofr.com","first_name":"Ryan","last_name":"Buckley","confidence":60},
      {"id":null,"email":"ryan.buckley@toofr.com","first_name":"ryan","last_name":"buckley","confidence":46},
      {"id":null,"email":"ryanbuckley@toofr.com","first_name":"ryan","last_name":"buckley","confidence":45},
      {"id":null,"email":"ryan_buckley@toofr.com","first_name":"ryan","last_name":"buckley","confidence":44},
      {"id":null,"email":"ryan-buckley@toofr.com","first_name":"ryan","last_name":"buckley","confidence":43}
    ]
  },
  "top_pattern":
  [ "first name", "miles@toofr.com" ]
}

This endpoint delivers the prospects in our database based on company name or website.

HTTP Request

POST https://www.toofr.com/api/v1/get_prospects.json

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page
company This is the text of either the company name or website.

Errors

The Toofr API uses the following error codes:

Error Code Meaning
401 Unauthorized – There was a problem with your API key.
404 Not Found – The resource you requested could not be found.
406 Not Acceptable – You requested a format that isn’t compatible with our API.
500 Internal Server Error – We had an unexpected problem with your request.