The Companies API SDK for Ruby
A fully-featured Ruby SDK for The Companies API, providing type-safe access to company data, locations, industries, technologies, job titles, lists, and more.
If you need more details about a specific endpoint, you can find the corresponding documentation in the API reference.
You can also contact us on our livechat if you have any questions.
đ Features
- Expose all our 30+ endpoints and gives access to 50M+ companies from your codebase
- Type-safe API client with full access to our OpenAPI schemas
- Real-time company enrichment with both synchronous and asynchronous options
- Powerful search capabilities with filters, sorting and pagination
- Create and manage your company lists
- Track and monitor enrichment actions and requests
- Generate detailed analytics and insights for searches and lists
- Natural language querying for structured company information
- Lightweight with minimal dependencies
đĻ Installation
Add this line to your application's Gemfile:
gem 'thecompaniesapi'
And then execute:
bundle install
Or install it yourself as:
gem install thecompaniesapi
đ Initialize the client
Get your API token from your settings page and initialize our client with TheCompaniesAPI::Client.new
.
The API token is required to authenticate your requests and should be kept secure. Never commit your API token to version control or share it publicly.
require 'thecompaniesapi'
tca = TheCompaniesAPI::Client.new(api_token: 'your-api-token')
đŦ Companies
Search companies
đ Documentation
đšī¸ Use case: How to build a company search engine with our API
đ To learn more about our query system, please read our documentation.
# Search companies by industry and size
response = tca.search_companies(
query: [
{ attribute: 'about.industries', operator: 'or', sign: 'equals', values: ['computer-software'] },
{ attribute: 'about.totalEmployees', operator: 'or', sign: 'equals', values: ['10-50'] }
],
size: 25
)
companies = response['companies'] # Companies that match the query
meta = response['meta'] # Meta information
Search companies by name
đ Documentation
đšī¸ Use case: Add a company search with autocomplete to your application
response = tca.search_companies_by_name(
name: 'The Companies API',
size: 2
)
companies = response['companies'] # Companies that match the name
meta = response['meta'] # Meta information
Search companies using a prompt
đ Documentation
# Search 25 companies for a specific prompt
response = tca.search_companies_by_prompt(
prompt: 'SaaS Companies in the United States with more than 100 employees',
size: 25
)
companies = response['companies'] # Companies that match the prompt
meta = response['meta'] # Meta information
Search similar companies
đ Documentation
# Search 25 companies that are similar to Crisp and Intercom
response = tca.search_similar_companies(
domains: ['crisp.chat', 'intercom.com'],
size: 25
)
companies = response['companies'] # Companies that are similar to the domains
meta = response['meta'] # Meta information
Count companies matching your query
đ Documentation
# Count how many companies are in the computer-software industry
response = tca.count_companies(
query: [
{
attribute: 'about.industries',
operator: 'or',
sign: 'equals',
values: ['computer-software']
}
]
)
count = response # Number of companies that match the query
Enrich a company from a domain name
đ Documentation
# Fetch company data from our database without enrichment (faster response)
response = tca.fetch_company(domain: 'microsoft.com')
company = response # The company profile
# Fetch company data and re-analyze it in real-time to get fresh, up-to-date information (slower but more accurate)
response = tca.fetch_company(
domain: 'microsoft.com',
refresh: true
)
company = response # The company profile
Enrich a company from an email
đ Documentation
đšī¸ Use case: Enrich your users at signup with the latest information about their company
# Fetch the company profile behind a professional email address
response = tca.fetch_company_by_email(email: 'jack@openai.com')
company = response # The company profile
Enrich a company from a social network URL
đ Documentation
# Fetch the company profile behind a social network URL
response = tca.fetch_company_by_social(linkedin: 'https://www.linkedin.com/company/apple')
company = response # The company profile
Find a company email patterns
đ Documentation
# Fetch the company email patterns for a specific domain
response = tca.fetch_company_email_patterns(domain: 'apple.com')
patterns = response # The company email patterns
Ask a question about a company
đ Documentation
# Ask what products a company offers using its domain
response = tca.ask_company(
domain: 'microsoft.com',
question: 'What products does this company offer?',
model: 'large', # 'small' is also available
fields: [
{
key: 'products',
type: 'array|string',
description: 'The products that the company offers'
}
]
)
answer = response['answer'] # Structured AI response
meta = response['meta'] # Meta information
Fetch the context of a company
đ Documentation
# Get AI-generated strategic insights about a company
response = tca.fetch_company_context(domain: 'microsoft.com')
context = response['context'] # Includes market, model, differentiators, etc.
meta = response['meta'] # Meta information
Fetch analytics data for a query or your lists
đ Documentation
# Analyze company distribution by business type
response = tca.fetch_companies_analytics(
attribute: 'about.businessType',
query: [
{
attribute: 'locations.headquarters.country.code',
operator: 'or',
sign: 'equals',
values: ['us', 'gb', 'fr']
}
]
)
analytics = response['data'] # Aggregated values
meta = response['meta'] # Meta information
Export analytics data in multiple formats for a search
đ Documentation
# Export analytics to CSV
response = tca.export_companies_analytics(
format: 'csv',
attributes: ['about.industries', 'about.totalEmployees'],
query: [
{
attribute: 'technologies.active',
operator: 'or',
sign: 'equals',
values: ['shopify']
}
]
)
analytics = response['data'] # Aggregated values
meta = response['meta'] # Meta information
đ¯ Actions
Request an action on one or more companies
đ Documentation
# Request an enrichment job on multiple companies
response = tca.request_action(
domains: ['microsoft.com', 'apple.com'],
job: 'enrich-companies',
estimate: false
)
actions = response['actions'] # Track this via fetch_actions
meta = response['meta'] # Meta information
Fetch the actions for your actions
đ Documentation
# Fetch recent actions
response = tca.fetch_actions(
status: 'completed',
page: 1,
size: 5
)
actions = response['actions'] # Actions that match the query
meta = response['meta'] # Meta information
đ Industries
Search industries
đ Documentation
# Search industries by keyword
response = tca.search_industries(
search: 'software',
size: 10
)
industries = response['industries'] # Industries that match the keyword
meta = response['meta'] # Meta information
Find similar industries
đ Documentation
# Find industries similar to given ones
response = tca.search_industries_similar(industries: ['saas', 'fintech'])
similar = response['industries'] # Industries that are similar to the given ones
meta = response['meta'] # Meta information
âī¸ Technologies
Search technologies
đ Documentation
# Search technologies by keyword
response = tca.search_technologies(
search: 'shopify',
size: 10
)
technologies = response['technologies'] # Technologies that match the keyword
meta = response['meta'] # Meta information
đ Locations
Search cities
đ Documentation
# Search cities by name
response = tca.search_cities(
search: 'new york',
size: 5
)
cities = response['cities'] # Cities that match the name
meta = response['meta'] # Meta information
Search counties
đ Documentation
# Search counties by name
response = tca.search_counties(
search: 'orange',
size: 5
)
counties = response['counties'] # Counties that match the name
meta = response['meta'] # Meta information
Search states
đ Documentation
# Search states by name
response = tca.search_states(
search: 'california',
size: 5
)
states = response['states'] # States that match the name
meta = response['meta'] # Meta information
Search countries
đ Documentation
# Search countries by name
response = tca.search_countries(
search: 'france',
size: 5
)
countries = response['countries'] # Countries that match the name
meta = response['meta'] # Meta information
Search continents
đ Documentation
# Search continents by name
response = tca.search_continents(
search: 'asia',
size: 5
)
continents = response['continents'] # Continents that match the name
meta = response['meta'] # Meta information
đŧ Job titles
Enrich a job title from its name
đ Documentation
# Enrich "chief marketing officer"
response = tca.enrich_job_titles(name: 'chief marketing officer')
job_title = response # Contains department, seniority, etc.
đ Lists
Fetch your lists
đ Documentation
# Fetch your lists
response = tca.fetch_lists
lists = response['lists'] # Lists that match the query
meta = response['meta'] # Meta information
Create a list of companies
đ Documentation
# Create a list of companies
response = tca.create_list(
name: 'My SaaS List',
type: 'companies'
)
new_list = response # The new list
Fetch companies in your list
đ Documentation
# Fetch companies in a list
response = tca.fetch_companies_in_list(list_id: 1234)
companies = response['companies'] # Companies that match the list
meta = response['meta'] # Meta information
Add or remove companies in your list
đ Documentation
# Add companies to a list
response = tca.toggle_companies_in_list(
list_id: 1234,
companies: ['apple.com', 'stripe.com']
)
list = response # The updated list
đĨ Teams
Fetch your team
đ Documentation
# Fetch your team details
response = tca.fetch_team
team = response # Your team details
đ§ Utilities
Fetch the health of the API
đ Documentation
# Check API health status
response = tca.fetch_api_health
health = response # The health of the API
Fetch the OpenAPI schema
đ Documentation
# Fetch OpenAPI schema
response = tca.fetch_open_api
schema = response # The OpenAPI schema
License
MIT License Š TheCompaniesAPI