Transparency
How Areca Uses the Linear API
Areca is a personal productivity layer for Linear. It helps individuals schedule and manage their assigned Linear issues on a calendar. This page describes exactly how Areca interacts with the Linear API.
Authentication
Areca uses Linear's official OAuth 2.0 flow. Users explicitly authorize Areca with read and write scopes. Access tokens are refreshed automatically using Linear's token endpoint. Users can revoke access at any time from their Linear settings.
What We Read
We fetch only what's needed to display and manage a user's own work:
- Assigned issues — title, priority, due date, status, labels, and parent/child relationships
- Workflow states — names, colors, and types for the user's teams
- Labels — names, colors, and team associations
We do not access issue descriptions, comments, attachments, other users' issues, or workspace-wide analytics.
What We Write
Users can update their own issues from within Areca:
- Priority
- Status
- Due date
- Labels
- Title
All updates are made as the authenticated user (not as an application actor), so changes appear in Linear as if the user made them directly.
How We Sync
Areca uses background polling — not webhooks — to keep issue data current.
| Data | Sync Interval |
|---|---|
| Active users | ~2 minutes |
| Inactive users | ~30 minutes |
| Labels & workflow states | Every 4–5 hours |
Only the authenticated user's assigned issues are fetched. We use cursor-based pagination and request only the fields we need.
Rate Limiting
We actively track and respect Linear's rate limits:
- We read
X-RateLimitresponse headers after every request - We check remaining quota before making requests
- We use exponential backoff on transient errors
- We honor
Retry-Afterheaders when rate-limited - We deduplicate concurrent syncs to avoid redundant requests
Our per-user request volume is well within Linear's 5,000 requests/hour limit.
Data Storage
We cache issue, label, and workflow state data in our own database to reduce API calls and provide fast load times. This cache is:
- Per-user — each user's data is isolated
- Scoped — limited to the fields listed above
- Refreshed regularly — stale data is replaced on each sync cycle
- Cleaned up — issues no longer assigned to the user are removed during sync
We store Linear OAuth tokens securely in our database. We do not share, sell, or expose any Linear data to third parties.
Terms of Service Compliance
Areca complies with Linear's Terms of Service:
- Not a competing product — Areca is a personal scheduling tool, not a project management platform
- No reverse engineering — we use only the public GraphQL API as documented
- No reselling — Linear data is used solely to serve the authenticated user
- Minimal data access — we request only the scopes and fields we need
- User-controlled — users authorize access via OAuth and can revoke it at any time
Questions
If you have questions about how Areca uses the Linear API, please contact us at [email protected].