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
| Feature | Trial (14-day) | Starter ($49/mo) | Pro ($149/mo) | Enterprise ($399+) |
|---|---|---|---|---|
| Domains | 25 | 5 | 25 | Unlimited |
| Pages/Domain | 500 | 50 | 500 | Unlimited |
| Research Credits/mo | 50 | 10 | 50 | Unlimited |
| History Retention | 180 days | 30 days | 180 days | Unlimited |
| Intelligence Pages | Top 25 | Top 5 | Top 25 | All |
| Manual Rechecks/mo | 10 | 5 | 10 | Unlimited |
| Alerts | Realtime | Digest | Realtime | Custom |
| Slack Integration | Yes | No | Yes | Yes |
| API Access | Yes | No | Yes | Yes |
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
- Usage is consumed, not refunded: Deleting a domain or page does not restore your quota
- Quotas reset each billing period: Usage counters reset when your subscription renews
- 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
- Go to Settings in your dashboard
- Click Upgrade Plan
- Select your desired plan
- Complete payment
Via Email
Contact our team for custom enterprise plans or bulk discounts:
- Sales: sales@trydiffy.com
- Support: support@trydiffy.com
Include your Organization ID (found in Settings) for faster assistance.