Quick Start GuideΒΆ
Get up and running with the ReputeAPI in under 5 minutes.
Step 1: Get Your API KeyΒΆ
- Visit reputeapi.com
- Sign up for a free account
- Navigate to your dashboard
- Copy your API key
Free Tier
The free tier includes 10 requests per minute and 1,000 requests per month - perfect for getting started!
Step 2: Make Your First RequestΒΆ
cURL:
curl -X GET "https://api.reputeapi.com/api/v1/check?domain=google.com" \
-H "X-API-Key: your-api-key-here"
Python:
import requests
API_KEY = "your-api-key-here"
BASE_URL = "https://api.reputeapi.com"
response = requests.get(
f"{BASE_URL}/api/v1/check",
params={"domain": "google.com"},
headers={"X-API-Key": API_KEY}
)
result = response.json()
print(f"Security Score: {result['score']}/100")
print(f"Issues Found: {result['score_breakdown']['total_issues']}")
JavaScript:
const API_KEY = 'your-api-key-here';
const BASE_URL = 'https://api.reputeapi.com';
async function checkDomain(domain) {
const response = await fetch(
`${BASE_URL}/api/v1/check?domain=${domain}`,
{
headers: {
'X-API-Key': API_KEY
}
}
);
const result = await response.json();
console.log(`Security Score: ${result.score}/100`);
console.log(`Issues Found: ${result.score_breakdown.total_issues}`);
return result;
}
checkDomain('google.com');
Node.js:
const axios = require('axios');
const API_KEY = 'your-api-key-here';
const BASE_URL = 'https://api.reputeapi.com';
async function checkDomain(domain) {
try {
const response = await axios.get(`${BASE_URL}/api/v1/check`, {
params: { domain },
headers: { 'X-API-Key': API_KEY }
});
const result = response.data;
console.log(`Security Score: ${result.score}/100`);
console.log(`Issues Found: ${result.score_breakdown.total_issues}`);
return result;
} catch (error) {
console.error('Error:', error.response?.data || error.message);
}
}
checkDomain('google.com');
Step 3: Understand the ResponseΒΆ
The API returns a comprehensive JSON response:
{
"domain": "google.com",
"score": 95,
"score_breakdown": {
"current_score": 95,
"max_score": 100,
"total_deductions": 5,
"potential_score_if_fixed": 100,
"issues_by_severity": {
"critical": 0,
"high": 0,
"medium": 1,
"low": 0
},
"total_issues": 1
},
"spf": {
"present": true,
"record": "v=spf1 include:_spf.google.com ~all",
"syntax_ok": true,
"dns_lookups": 3
},
"dkim": {
"discovered_selectors": ["google", "default"],
"keys": [...]
},
"dmarc": {
"present": true,
"record": "v=DMARC1; p=quarantine; rua=mailto:mailauth-reports@google.com",
"policy": "quarantine"
},
"issues": [
{
"code": "DMARC_POLICY_NOT_REJECT",
"severity": "medium",
"title": "DMARC policy should be 'reject'",
"remediation": "Change p=quarantine to p=reject",
"score_gain_if_fixed": 5,
"dns_snippet": {
"generic": "_dmarc.google.com. IN TXT \"v=DMARC1; p=reject; ...\""
}
}
]
}
Key Response FieldsΒΆ
| Field | Description |
|---|---|
score |
Overall mailflow security score (0-100) |
score_breakdown |
Detailed scoring information |
spf |
SPF record analysis |
dkim |
DKIM keys and configuration |
dmarc |
DMARC policy and settings |
issues |
List of issues with remediation steps |
Step 4: Fix IssuesΒΆ
Each issue includes:
- Severity - Critical, High, Medium, or Low
- Description - What the issue is
- Remediation - How to fix it
- DNS Snippet - Ready-to-use DNS configuration
- Score Gain - How many points you'll gain by fixing it
Example: Fixing a DMARC IssueΒΆ
Issue: DMARC policy set to 'quarantine' instead of 'reject'
Remediation: Update your DNS record:
Step 5: Monitor ProgressΒΆ
Use the history endpoint to track improvements over time:
cURL:
curl -X GET "https://api.reputeapi.com/api/v1/history?domain=google.com&days=30" \
-H "X-API-Key: your-api-key-here"
Python:
response = requests.get(
f"{BASE_URL}/api/v1/history",
params={"domain": "google.com", "days": 30},
headers={"X-API-Key": API_KEY}
)
history = response.json()
for snapshot in history['snapshots']:
print(f"{snapshot['checked_at']}: Score {snapshot['score']}")
What's Next?ΒΆ
Now that you've made your first request:
- Understand Authentication - Learn about API keys and security
- Check Rate Limits - See your tier limits
- View All Endpoints - Explore other endpoints
- Read Integration Guides - Build robust integrations
- Understand Scoring - Learn how scores are calculated
Common Use CasesΒΆ
Use Case 1: Bulk Domain ValidationΒΆ
Validate multiple domains at once:
domains_to_check = ["domain1.com", "domain2.com", "domain3.com"]
for domain in domains_to_check:
response = requests.get(
f"{BASE_URL}/api/v1/check",
params={"domain": domain},
headers={"X-API-Key": API_KEY}
)
result = response.json()
print(f"{domain}: {result['score']}/100")
Use Case 2: CI/CD IntegrationΒΆ
Monitor your email security in your deployment pipeline:
def validate_email_security(domain, min_score=80):
response = requests.get(
f"{BASE_URL}/api/v1/score",
params={"domain": domain},
headers={"X-API-Key": API_KEY}
)
result = response.json()
score = result['score']
if score < min_score:
raise Exception(f"Email security score ({score}) below threshold ({min_score})")
return score
Use Case 3: Dashboard IntegrationΒΆ
Build a real-time monitoring dashboard:
def get_domain_stats(domain):
response = requests.get(
f"{BASE_URL}/api/v1/check",
params={"domain": domain},
headers={"X-API-Key": API_KEY}
)
result = response.json()
return {
'score': result['score'],
'spf_valid': result['spf']['present'] and result['spf']['syntax_ok'],
'dkim_valid': len(result['dkim']['keys']) > 0,
'dmarc_valid': result['dmarc']['present'],
'critical_issues': result['score_breakdown']['issues_by_severity']['critical']
}
TroubleshootingΒΆ
Issue: 401 UnauthorizedΒΆ
Cause: Invalid or missing API key
Solution: Verify your API key and ensure it's included in the X-API-Key header
Issue: 429 Too Many RequestsΒΆ
Cause: Rate limit exceeded
Solution: Check your rate limits or upgrade your plan
Issue: 400 Bad RequestΒΆ
Cause: Invalid domain format
Solution: Ensure domain is properly formatted (e.g., example.com, not http://example.com)
Get HelpΒΆ
- Questions? Check the FAQ
- Need Support? Contact us
- Found a Bug? Report on GitHub