Skip to main content
Glama
types.ts5.65 kB
// Type definitions for Astro ASO data export interface App { id: number; name: string; appId: string; developer: string; platform: string; lastUpdateRatings: Date | null; folderId: number | null; stores: string[]; } export interface Keyword { id: number; text: string; currentRanking: number | null; previousRanking: number | null; difficulty: number | null; popularity: number | null; appsCount: number | null; store: string; lastUpdate: Date | null; appId: number; appName?: string; } export interface RankingDataPoint { keyword: string; ranking: number; date: Date; keywordId: number; } export interface Rating { id: number; averageUserRating: number; userRatingCount: number; previousAverageUserRating: number | null; previousUserRatingCount: number | null; date: Date; countryName: string; store: string; } export interface RatingDataPoint { id: number; averageUserRating: number; userRatingCount: number; date: Date; ratingId: number; } export interface Folder { id: number; name: string; createdAt: Date; } // Tool parameter types export interface SearchRankingsParams { keyword: string; store?: string; appName?: string; appId?: string; } export interface HistoricalRankingsParams { keyword: string; appName?: string; appId?: string; daysBack?: number; store?: string; } export interface AppKeywordsParams { appName?: string; appId?: string; store?: string; } export interface KeywordTrendsParams { keyword: string; appName?: string; appId?: string; period?: 'week' | 'month' | 'year' | 'all'; store?: string; } export interface CompareRankingsParams { keyword: string; date1: string; // ISO date string date2: string; // ISO date string appName?: string; appId?: string; store?: string; } export interface AppRatingsParams { appName?: string; appId?: string; store?: string; daysBack?: number; } // Response types export interface RankingResult { app: string; keyword: string; currentRanking: number | null; previousRanking: number | null; difficulty: number | null; popularity: number | null; store: string; lastUpdate: string | null; } export interface HistoricalRankingResult { keyword: string; app: string; store: string; rankings: Array<{ date: string; ranking: number; }>; } export interface TrendAnalysis { keyword: string; app: string; store: string; period: string; dataPoints: number; avgRanking: number; minRanking: number; maxRanking: number; volatility: number; // Standard deviation trend: 'improving' | 'declining' | 'stable'; rankingChanges: Array<{ date: string; ranking: number; }>; } // New interfaces for advanced ASO tools export interface KeywordCompetitorsParams { keyword: string; store?: string; limit?: number; } export interface CompetitorResult { keyword: string; store: string; competitors: Array<{ appName: string; appId: string; ranking: number; category?: string; }>; lastUpdate: string | null; } export interface KeywordRecommendationsParams { keyword: string; appName?: string; appId?: string; store?: string; limit?: number; } export interface KeywordRecommendation { keyword: string; store: string; recommendedKeywords: string[]; source: 'binary_data' | 'similar_keywords'; } export interface CompetitiveLandscapeParams { appName?: string; appId?: string; store?: string; limit?: number; } export interface CompetitiveLandscape { app: string; store: string; totalKeywords: number; topCompetitors: Array<{ competitorName: string; sharedKeywords: number; avgRankingDiff: number; dominanceScore: number; category?: string; }>; marketShare: { top10: number; top25: number; top50: number; }; competitiveIntensity: 'low' | 'medium' | 'high'; } export interface KeywordOpportunityParams { appName?: string; appId?: string; store?: string; minPopularity?: number; maxDifficulty?: number; } export interface KeywordOpportunity { keyword: string; store: string; opportunityScore: number; currentRanking: number | null; difficulty: number; popularity: number; competition: number; reasoning: string; } export interface RankingAnomalyParams { appName?: string; appId?: string; daysBack?: number; threshold?: number; store?: string; } export interface RankingAnomaly { keyword: string; app: string; store: string; previousRanking: number; currentRanking: number; change: number; percentChange: number; anomalyType: 'sudden_drop' | 'sudden_rise' | 'volatility_spike' | 'new_ranking' | 'lost_ranking'; severity: 'low' | 'medium' | 'high' | 'critical'; detectedDate: string | null; previousDate: string | null; daysSincePrevious: number | null; interpretation: string; } export interface RankingPredictionParams { keyword: string; appName?: string; appId?: string; store?: string; daysForward?: number; } export interface RankingPrediction { keyword: string; app: string; store: string; currentRanking: number; predictedRanking: number; confidence: number; trend: 'improving' | 'declining' | 'stable'; predictedChange: number; predictionDate: string; methodology: string; dataPoints: number; } export interface LowCompetitionParams { store?: string; maxDifficulty?: number; minPopularity?: number; limit?: number; } export interface LowCompetitionKeyword { keyword: string; difficulty: number; popularity: number; competitionScore: number; appsCount: number; store: string; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TimBroddin/astro-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server