Quick Start GuideΒΆ

Get up and running with the ReputeAPI in under 5 minutes.


Step 1: Get Your API KeyΒΆ

  1. Visit reputeapi.com
  2. Sign up for a free account
  3. Navigate to your dashboard
  4. 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:

_dmarc.yourdomain.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com"

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:


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)

View all common errors β†’


Get HelpΒΆ


You're Ready!

Congratulations! You've successfully made your first API request. Continue exploring our guides and examples to build powerful email security integrations.