Skip to main content

Usage and Quotas

The Diffy API provides endpoints to check your current usage and quota limits.

GET /api/usage

Returns your current plan, usage statistics, and remaining quota for the billing period.

Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.trydiffy.com/api/usage

Response

{
"data": {
"plan": "pro",
"billingCycle": "monthly",
"period": {
"start": "2026-02-01T00:00:00Z",
"end": "2026-03-01T00:00:00Z"
},
"limits": {
"domains": {
"used": 5,
"limit": 25,
"remaining": 20
},
"accessiblePagesPerDomain": 500,
"manualRechecks": {
"used": 3,
"limit": 10,
"remaining": 7
},
"researchCredits": {
"used": 12,
"limit": 50,
"remaining": 38
}
},
"features": {
"slackIntegration": true,
"apiAccess": true,
"customAlertRules": true
},
"trial": null
}
}

Trial Users

For trial users, the response includes trial-specific information:

{
"data": {
"plan": "trial",
"billingCycle": "trial",
"period": {
"start": "2026-02-05T17:30:00Z",
"end": "2026-02-19T17:30:00Z"
},
"limits": {
"domains": {
"used": 1,
"limit": 25,
"remaining": 24
},
"accessiblePagesPerDomain": 500,
"manualRechecks": {
"used": 0,
"limit": 10,
"remaining": 10
},
"researchCredits": {
"used": 0,
"limit": 50,
"remaining": 50
}
},
"features": {
"slackIntegration": true,
"apiAccess": true,
"customAlertRules": true
},
"trial": {
"expiresAt": "2026-02-19T17:30:00Z",
"daysRemaining": 7,
"isExpired": false
}
}
}

Plan Tiers

FeatureTrial (14-day)Starter ($49/mo)Pro ($149/mo)Enterprise ($399+)
Domains25525Unlimited
Pages/Domain50050500Unlimited
Research Credits/mo501050Unlimited
History Retention180 days30 days180 daysUnlimited
Intelligence PagesTop 25Top 5Top 25All
Manual Rechecks/mo10510Unlimited
AlertsRealtimeDigestRealtimeCustom
Slack IntegrationYesNoYesYes
API AccessYesNoYesYes

Understanding Quotas

How Usage is Tracked

  • Domains: Incremented when you create a new domain
  • Pages: Incremented when pages are discovered or manually added
  • Manual Rechecks: Incremented each time you trigger POST /api/domains/:id/crawl

Important Notes

  1. Usage is consumed, not refunded: Deleting a domain or page does not restore your quota
  2. Quotas reset each billing period: Usage counters reset when your subscription renews
  3. Trial is 14 days with hour precision: If you sign up at 5:30 PM, your trial expires at 5:30 PM on day 15

Checking Usage Programmatically

JavaScript Example

async function checkUsage(apiKey: string) {
const response = await fetch('https://api.trydiffy.com/api/usage', {
headers: { Authorization: `Bearer ${apiKey}` },
})

const { data } = await response.json()

// Check if approaching limits
if (data.limits.domains.remaining <= 1) {
console.warn('Approaching domain limit!')
}

if (data.limits.pages.remaining <= 10) {
console.warn('Approaching page limit!')
}

// Check trial expiration
if (data.trial && data.trial.daysRemaining <= 3) {
console.warn(`Trial expires in ${data.trial.daysRemaining} days!`)
}

return data
}

Pre-flight Checks

Before creating domains or triggering operations, check your remaining quota:

async function canCreateDomain(apiKey: string): Promise<boolean> {
const { data } = await checkUsage(apiKey)

// Check if trial expired
if (data.trial?.isExpired) {
throw new Error('Trial expired. Please upgrade.')
}

// Check domain limit
if (data.limits.domains.remaining === 0) {
throw new Error(`Domain limit reached (${data.limits.domains.limit})`)
}

return true
}

Upgrading Your Plan

Via Dashboard

  1. Go to Settings in your dashboard
  2. Click Upgrade Plan
  3. Select your desired plan
  4. Complete payment

Via Email

Contact our team for custom enterprise plans or bulk discounts:

Include your Organization ID (found in Settings) for faster assistance.