API Documentation
Universal data enrichment API. Enrich transactions, companies, domains, social profiles, and people.
Getting Started
Quick Start
Get started with the Easy Enrichment API in just a few minutes. Here's a simple example to enrich a transaction:
curl -X POST https://api.easyenrichment.com/enrich \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"description": "AMZN MKTP US*2K4X9Y1Z0"}'All API requests should be made to: https://api.easyenrichment.com
Security
Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
Authorization: Bearer enrich_xxxxxxxxxxxxGetting Your API Key
to get your API key.
Never expose your API key in client-side code or public repositories.
Billing
Pricing & Billing
Simple per-request pricing. Pay only for what you use.
Volume Discounts
Buy more credits, get bonus credits. $25+ gets 10% bonus, $50+ gets 20%, and $100+ gets 30% extra credits.
The response includes a billing object showing the cost charged and your remaining balance.
Billing Response Example
{
"success": true,
"data": { ... },
"billing": {
"cost_cents": 1,
"balance_cents": 19
}
}New accounts start with 20 free API calls. No credit card required. See pricing to add more.
Endpoint
Enrich Transaction
Enrich a single transaction description to get merchant details, category, and more.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| description | string | Yes | The raw transaction description |
Example Request
const response = await fetch('https://api.easyenrichment.com/enrich', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
description: 'UBER *TRIP HELP.UBER.COM'
})
});
const data = await response.json();
console.log(data);Endpoint
Company Enrichment
Get comprehensive company information by name or domain. Perfect for B2B lead enrichment and market research.
Request Body
| Parameter | Type | Description |
|---|---|---|
| name | string | Company name (required if no domain) |
| domain | string | Company domain (required if no name) |
| country | string | Country code for better accuracy (optional) |
// Request
{ "name": "Stripe" }
// Response
{
"name": "Stripe",
"legal_name": "Stripe, Inc.",
"domain": "stripe.com",
"description": "Financial infrastructure for the internet",
"industry": "Financial Technology",
"company_size": "5001-10000",
"company_type": "private",
"headquarters": {
"city": "San Francisco",
"country": "US"
},
"social_profiles": {
"linkedin": "linkedin.com/company/stripe",
"twitter": "twitter.com/stripe"
},
"founded_year": 2010,
"confidence": 0.95
}Endpoint
Domain Enrichment
Extract company information from any website domain. Get descriptions, technologies, contact info, and more.
// Request
{ "domain": "notion.so" }
// Response
{
"domain": "notion.so",
"company_name": "Notion",
"title": "Your connected workspace",
"description": "All-in-one workspace for notes, docs, and collaboration",
"category": "saas",
"industry": "Productivity Software",
"technologies": ["React", "Node.js", "PostgreSQL"],
"social_profiles": {
"twitter": "twitter.com/NotionHQ",
"linkedin": "linkedin.com/company/notionhq"
},
"contact": {
"email": "team@makenotion.com"
},
"logo_url": "https://logo.clearbit.com/notion.so",
"confidence": 0.92
}Endpoint
Person Enrichment
Find professional information about any person using publicly available data. Get LinkedIn profiles, job titles, and company info.
Request Body
| Parameter | Type | Description |
|---|---|---|
| name | string | Person's full name (required) |
| company | string | Current company (improves accuracy) |
| domain | string | Company domain (alternative to company) |
// Request
{ "name": "Brian Chesky", "company": "Airbnb" }
// Response
{
"name": "Brian Chesky",
"first_name": "Brian",
"last_name": "Chesky",
"title": "CEO & Co-Founder",
"company": "Airbnb",
"company_domain": "airbnb.com",
"linkedin_url": "linkedin.com/in/brianchesky",
"twitter_url": "twitter.com/bchesky",
"location": {
"city": "San Francisco",
"country": "US"
},
"bio": "Co-founder and CEO of Airbnb",
"confidence": 0.91
}This endpoint only returns publicly available information. No private data is accessed or stored.
Endpoint
Batch Enrichment
Enrich multiple transactions in a single API call (up to 100 transactions per request).
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| transactions | array | Yes | Array of transaction descriptions (max 100) |
Example Request
const response = await fetch('https://api.easyenrichment.com/enrich/batch', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
transactions: [
'NETFLIX.COM',
'SPOTIFY SUBSCRIPTION',
'AMZN MKTP US*2K4X9Y1Z0'
]
})
});
const data = await response.json();Reference
Response Format
Every successful response includes detailed merchant information with the following fields:
| Field | Type | Description |
|---|---|---|
| merchant_name | string | Clean, readable merchant name |
| category | string | Primary spending category |
| categories | string[] | Array of applicable categories |
| subcategory | string | More specific category classification |
| business_type | string | Type of business (e.g., "E-commerce Platform") |
| mcc_code | string | Standard Merchant Category Code |
| is_chain | boolean | Whether merchant is part of a chain |
| is_subscription | boolean | Whether this is a recurring payment |
| is_online_only | boolean | Whether merchant operates online only |
| domain | string | Merchant website domain |
| logo_url | string | URL to merchant logo (via Logo.dev) |
| brand_id | string | Unique brand identifier |
| country | string | Country code (ISO 3166-1 alpha-2) |
| contact_phone | string | Customer support phone number |
| contact_email | string | Customer support email |
| support_url | string | URL to support page |
| co2_category | string | Carbon footprint category (low/medium/high) |
| confidence | number | Confidence score (0-1) |
| description | string | Human-readable transaction description |
Example Response
{
"success": true,
"data": {
"original_description": "UBER *TRIP HELP.UBER.COM",
"merchant_name": "Uber",
"category": "Transportation",
"categories": ["Rideshare", "Transportation", "Travel"],
"subcategory": "Rideshare Services",
"business_type": "Transportation Network",
"mcc_code": "4121",
"is_chain": true,
"is_subscription": false,
"is_online_only": false,
"domain": "uber.com",
"logo_url": "https://img.logo.dev/uber.com?token=pk_xxx&size=128",
"brand_id": "uber_global",
"country": "US",
"contact_phone": "+1-800-593-7069",
"contact_email": "support@uber.com",
"support_url": "https://help.uber.com",
"co2_category": "medium",
"confidence": 0.97,
"description": "Uber rideshare trip"
}
}Reference
Error Handling
The API uses conventional HTTP response codes to indicate success or failure.
| Code | Description |
|---|---|
| 200 | Success - Request completed |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing API key |
| 402 | Payment Required - Insufficient balance |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error - Something went wrong |
Error Response Format
{
"success": false,
"error": "Insufficient balance. Please add funds to continue."
}Integration
Code Examples
Ready-to-use code examples in popular programming languages.
Python
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.easyenrichment.com"
def enrich_transaction(description):
response = requests.post(
f"{BASE_URL}/enrich",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={"description": description}
)
return response.json()
# Example usage
result = enrich_transaction("STARBUCKS STORE 12345")
print(result["data"]["merchant_name"]) # "Starbucks"Node.js
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://api.easyenrichment.com';
async function enrichTransaction(description) {
const response = await fetch(`${BASE_URL}/enrich`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ description })
});
return response.json();
}
// Example usage
const result = await enrichTransaction('STARBUCKS STORE 12345');
console.log(result.data.merchant_name); // "Starbucks"cURL
curl -X POST https://api.easyenrichment.com/enrich \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"description": "STARBUCKS STORE 12345"}'Limits
Rate Limits
To ensure fair usage, the API has the following rate limits:
Need higher limits? Contact us for enterprise plans.
Endpoint
Social Profile Enrichment
Find all social media profiles for any company or person. Returns LinkedIn, Twitter, Facebook, Instagram, YouTube, and more.
Request Body