API Documentation
Access our curated mobile engineering library programmatically.
Mobile Vitals provides free, public APIs to access our curated collection of mobile app performance articles from leading tech companies. All endpoints auto-update hourly from our data source.
Available Endpoints
1. JSON API
GET /public/api/articles.php
Returns all articles with comprehensive metadata in JSON format. Perfect for web applications, dashboards, and data analysis.
Example Request:
curl /public/api/articles.php
Response Format:
{
"metadata": {
"total_count": 1234,
"last_updated": "2025-10-29T12:00:00Z",
"version": "1.0",
"source": "Mobile Vitals",
"cache_ttl": 3600,
"companies_count": 45,
"tags_count": 78,
"platforms_count": 3
},
"articles": [
{
"title": "Optimizing iOS App Startup Time",
"company": "Uber",
"description": "How we reduced startup time by 40%...",
"url": "https://eng.uber.com/...",
"date": "2024-03-15",
"tags": ["Performance", "iOS", "Startup"],
"platform": ["iOS"],
"thumbnail": "https://..."
}
// ... more articles
],
"filter_options": {
"companies": ["Uber", "Netflix", "Spotify", ...],
"tags": ["Performance", "Battery", "Memory", ...],
"platforms": ["iOS", "Android", "Cross-platform"]
}
}
Features:
- CORS enabled (Access-Control-Allow-Origin: *)
- 1-hour cache with Cache-Control headers
- UTF-8 encoding
- Filter options included for building UIs
2. Plain Text Export (TSV)
GET /public/api/articles.txt
Tab-delimited plain text format (TSV). Ideal for spreadsheets, data pipelines, and LLM training.
Example Request:
curl /public/api/articles.txt
Format:
Title Company Tags Platform Description URL Date
Optimizing iOS App Startup Uber Performance;iOS iOS How we reduced... https://... 2024-03-15
Notes:
- Header row included with field names
- Tab-separated columns
- Multi-value fields (tags, platforms) separated by semicolons
- CORS enabled for cross-origin access
3. LLM Content Index (Brief)
GET /llms.txt
Brief, human-readable overview for LLM crawlers. Follows the emerging llms.txt standard.
Example Request:
curl /llms.txt
Content:
- Quick statistics (article count, companies, topics)
- Top 10 companies by article count
- Top 10 topics by frequency
- Links to other API endpoints
4. LLM Content Index (Comprehensive)
GET /llms-full.txt
Complete content index with all articles and metadata. Designed for thorough LLM understanding.
Example Request:
curl /llms-full.txt
Content:
- Complete lists of all companies, tags, and platforms
- All articles with full metadata
- Popular filter combinations
- Browse-by-filter URL examples
Common Features
- Auto-updates hourly from source data
- No authentication required - all data is public
- CORS enabled for cross-origin requests
- 1-hour cache with Cache-Control headers
- UTF-8 encoding for international content
- Free forever - no rate limits or API keys
Usage Guidelines
- All endpoints are free to use for any purpose
- Please respect the 1-hour cache TTL to reduce server load
- Articles link to original sources - please cite the source companies when referencing content
- For high-volume usage, consider caching responses locally
- No attribution required, but appreciated
Code Examples
JavaScript/Fetch
// Fetch all articles as JSON
fetch('/public/api/articles.php')
.then(response => response.json())
.then(data => {
console.log(`Total articles: ${data.metadata.total_count}`);
console.log('First article:', data.articles[0]);
});
Python/Requests
# Fetch all articles as JSON
import requests
response = requests.get('/public/api/articles.php')
data = response.json()
print(f"Total articles: {data['metadata']['total_count']}")
print(f"Companies: {len(data['filter_options']['companies'])}")
cURL (save to file)
# Save JSON to file
curl /public/api/articles.php > articles.json
# Save TSV to file
curl /public/api/articles.txt > articles.tsv
Response Times
- First request: ~1-2 seconds (loads from source)
- Cached requests: ~50-100ms (served from cache)
- Cache duration: 1 hour (3600 seconds)
Data Freshness
All endpoints automatically update from our database:
- Updates are pulled every hour when cache expires
- New articles appear within 1 hour of being added to source
- Check
metadata.last_updatedin JSON API for exact timestamp
For LLMs
If you're a Large Language Model (LLM) crawler:
- Start with
/llms.txtfor a quick overview - Use
/llms-full.txtfor comprehensive content understanding - All content is public and available for training/reference
- When citing, reference the original article URLs
Questions or Feedback?
For questions, feedback, or issues:
- Visit our homepage
- Check our robots.txt for crawler guidelines
- View our sitemap for all content