Personal APIs: Difference between revisions
Add Navbox Journalism |
Added Same Data Many Interfaces section, multi-modal access pattern |
||
| Line 71: | Line 71: | ||
} | } | ||
} | } | ||
== Same Data, Many Interfaces == | |||
The personal API enables [[Same Data Many Interfaces|multi-modal access]] - same underlying data, different interfaces for different contexts. | |||
=== The Pattern === | |||
<pre> | |||
[Data Layer] (APIs aggregate from multiple sources) | |||
↓ | |||
[API Layer] (consistent JSON, unified caching) | |||
↓ | |||
[Interface Layer] (multiple, context-specific) | |||
├─ AI assistants (Claude, Coach Artie get full context) | |||
├─ Website widgets (live stats display) | |||
├─ Mobile apps (health dashboard) | |||
└─ CLI tools (terminal queries) | |||
</pre> | |||
Data stays useless until something accesses it. The API makes personal data queryable by any interface. | |||
=== Context-Driven Access === | |||
{| class="wikitable" | |||
|- | |||
! Context !! Interface !! Example | |||
|- | |||
| AI conversation || Claude/Coach Artie || "How much did I code today?" → API provides actual data | |||
|- | |||
| Morning review || Website dashboard || Visual stats, charts, trends | |||
|- | |||
| Quick check || Alfred/CLI || One-line query, instant answer | |||
|- | |||
| Deep analysis || Python/SQL || Full data export, custom analysis | |||
|} | |||
=== Why This Matters === | |||
'''For AI context:''' Language models with access to actual behavioral data give more relevant, personalized responses. "You haven't committed in 3 days" beats generic advice. | |||
'''For [[Quantified Self|self-understanding]]:''' Same data viewed through different lenses reveals different patterns. The dashboard shows trends; the CLI answers specific questions. | |||
'''For [[Building Tools for Yourself|dogfooding]]:''' You are the user. The interface that's fastest for you is the one that matters. | |||
== Related == | |||
* [[Quantified Self]] - Philosophy of tracking | |||
* [[Scrapbook-core]] - Another multi-interface system | |||
* [[Coach Artie]] - AI that consumes these APIs | |||
* [[Same Data Many Interfaces]] - The design pattern | |||
[[Category:Technical]] | |||
[[Category:Personal Data]] | |||
[[Category:API Development]] | |||
{{Navbox Technical}} | {{Navbox Technical}} | ||
{{Navbox Journalism}} | |||
{{Navbox Journalism}} | {{Navbox Journalism}} | ||
Revision as of 14:44, 18 January 2026
Personal APIs
Data aggregation system for self-quantification and AI context enhancement
Architecture Overview
Built on Nuxt / Nitro with basic caching layer. All endpoints return JSON and support CORS for cross-origin requests from mobile apps and AI assistants.
Base URL: `https://ejfox.com/api/`
Core Philosophy
- AI Context Enhancement - Provide rich personal data to language models
- Self-Quantification - Track KPIs aligned with personal improvement goals
- Data Sovereignty - Own your data instead of just feeding the surveillance machine
- API-First Design - Choose services that offer data egress and avoid data silos
Active Endpoints
Health & Fitness
- /api/health - Apple Health aggregated metrics
- /api/health-raw - Raw health data for deeper analysis
Tracks: daily steps, exercise minutes, stand hours, distance, heart rate variability
Productivity & Learning
- mastodon-posts.ejfox.tools most recent posts from @[email protected]
- /api/rescuetime - RescueTime productivity analytics
- /api/leetcode - LeetCode problem-solving progress
- /api/monkeytype - MonkeyType typing speed metrics
- /api/chess - Chess.com rating and puzzle stats
Development
- /api/github - GitHub contribution patterns and repo activity
- /api/stats - Aggregated development metrics
Creative & Content
- /api/photos - Personal photo platform statistics
- /api/lastfm - Last.fm music listening history (10+ years)
- /api/words-this-month - Writing output tracking
Predictions & Analysis
- /api/predictions - Personal forecasting and goal tracking
Technical Implementation
Data Sources
- Apple Health - via HealthKit exports and processing
- GitHub API - commit patterns, repo activity, contribution graphs
- RescueTime API - time tracking and productivity metrics
- Chess.com API - game history and ratings
- Last.fm API - scrobbling data going back 10+ years
- LeetCode scraping - problem completion and difficulty tracking
- MonkeyType - typing test results and WPM progression
Caching Strategy
Most endpoints implement intelligent caching:
- Health data - Updates every 4 hours
- GitHub activity - Updates every hour
- Music listening - Updates every 30 minutes
- Static metrics - Cached for 24 hours
Response Format
All endpoints return JSON with consistent structure: ```json {
"data": { /* endpoint-specific data */ },
"meta": {
"cached_at": "2025-05-28T10:30:00Z",
"source": "api_name",
"updated": "recent" | "stale"
}
}
Same Data, Many Interfaces
The personal API enables multi-modal access - same underlying data, different interfaces for different contexts.
The Pattern
[Data Layer] (APIs aggregate from multiple sources)
↓
[API Layer] (consistent JSON, unified caching)
↓
[Interface Layer] (multiple, context-specific)
├─ AI assistants (Claude, Coach Artie get full context)
├─ Website widgets (live stats display)
├─ Mobile apps (health dashboard)
└─ CLI tools (terminal queries)
Data stays useless until something accesses it. The API makes personal data queryable by any interface.
Context-Driven Access
| Context | Interface | Example |
|---|---|---|
| AI conversation | Claude/Coach Artie | "How much did I code today?" → API provides actual data |
| Morning review | Website dashboard | Visual stats, charts, trends |
| Quick check | Alfred/CLI | One-line query, instant answer |
| Deep analysis | Python/SQL | Full data export, custom analysis |
Why This Matters
For AI context: Language models with access to actual behavioral data give more relevant, personalized responses. "You haven't committed in 3 days" beats generic advice.
For self-understanding: Same data viewed through different lenses reveals different patterns. The dashboard shows trends; the CLI answers specific questions.
For dogfooding: You are the user. The interface that's fastest for you is the one that matters.
Related
- Quantified Self - Philosophy of tracking
- Scrapbook-core - Another multi-interface system
- Coach Artie - AI that consumes these APIs
- Same Data Many Interfaces - The design pattern
| ⚡ Technical | |
|---|---|
| Core | Technical · CLI · Dotfiles · Nvim · SSH · VPS |
| Tools | Sketchybar · ArchiveBox · ThinkPad Linux |
| Systems | Automation · Personal APIs · Quantified Self |
| Reference | Runbooks · New Computer Runbook · Syntax guide |
| Journalism & Investigations | |
|---|---|
| Core | Journalism · Investigations · Source Handling |
| Methods | FOIA · Data Journalism · Dataviz · Documentation Discipline |
| Tools | ArchiveBox · Scrapbook-core · Personal APIs |
| Culture | Hacker Culture · PGP Communication Guide |
| Journalism & Investigations | |
|---|---|
| Core | Journalism · Investigations · Source Handling |
| Methods | FOIA · Data Journalism · Dataviz · Documentation Discipline |
| Tools | ArchiveBox · Scrapbook-core · Personal APIs |
| Culture | Hacker Culture · PGP Communication Guide |