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 $19/mo.

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

e3eabc123ccabcd3efg233hij06b7031

Credits

View Your Credit Balance and Subscription Plan

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/credits/balance')
res = Net::HTTP.get(uri, 'key' => 'abc123yourkeyhere')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/credits/balance'
payload = {'key': 'abc123yourkeyhere'}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/credits/balance?key=abc123yourkeyhere

The above command returns JSON structured like this:

{
  "credits": 2047,
  "plan_name": 'Expert',
  "overage_rate": 0.1,
}

This endpoint delivers the number of credits in your account, the plan you’re on (response is null if no plan is present) and the overage rate that Toofr will charge for negative balances.

HTTP Request

GET https://www.toofr.com/api/v1/credits/balance

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page

Purchase Credits

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/credits/purchase')
res = Net::HTTP.get(uri, 'key' => 'abc123yourkeyhere', 'credits' => 2000)
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/credits/purchase'
payload = {'key': 'abc123yourkeyhere', 'credits': 2000}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/credits/balance?key=abc123yourkeyhere&credits=2000

The above command returns JSON structured like this:

{
  "credits": 2047,
  "plan_name": 'Expert',
  "overage_rate": 0.1,
  "charge_status": "failed",
  "charge_message": "Successful API purchase of 2000 credits at $0.01/ea"
}

This endpoint delivers the number of credits in your account, the plan you’re on (response is null if no plan is present) and the overage rate that Toofr will charge for negative balances.

HTTP Request

GET https://www.toofr.com/api/v1/credits/purchase

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page
credits The number of credits you want to purchase. It must be greater than 1000.

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

Companies

Get Prospects and Patterns

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/prospect')
res = Net::HTTP.get(uri, 'key' => 'abc123yourkeyhere', 'company_name' => 'toofr.com', 'page' => 2)
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/prospect'
payload = {'key': 'abc123yourkeyhere', 'company_name': 'toofr.com', 'page': 2}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/prospect?key=abc123yourkeyhere&company_name=toofr.com

The above command returns JSON structured like this:

{ "prospects":    
  [
    { 
      "email":"ryan@toofr.com", 
      "first_name":"Ryan",
      "last_name":"Buckley",
      "confidence":119,
      "profile": {
        "fn"=>"Ryan Buckley", "photo"=>"https://media.licdn.com/mpr/mpr/shrinknp_200_200/AAEAAQAAAAAAAAniAAAAJGU1MjAxMWI1LTU1ZDItNDQ3OS1iYWVlLWNhNTNhNmIzZWU1Yw.jpg", 
        "title"=>"Founder of Toofr.com, eNPS.co, and Thinboxapp.com", 
        "linkedin_profile"=>"https://www.linkedin.com/in/rbuckley"
      }
    },
    { 
      "email":"kurdt@toofr.com", 
      "first_name":"Kurt",
      "last_name":"Cobain",
      "confidence":89,
      "profile": {
        "fn"=>"Kurdt Cobain", "photo"=>"https://media.licdn.com/mpr/mpr/shrinknp_200_200/AAEAAQAAAAAAAAniAAAAJGU1MjAxMWI1LTU1ZDItNDQ3OS1iYWVlLWNhNTNhNmIzZWU1Yw.jpg", 
        "title"=>"Singer / songwriter", 
        "linkedin_profile"=>"https://www.linkedin.com/in/rbuckley"
      }
    },
    { 
      "email":"dave@toofr.com", 
      "first_name":"Dave",
      "last_name":"Grohl",
      "confidence":104,
      "profile": {
        "fn"=>"David Grohl", "photo"=>"https://media.licdn.com/mpr/mpr/shrinknp_200_200/AAEAAQAAAAAAAAniAAAAJGU1MjAxMWI1LTU1ZDItNDQ3OS1iYWVlLWNhNTNhNmIzZWU1Yw.jpg", 
        "title"=>"Drummer extraordinaire and future stadium rocker", 
        "linkedin_profile"=>"https://www.linkedin.com/in/rbuckley"
      }
    },
    { 
      "email":"krist@toofr.com", 
      "first_name":"Krist",
      "last_name":"Novoselic",
      "confidence":93,
      "profile": {
        "fn"=>"Krist Novoselic", "photo"=>"https://media.licdn.com/mpr/mpr/shrinknp_200_200/AAEAAQAAAAAAAAniAAAAJGU1MjAxMWI1LTU1ZDItNDQ3OS1iYWVlLWNhNTNhNmIzZWU1Yw.jpg", 
        "title"=>"The quiet bassist", 
        "linkedin_profile"=>"https://www.linkedin.com/in/rbuckley"
      }
    }
  ],
  "top_pattern": [ "first name", "miles@toofr.com" ],
  "next_page": 3
  "total_pages": 5
}

This endpoint delivers the prospects in our database based on company name or website. The response includes top_pattern which is the most common email pattern for the company and next_page to tell you if there are more results.

HTTP Request

GET https://www.toofr.com/api/v1/prospect

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page
company_name This is the text of either the company name or website.
page Optional integer to get another page of results (10 returned per page, 1 credit per page response).

Get Profiles

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/profile')
res = Net::HTTP.get(uri, 'key' => 'abc123yourkeyhere', 'first_name' => 'ryan', 'last_name' => 'buckley', 'email' => 'ryan@toofr.com')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/profile'
payload = {'key': 'abc123yourkeyhere', 'first_name': 'ryan', 'last_name': 'buckley', 'email': 'ryan@toofr.com'}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/profile?key=abc123yourkeyhere&first_name=ryan&last_name=buckley&email=ryan@toofr.com

The above command returns JSON structured like this:

{
  "profile": {
    "fn":"Ryan Buckley",
    "photo":"https://media.licdn.com/mpr/mpr/shrinknp_200_200/p/3/000/063/38c/276e158.jpg",
    "title":"CEO of Toofr",
    "linkedin_profile":"https://www.linkedin.com/in/rbuckley"
  }
}

This endpoint returns the profile data we have on a given prospect and attempts to fetch it in real-time if it’s not in our database.

HTTP Request

GET https://www.toofr.com/api/v1/profile

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page
first_name The first name of the prospect
last_name The last name of the prospect
email The known email address of the prospect

Get Company Industry and Agency Data

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/classify')
res = Net::HTTP.get(uri, 'key' => 'abc123yourkeyhere', 'company_name' => 'toofr.com')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/classify'
payload = {'key': 'abc123yourkeyhere', 'company_name': 'toofr.com'}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/classify?key=abc123yourkeyhere&company_name=toofr.com

The above command returns JSON structured like this:

{
  "industry":"marketing_and_advertising",
  "agency_category":"advertising",
  "is_agency":"no"
}

This endpoint uses our natural language processing engine to determine the industry and agency category and status of any website.

HTTP Request

GET https://www.toofr.com/api/v1/classify

Query Parameters

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

Query Responses

Parameter Description
industry The general industry our artificial intelligence believes the website to be in.
is_agency A boolean (true / false) response on whether we believe the company is an agency.
agency_category If we believe the company is an agency, this is the more specific agency category it falls under.

Convert Company Name to Domain

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/get_domain')
res = Net::HTTP.get(uri, 'key' => 'abc123yourkeyhere', 'company_name' => 'toofr')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/get_domain'
payload = {'key': 'abc123yourkeyhere', 'company_name': 'toofr'}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/get_domain?key=abc123yourkeyhere&company_name=toofr

The above command returns JSON structured like this:

{
  "domain":"toofr.com"
}

This endpoint uses our natural language processing engine to determine the industry and agency category and status of any website.

HTTP Request

GET https://www.toofr.com/api/v1/get_domain

Query Parameters

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

Query Responses

Parameter Description
domain The best matching domain we could find for the company_name you entered.

Audiences

Build Email Lists and Audiences

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/audiences')
res = Net::HTTP.get(uri, 'key' => 'abc123yourkeyhere', 'websites' => 'toofr.com', 'titles' => 'ceo', 'page' => 1)
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/audiences'
payload = {'key': 'abc123yourkeyhere', 'websites': 'toofr.com', 'titles': 'ceo', 'page': 1}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/audiences?key=abc123yourkeyhere&websites=toofr.com&titles=ceo&page=1

The above command returns JSON structured like this:

{
  "total":10,
  "prospects": [
  {
    "first_name":"biz",
    "last_name":"stone",
    "title":"Head of social media",
    "profile": {
      "fn":"Biz Stone",
      "photo":"https://media.licdn.com/media/p/2/005/018/3d3/11bf5c3.jpg",
      "title":"Internet Guy",
      "linkedin_profile":"https://www.linkedin.com/in/bizstone/"
    },
    "email": {
      "email":"biz@scripted.com",
      "confidence":140,
      "state":"high"
    },
    "domain": {
      "domain":"scripted.com"
    }
  },
  {
    "first_name":"kurdt",
    "last_name":"cobain",
    "title":"Nevermind",
    "profile": {},
    "email": {
      "email":"kurdt@scripted.com",
      "confidence":1994,
      "state":"high"
    },
    "domain": {
      "domain":"scripted.com"
    }
  },
  etc...
  ],
  "next_page":3,
  "total_pages":3,
  "status":"Succeeded."
  }

This endpoint delivers the prospects in our database based on websites or industries and titles. The response includes total which is the number of results delivered to the page and the credits consumed for the query as well as the pagination keys next_page and total_pages. A status message will alert you of any 202 status responses which require background processing.

The results are sorted by title, so complete profiles are first, and then by confidence score. When your request doesn’t yield any titles in the database, the API returns a 202 status and triggers a background process to search the internet. Run your request again in a minute to get the results.

HTTP Request

GET https://www.toofr.com/api/v1/audiences

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page
websites This is the website. It should be either a bare domain (like google.com) or a properly formed URL (like https://www.google.com). Include multiple websites by separating them with a comma.
industries This is the industry category. It must match one or of the industry categories below. It must be an exact match. If you include both industries and websites, industries will be ignored.
titles This is the title category. It must match one or of the title categories below. It must be an exact match.
page Optional integer to get another page of results (10 returned per page, so max of 10 credits consumed per page response).

Title Categories

Use one of these title categories: ceo, founder, cmo, cto, cfo, finance, marketing, engineering, product, sales, operations, account_management, information_technology, data_science, human_resources, c_level, directors, presidents_and_vps, managers

Industry Categories

Use one of these industry categories: construction, marketing_and_advertising, professional_training_coaching, consumer_services, leisure_travel_tourism, industrial_automation, computer_hardware, management_consulting, mining_metals, financial_services, medical_devices, information_technology_and_services, real_estate, consumer_electronics, computer_software, internet, hospitality, retail, accounting, research, hospital_health_care, oil_energy, music, computer_games, building_materials, law_practice, sporting_goods, nonprofit_organization_management, civic_social_organization, online_media, apparel_fashion, entertainment, individual_family_services, machinery, health_wellness_and_fitness, investment_banking, publishing, newspapers, architecture_planning, photography, shipbuilding, commercial_real_estate, cosmetics, import_and_export, medical_practice, fund_raising, media_production, insurance, printing, automotive, events_services, arts_and_crafts, renewables_environment, airlines_aviation, international_trade_and_development, telecommunications, philanthropy, design, human_resources, facilities_services, logistics_and_supply_chain, wholesale, farming, sports, transportation_trucking_railroad, staffing_and_recruiting, performing_arts, wine_and_spirits, environmental_services, packaging_and_containers, education_management, government_relations, chemicals, graphic_design, mental_health_care, plastics, computer_networking, mechanical_or_industrial_engineering, consumer_goods, military, food_beverages, computer_network_security, recreational_facilities_and_services, alternative_medicine, banking, information_services, government_administration, motion_pictures_and_film, outsourcing_offshoring, venture_capital_private_equity, legal_services, broadcast_media, biotechnology, pharmaceuticals, market_research, security_and_investigations, program_development, food_production, museums_and_institutions, luxury_goods_jewelry, fine_art, electrical_electronic_manufacturing, e_learning, higher_education, investment_management, religious_institutions, wireless, business_supplies_and_equipment, think_tanks, furniture, civil_engineering, capital_markets, executive_office, public_relations_and_communications, utilities, gambling_casinos, veterinary, translation_and_localization, maritime, textiles, writing_and_editing, primary_secondary_education, political_organization, international_affairs, public_policy, semiconductors, railroad_manufacture, aviation_aerospace, package_freight_delivery, animation, defense_space, restaurants, paper_forest_products, supermarkets, public_safety, glass_ceramics_concrete, ranching, tobacco, law_enforcement, warehousing, judiciary, alternative_dispute_resolution, dairy, fishery, libraries, nanotechnology, legislative_office

Lists

Get All Lists

require 'net/http'
require 'json'

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

uri = 'https://www.toofr.com/api/v1/lists'
payload = {'key': 'abc123yourkeyhere'}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/lists?key=abc123yourkeyhere

The above command returns a JSON array structured like this:

[
  { 
    "id":137,
    "name":"My first file upload",
    "description":"Prospects generated from web scrape.", 
    "created_at":"2017-05-20T20:55:44.635Z", 
    "state":"finished",
    "records_count_in":5,
    "records_count_processed":5
  },
  {
    "id":134,
    "name":"Web results",
    "description":"Good emails found by my VA.", 
    "created_at":"2017-05-16T19:56:10.155Z",
    "state":"finished",
    "records_count_in":null,
    "records_count_processed":null
  }
]

This endpoint delivers the array of lists seen in your account at https://www.toofr.com/lists/owned.

HTTP Request

GET https://www.toofr.com/api/v1/lists

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page

Get A Specific List

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/lists/:id')
res = Net::HTTP.get(uri, 'key' => 'abc123yourkeyhere')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/lists/:id'
payload = {'key': 'abc123yourkeyhere'}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/lists/:id?key=abc123yourkeyhere

The above command returns JSON structured like this:

{
  "id":137,
  "name":"My first file upload",
  "description":"Prospects generated from web scrape.", 
  "created_at":"2017-05-20T20:55:44.635Z", 
  "state":"finished",
  "records_count_in":5,
  "records_count_processed":5
}

This endpoint delivers the JSON hash of a specific list.

HTTP Request

GET https://www.toofr.com/api/v1/lists/:id

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page

Create A List

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/lists')
res = Net::HTTP.post_form(uri, 'key' => 'abc123yourkeyhere', 'name' => 'API list', 'description' => 'Created via API')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/lists'
payload = {'key': 'abc123yourkeyhere', 'name': 'API list', 'description': 'Created via API'}
r = requests.post(uri, data = payload)
r.json()
curl --data "key=abc123yourkeyhere&name='API list'&description='Created via API'" https://www.toofr.com/api/v1/lists

The above command returns JSON structured like this:

{
  "id":137,
  "name":"My first file upload",
  "description":"Prospects generated from web scrape.", 
  "created_at":"2017-05-20T20:55:44.635Z", 
  "state":"finished",
  "records_count_in":5,
  "records_count_processed":5
}

This endpoint delivers the array of lists seen in your account at https://www.toofr.com/lists/owned.

HTTP Request

POST https://www.toofr.com/api/v1/lists

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page
name A short string to name your list
description A longer string to describe your list
file_type For bulk processing, select the type of file it would be if you were to import it rather than use the API. See acceptable values below or leave blank if no processing is required.
File Type Description
guess You provide the names and companies of prospects and Toofr appends the best email and confidence score
guess_all Like guess, but Toofr gives all emails and confidence scores, not just the best one
test You provide emails and Toofr appends a confidence score
get You provide companies (names or websites) and Toofr returns all the related emails with confidence scores in our database
pattern You provide companies (names or websites) and Toofr returns the best related email pattern

List Records

Get All List Records On A List

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/lists/:list_id/list_records')
res = Net::HTTP.get(uri, 'key' => 'abc123yourkeyhere', 'page' => 1)
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/lists/:list_id/list_records'
payload = {'key': 'abc123yourkeyhere', 'page': 1}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/lists/:list_id/list_records?key=abc123yourkeyhere&page=1

The above command returns a JSON array structured like this:

[
  {
    "id":16347, 
    "first_name":"ryan", 
    "last_name":"buckerooski",
    "company":"toofr.com",
    "email_address":"ryan@toofr.com",
    "meta":{
      "top":"true"
    },
    "created_at":"2017-05-24T03:33:37.234Z",
    "processed_at":"2017-05-24T03:33:53.325Z"
  },
  {
    "id":16346,
    "first_name":"james",
    "last_name":"bond",
    "company":"toofr.com",
    "email_address":"bondjamesbond@toofr.com",
    "meta":{
      "top":"true"
    },
    "created_at":"2017-05-24T03:32:29.271Z",
    "processed_at":"2017-05-24T03:32:34.876Z"
  },
]

This endpoint delivers the array of list records you would see if you exported your list from https://www.toofr.com/lists/:id.

HTTP Request

GET https://www.toofr.com/api/v1/lists/:list_id/list_records

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page
page Results are paginated 100 at a time so you can iterate through the pages numerically to extract list records

Get A Specific List Record

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/lists/:list_id/list_records/:id')
res = Net::HTTP.get(uri, 'key' => 'abc123yourkeyhere')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/lists/:list_id/list_records/:id'
payload = {'key': 'abc123yourkeyhere'}
r = requests.get(uri, data = payload)
r.json()
curl https://www.toofr.com/api/v1/lists/:list_id/list_records/:id?key=abc123yourkeyhere

The above command returns JSON structured like this:

{
  "id":16347, 
  "first_name":"ryan", 
  "last_name":"buckerooski",
  "company":"toofr.com",
  "email_address":"ryan@toofr.com",
  "meta":{
    "top":"true"
  },
  "created_at":"2017-05-24T03:33:37.234Z",
  "processed_at":"2017-05-24T03:33:53.325Z"
}

This endpoint delivers the JSON hash of a specific list_record.

HTTP Request

GET https://www.toofr.com/api/v1/lists/:id

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page

Create A List Record

require 'net/http'
require 'json'

uri = URI('https://www.toofr.com/api/v1/lists/:list_id/list_records')
res = Net::HTTP.post_form(uri, 'key' => 'abc123yourkeyhere', 'first_name' => 'Ryan', 'last_name' => 'Buckley', 'company' => 'toofr.com')
JSON.parse(res.body)
import requests

uri = 'https://www.toofr.com/api/v1/lists/:list_id/list_records'
payload = {'key': 'abc123yourkeyhere', 'first_name': 'Ryan', 'last_name': 'Buckley', 'company': 'toofr.com'}
r = requests.post(uri, data = payload)
r.json()
curl --data "key=abc123yourkeyhere&first_name=Ryan&last_name=Buckley&company=toofr.com" https://www.toofr.com/api/v1/lists/:list_id/list_records

The above command returns JSON structured like this:

{
  "id":16348,
  "first_name":"ryan",
  "last_name":"buckerooski",
  "company":"toofr.com",
  "email_address":null,
  "meta":{}
}

This endpoint creates and initiates a background process on the created list record. The type of process run will be based on the file_type of its associated list (the :list_id it’s created on).

HTTP Request

POST https://www.toofr.com/api/v1/lists/:list_id/list_records

Query Parameters

Parameter Description
key Your key is required for any request and is found on your Toofr account page

HTTP Error Codes

The Toofr API returns the following HTTP status codes for faulty queries:

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.

HTTP Success Codes

The Toofr API returns the following HTTP status codes for successful queries:

Error Code Meaning
200 Successful – The request was completely successful.
202 Wait and Try Again – The request was successful but requires background processing. Try the request with the same parameters again in a minute.