Skip to main content

Usage & Billing

Understanding Chartly's usage limits, billing structure, and how to monitor your consumption to optimize costs and performance.

Plan Comparison​

FeatureTrialStarterGrowthEnterprise
Monthly Charts100 total100,0001,000,000Custom
API Keys1 trial key5 keys25 keysUnlimited
Chart FormatsPNG, SVGPNG, SVGPNG, SVGPNG, SVG, PDF
Max Dimensions2000×20002000×20004000×40008000×8000
Cache Duration30 days90 days1 yearCustom
Analytics—BasicAdvancedCustom
SupportCommunityEmailPriorityDedicated
SLA——99.9%99.99%
PriceFree£30/mo£150/moContact

Usage Limits​

Chart Generation Limits​

Charts are counted based on successful API calls to rendering endpoints.

Counted:

  • POST /v1/chart (generates new chart)
  • GET /v1/chart (generates new chart)
  • POST /v1/chart/create (creates permanent URL)

Not counted:

  • GET /v1/chart/{id} (serves cached chart)
  • GET /v1/metrics/{id} (analytics only)

Rate Limits​

PlanRequests/MinuteRequests/HourBurst Limit
Trial1010020
Starter601,000120
Pro30010,000600
EnterpriseCustomCustomCustom

Dimension Limits​

PlanMax WidthMax HeightMax Pixels
Trial2,000px2,000px4M pixels
Starter2,000px2,000px4M pixels
Pro4,000px4,000px16M pixels
Enterprise8,000px8,000px64M pixels

Billing Details​

Trial Account​

  • Duration: 30 days from first API key generation
  • Limits: 100 total chart generations
  • Features: Full API access, all chart types
  • Restrictions: No account management, limited analytics
  • Upgrade: Seamless transition to paid plans

Starter Plan - £30/month​

  • Charts: 100,000 per month
  • Overage: £3 per 1,000 additional charts
  • API Keys: Up to 5 keys
  • Support: Email support (48h response)
  • Analytics: Basic usage dashboard

Growth Plan - £150/month​

  • Charts: 1,000,000 per month
  • Overage: £1 per 1,000 additional charts
  • API Keys: Up to 25 keys
  • Support: Priority email + chat (24h response)
  • Analytics: Advanced metrics and insights
  • SLA: 99.9% uptime guarantee

Enterprise Plan - Custom Pricing​

  • Charts: Custom volume pricing
  • Features: Everything in Pro plus:
    • Custom chart dimensions
    • PDF output format
    • Dedicated support manager
    • Custom SLA (up to 99.99%)
    • Volume discounts
    • Custom integrations

Billing Cycle​

  • Monthly: Billed on the same day each month
  • Annual: 2 months free (16.7% discount)
  • Usage: Charts reset on billing date
  • Overage: Billed in next cycle
  • Proration: Upgrades are prorated

Monitoring Usage​

Real-Time Dashboard​

Access your usage dashboard at chartly.dev/dashboard:

# Get current usage via API
curl "https://api.chartly.dev/usage/analytics" \
-H "Authorization: Bearer your_session_token"

Response:

{
"currentUsage": {
"period": "month",
"count": 1547,
"limit": 10000,
"remaining": 8453,
"resetTime": "2024-02-01T00:00:00.000Z"
},
"quickStats": {
"totalRequests": 1547,
"successRate": 98.7,
"averageRenderTime": 245,
"cacheHitRate": 78.2
}
}

Usage Alerts​

Set up automatic alerts when approaching limits:

Email Notifications​

  • 80% of monthly limit reached
  • 95% of monthly limit reached
  • Overage occurred

Webhook Notifications​

Configure a webhook endpoint in your account settings to receive usage notifications. Chartly will send POST requests to your configured endpoint with payloads like:

// Payload sent to your webhook endpoint
{
"event": "usage_threshold",
"threshold": 80,
"current_usage": 8000,
"limit": 10000,
"account_id": "acc_abc123"
}

API Key Usage Tracking​

Monitor usage per API key for better cost allocation through the Chartly Dashboard.

Dashboard provides:

  • Usage metrics per API key
  • Last used timestamps
  • Creation dates and labels
  • Monthly usage breakdown

Cost Optimization​

Efficient Chart Usage​

1. Use Caching Effectively​

// Good: Create permanent URLs for repeated use
const chartUrl = await chartly.createChart(config, { width: 600, height: 400 });
// This URL can be reused without additional API calls

// Avoid: Regenerating identical charts
const chart1 = await chartly.generateChart(config); // Counts as 1 usage
const chart2 = await chartly.generateChart(config); // Counts as 1 usage (unnecessary)

2. Optimize Dimensions​

// Good: Reasonable dimensions for use case
const dashboardChart = { width: 400, height: 300 }; // 120K pixels

// Avoid: Unnecessarily large charts
const oversizedChart = { width: 2000, height: 2000 }; // 4M pixels

3. Batch Operations​

// Good: Batch multiple charts at once
const charts = await Promise.all([
chartly.createChart(salesData, opts),
chartly.createChart(trafficData, opts),
chartly.createChart(revenueData, opts)
]);

// Avoid: Sequential individual requests
// (Same total usage, but better performance)

Signed URLs for Public Access​

Use signed URLs to share charts without consuming additional API calls:

// Generate once, share multiple times
const signedUrl = chartly.createSignedUrl(chartConfig, {
expirationMinutes: 1440, // 24 hours
width: 600,
height: 400
});

// Share this URL in emails, Slack, etc.
// No additional API calls when users view the chart

Development vs Production​

Use separate API keys and accounts:

// Development environment
const devChartly = new ChartlyClient({
apiKey: process.env.CHARTLY_DEV_API_KEY
});

// Production environment
const prodChartly = new ChartlyClient({
apiKey: process.env.CHARTLY_PROD_API_KEY
});

Payment & Invoicing​

Payment Methods​

  • Credit/Debit Cards: Visa, MasterCard, American Express
  • PayPal: Available for all plans
  • ACH/Bank Transfer: Enterprise plans only
  • Wire Transfer: Enterprise plans only

Invoicing​

  • Automatic: Charges occur on billing date
  • Receipts: Emailed immediately after payment
  • Invoices: Available in dashboard with download
  • VAT/Tax: Applied based on billing address
  • Purchase Orders: Enterprise plans only

Failed Payments​

If payment fails:

  1. Day 1: Email notification + retry attempt
  2. Day 3: Second retry + email warning
  3. Day 7: Final retry + account suspension warning
  4. Day 10: Account suspended (read-only access)
  5. Day 30: Account terminated + data deletion

During suspension:

Still available:

  • Existing charts remain accessible
  • Dashboard and analytics

Disabled:

  • New chart generation
  • API key creation

Plan Management​

Upgrading Plans​

Upgrades take effect immediately with prorated billing.

Upgrade via Dashboard: Visit the Chartly Dashboard to:

  • Compare plan features and pricing
  • Upgrade or downgrade your subscription
  • View billing history and invoices
  • Update payment methods

Downgrading Plans​

Downgrades take effect at the next billing cycle:

  • Immediate: New limits apply to API usage
  • Billing: Reduced rate starts next cycle
  • Credits: Unused credits carry forward

Cancellation​

Cancel anytime with no penalties:

  1. Immediate Effect: No new charges
  2. Access: Full access until end of billing period
  3. Data: Account remains read-only for 30 days
  4. Reactivation: Full restoration within 30 days

Enterprise Features​

Volume Discounts​

Monthly ChartsDiscount
500K - 1M10%
1M - 5M20%
5M - 10M30%
10M+Custom

Custom SLAs​

  • Standard: 99.9% uptime
  • Premium: 99.95% uptime
  • Mission Critical: 99.99% uptime

Dedicated Infrastructure​

  • Private Endpoints: Custom domain (charts.yourcompany.com)
  • Regional Deployment: Choose your data center
  • Isolated Processing: Dedicated rendering capacity
  • Custom Caching: Extended retention periods

Priority Support​

  • Dedicated Manager: Named support contact
  • 24/7 Response: Critical issues < 1 hour
  • Phone Support: Direct line to technical team
  • Custom Integration: Help with complex setups

Compliance & Security​

Data Retention​

PlanChart CacheAnalyticsBilling
Trial30 days30 daysN/A
Starter90 days1 year7 years
Pro1 year3 years7 years
EnterpriseCustomCustom7 years

Data Management​

  • Smart Caching: Configurable retention periods
  • Data Export: Download your data anytime
  • Data Deletion: Complete data removal on request
  • Transparent Policies: Clear usage and privacy policies

Security Certifications​

  • SOC 2 Type II: Annual compliance audit
  • ISO 27001: Information security management
  • Edge Security: Cloudflare's enterprise-grade protection
  • PCI DSS: Payment card security standards

Billing API​

Get Current Plan​

curl "https://api.chartly.dev/billing/info" \
-H "Authorization: Bearer your_session_token"

Response:

{
"plan": "pro",
"billing_cycle": "monthly",
"usage_limit": 100000,
"current_usage": 15847,
"billing_period_start": "2024-01-01T00:00:00.000Z",
"billing_period_end": "2024-02-01T00:00:00.000Z",
"next_billing_date": "2024-02-01T00:00:00.000Z",
"amount_due": 149.00
}

Usage History​

curl "https://api.chartly.dev/usage/analytics?days=90" \
-H "Authorization: Bearer your_session_token"

Invoices​

curl "https://api.chartly.dev/billing/invoices" \
-H "Authorization: Bearer your_session_token"

Response:

{
"invoices": [
{
"id": "inv_abc123",
"date": "2024-01-01T00:00:00.000Z",
"amount": 149.00,
"status": "paid",
"download_url": "https://api.chartly.dev/billing/invoices/inv_abc123/pdf"
}
]
}

FAQ​

Billing Questions​

Q: Do unused charts roll over to the next month? A: No, chart limits reset each billing cycle. However, overage credits can carry forward.

Q: What happens if I hit my limit mid-month? A: Your account will continue working with overage charges applied. You'll be billed for excess usage in the next cycle.

Q: Can I change my billing cycle? A: Yes, you can switch between monthly and annual billing. Changes take effect at the next billing date.

Q: Do you offer refunds? A: We offer prorated refunds for downgrades and cancellations within the first 30 days.

Usage Questions​

Q: How do I reduce my chart usage? A: Use permanent chart URLs and signed URLs for sharing instead of regenerating identical charts.

Q: Do cached chart views count against my limit? A: No, only chart generation APIs count. Serving cached charts via /v1/chart/{id} is unlimited.

Q: Can I track usage by team or project? A: Yes, use separate API keys for different teams/projects and monitor usage per key.


Need Help?