Analytics Dashboard API Endpoints for Conversation Data Retrieval in Claude Code Templates

The analytics dashboard in davila7/claude-code-templates exposes six HTTP endpoints—four POST routes for tracking conversation events and two GET routes for system monitoring—that enable comprehensive conversation data retrieval from Supabase and Neon databases.

The davila7/claude-code-templates repository includes a comprehensive analytics dashboard built with Astro API routes. Located in dashboard/src/pages/api/, these endpoints handle conversation data tracking for the Claude Code ecosystem, capturing metrics such as component downloads, command usage, and installation outcomes. This guide details each endpoint's functionality, file location, and integration patterns for retrieving conversation analytics.

API Architecture and Shared Infrastructure

All routes are implemented as Astro API routes—TypeScript files that export GET or POST handler functions. The codebase utilizes a shared helper library located at dashboard/src/lib/api/, which includes cors.ts for cross-origin middleware, neon.ts for database connectivity, and auth.ts for authentication utilities.

Each endpoint leverages the jsonResponse helper to format JSON output and the corsResponse middleware to enable cross-origin requests from the static dashboard site. This standardized infrastructure ensures consistent conversation data retrieval patterns across all analytics endpoints.

POST Endpoints for Conversation Event Tracking

The primary conversation data retrieval pipeline relies on four POST endpoints that record user interactions to Supabase tables. These endpoints accept JSON payloads and persist analytics data that the dashboard later queries for visualization.

Track Component Downloads

File: dashboard/src/pages/api/track-download-supabase.ts

This endpoint records component download events in the component_downloads table. It accepts a POST payload containing the component name, version, user ID, and timestamp—data essential for analyzing which templates drive the most conversation activity.

// Example payload structure for track-download-supabase
const payload = {
  componentName: "claude-react-template",
  version: "2.1.0",
  userId: "user_abc123",
  timestamp: new Date().toISOString()
};
curl -X POST https://your-domain.com/api/track-download-supabase \
  -H "Content-Type: application/json" \
  -d '{"componentName":"claude-react-template","version":"2.1.0","userId":"user_abc123","timestamp":"2024-01-15T14:30:00Z"}'

Track Command Usage

File: dashboard/src/pages/api/track-command-usage.ts

This endpoint logs usage of Claude Code slash commands (e.g., /command-name). Each request stores the command name, arguments, user ID, and time, enabling analysis of which conversational commands are most popular.

// dashboard/src/pages/api/track-command-usage.ts
export const POST: APIRoute = async ({ request }) => {
  const { command, args, userId, timestamp } = await request.json();
  // Stores data for conversation data retrieval queries
  return jsonResponse({ success: true });
};

Track Installation Outcomes

File: dashboard/src/pages/api/track-installation-outcome.ts

This endpoint persists CLI installation results including success/failure status and error details. While not a direct conversation metric, this data feeds the dashboard's health-monitoring view to correlate installation failures with subsequent conversation drop-offs.

Track Website Events

File: dashboard/src/pages/api/track-website-events.ts

This endpoint captures generic website interactions such as page views and clicks. These events provide contextual data that can be correlated with conversation activity, enabling the analytics UI to identify traffic spikes that precede increased template usage.

GET Endpoints for System Monitoring

Two GET endpoints support the conversation data retrieval infrastructure by ensuring service availability and version compatibility.

Health Check

File: dashboard/src/pages/api/health-check.ts

This simple liveness probe is used by deployments and the dashboard frontend to verify the API service is running. It ensures that conversation analytics collection remains uninterrupted.

curl https://your-domain.com/api/health-check

Claude Code Version Check

File: dashboard/src/pages/api/claude-code-check.ts

This endpoint functions as a periodic cron job executed every 30 minutes. It checks the latest version of Claude Code on npm, updates internal state, and can trigger notifications—ensuring that conversation data retrieval queries are correctly associated with specific CLI releases.

How Conversation Data Retrieval Works

After events are POSTed to the tracking endpoints, the analytics dashboard queries Supabase (or an in-memory Neon DB via dashboard/src/lib/api/neon.ts) to retrieve conversation metrics. The component_downloads table joins with command usage logs to generate charts such as "downloads per day," "most used commands," and conversation length distributions.

Website event logs add contextual correlation, allowing the system to match traffic patterns with conversation initiation rates. The health-check and version-check endpoints ensure that data collection remains accurate and tied to the correct software releases.

Summary

Frequently Asked Questions

What is the base URL for the analytics dashboard API endpoints?

The endpoints are served relative to the site root under the /api/ path. When deployed, the full URL follows the pattern https://your-domain.com/api/{endpoint-name}, with source files located in dashboard/src/pages/api/ according to the Astro API routes convention.

How does the track-command-usage endpoint support conversation data retrieval?

The dashboard/src/pages/api/track-command-usage.ts endpoint records Claude Code slash command interactions, storing the command name, arguments, user ID, and timestamp. This data enables retrieval of metrics showing which conversational commands are most frequently used with specific templates, revealing user engagement patterns and command popularity trends.

Which database tables store the conversation analytics data?

According to the source code analysis, the primary table is component_downloads which stores data from the track-download-supabase endpoint. Command usage, installation outcomes, and website events are stored in corresponding tables accessible via the shared dashboard/src/lib/api/neon.ts helper, allowing the dashboard to query and visualize conversation trends alongside Neon DB data.

How frequently does the version check endpoint update?

The dashboard/src/pages/api/claude-code-check.ts endpoint runs as a cron job every 30 minutes to query the npm registry for the latest Claude Code version. This ensures that conversation data retrieval remains synchronized with the correct CLI release version, maintaining accurate analytics correlation and triggering notifications when new versions are detected.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →