Skip to Content
⚠️Active Development Notice: TimeTiles is under active development. Information may be placeholder content or not up-to-date.
Self-HostingUsage Limits

Usage Limits

Trust levels, quotas, rate limiting, and HTTP caching configuration. All values shown are the defaults — customize them in config/timetiles.yml (see Configuration).

Trust Levels

Each user is assigned a trust level that determines their quotas and rate limits. Admins set trust levels in /dashboard/collections/users.

LevelNameDescription
0UntrustedNew or unverified accounts
1BasicConservative limits
2RegularStandard operational limits
3TrustedEnhanced access, scraper access
4Power UserGenerous allowances
5UnlimitedNo restrictions (admins)

Quotas

QuotaL0L1L2L3L4L5
File uploads/day131050200-
Events per import1001K10K50K200K-
Total events1005K50K500K2M-
Import jobs/day1520100500-
Max file size1 MB10 MB50 MB100 MB500 MB1 GB
Catalogs12520100-
Active schedules01520100-
URL fetches/day0520100500-
Scraper repos000310-
Scraper runs/day0001050-

- = unlimited. Scraper access requires trust level 3+.

Custom Quotas

Override quotas per user in the admin panel at /dashboard/collections/users. Custom quotas take priority over trust level defaults.

Monitoring

  • Admin panel: /dashboard/collections/users (per-user usage)
  • API: GET /api/quotas (current user)
  • Response headers on quota-enforced operations

Rate Limiting

File Upload Rates

Trust LevelBurstHourlyDaily
Untrusted (0)1/min11
Basic (1)1/10s33
Regular (2)1/5s520
Trusted (3)2/5s2050
Power User (4)5/5s100200
Unlimited (5)10/s1000-

API General Rates

Trust LevelBurstHourly
Untrusted (0)1/s10
Basic (1)2/s30
Regular (2)5/s50
Trusted (3)10/s200
Power User (4)20/s1000
Unlimited (5)100/s10000

When rate limited, the response includes:

HTTP 429 Too Many Requests X-RateLimit-Limit: 10 X-RateLimit-Remaining: 0 X-RateLimit-Reset: 2025-10-06T15:30:00.000Z

HTTP Caching

URL fetch caching for scheduled imports (outgoing requests). Respects RFC 7234 Cache-Control headers from external APIs. Configure in config/timetiles.yml:

cache: urlFetch: dir: /tmp/url-fetch-cache maxSizeBytes: 104857600 # 100 MB defaultTtlSeconds: 3600 # 1 hour maxTtlSeconds: 2592000 # 30 days respectCacheControl: true

Troubleshooting: High cache misses — increase TTL or size. Stale data — reduce TTL or clear cache (rm -rf $URL_FETCH_CACHE_DIR/*). Disk space — reduce max size.

Last updated on