appfigures-cli

Use when querying Appfigures for app store analytics (downloads, revenue, reviews, rankings).

9 stars

Best use case

appfigures-cli is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when querying Appfigures for app store analytics (downloads, revenue, reviews, rankings).

Teams using appfigures-cli should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/appfigures-cli/SKILL.md --create-dirs "https://raw.githubusercontent.com/exiao/skills/main/external-services/appfigures-cli/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/appfigures-cli/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How appfigures-cli Compares

Feature / Agentappfigures-cliStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when querying Appfigures for app store analytics (downloads, revenue, reviews, rankings).

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Appfigures

Pull app store analytics via the Appfigures REST API.

## Authentication

All requests use Bearer token auth:
```
curl -s "https://api.appfigures.com/v2/{route}" \
  -H "Authorization: Bearer $APPFIGURES_PAT"
```

## Product IDs

**Bloom (own apps):**
- `$APPFIGURES_BLOOM_IOS_ID` — Bloom: AI for Investing (iOS)
- `$APPFIGURES_BLOOM_ANDROID_ID` — Bloom: AI for Investing (Google Play)

**Bible Genius (own apps):**
- `$APPFIGURES_BG_IOS_ID` — Bible Genius (iOS)
- `$APPFIGURES_BG_ANDROID_ID` — Bible Genius (Google Play)

**Competitors (tracked):**
- `212878126` — Seeking Alpha (iOS)
- `40417581583` — Robinhood (iOS)
- `41519036492` — Robinhood (Google Play)
- `5957199` — Yahoo Finance (iOS)

Use `products={id}` or `products={id1},{id2}` to filter. For Bloom with all IAPs, add `&include_inapps=true`.

## Core Routes

### Sales (downloads, revenue)
```
GET /reports/sales/?start_date={date}&end_date={date}&group_by={pivots}&products={ids}&granularity={daily|weekly|monthly}
```
- `group_by`: products, countries, dates, stores (comma-separated)
- Key fields: `downloads`, `revenue`, `gross_revenue`, `net_downloads`, `uninstalls`
- Date format: `yyyy-mm-dd` or relative (`-7` = 7 days ago, `-1m` = 1 month ago)

### Subscriptions (MRR, churn, trials)
```
GET /reports/subscriptions?start_date={date}&end_date={date}&group_by={pivots}&products={ids}&include_inapps=true
```
- `group_by`: product, country, date, store
- Key fields: `active_subscriptions`, `mrr`, `churn`, `new_trials`, `trial_conversions`, `cancellations`, `actual_revenue`, `paying_subscriptions`
- For Bloom subs, use the app product ID + `include_inapps=true`

### Reviews
```
GET /reviews?products={ids}&count={1-500}&sort=-date&stars={1,2,3,4,5}&lang={iso}
```
- Paginated: `page=N`, check `total` and `pages` in response
- Add `lang=en` to auto-translate non-English reviews
- Fields: `author`, `title`, `review`, `stars`, `date`, `version`, `iso`

### Ratings
```
GET /ratings?products={ids}&countries={iso}&start_date={date}&end_date={date}
```
- Returns snapshot array with `stars: [1star, 2star, 3star, 4star, 5star]` counts
- Default country: US

### Rankings
```
GET /ranks/{product_ids}/{granularity}/{start_date}/{end_date}?countries={iso}
```
- Granularity: `daily` or `hourly`
- Returns positions and deltas per category/country

### Products
```
GET /products/mine
```
- List all tracked products with metadata

## Date Shortcuts

| Shortcut | Meaning |
|----------|---------|
| `-7` | 7 days ago |
| `-1m` | 1 month ago |
| `-1w` | 1 week ago |
| `-1y` | 1 year ago |
| `0` | today |

## Common Queries

**Last 7 days downloads by date (Bloom iOS):**
```bash
curl -s "https://api.appfigures.com/v2/reports/sales/?products=$APPFIGURES_BLOOM_IOS_ID&group_by=dates&start_date=-7&end_date=0" \
  -H "Authorization: Bearer $APPFIGURES_PAT"
```

**Current subscription metrics (Bloom, all platforms):**
```bash
curl -s "https://api.appfigures.com/v2/reports/subscriptions?products=$APPFIGURES_BLOOM_IOS_ID,$APPFIGURES_BLOOM_ANDROID_ID&include_inapps=true&start_date=-30&end_date=0" \
  -H "Authorization: Bearer $APPFIGURES_PAT"
```

**Recent 1-star reviews:**
```bash
curl -s "https://api.appfigures.com/v2/reviews?products=$APPFIGURES_BLOOM_IOS_ID&stars=1&count=20&sort=-date" \
  -H "Authorization: Bearer $APPFIGURES_PAT"
```

**Monthly revenue trend (Bloom, last 6 months):**
```bash
curl -s "https://api.appfigures.com/v2/reports/sales/?products=$APPFIGURES_BLOOM_IOS_ID,$APPFIGURES_BLOOM_ANDROID_ID&group_by=dates&granularity=monthly&start_date=-6m&end_date=0&include_inapps=true" \
  -H "Authorization: Bearer $APPFIGURES_PAT"
```

## Output Formatting

- Default output is JSON. Add `&format=csv` for CSV (sales, ranks routes).
- Parse with `python3 -m json.tool` or `jq` for readable output.
- For Signal/chat output, summarize key metrics in bullet points.

## Rate Limits

Each account has a monthly API call limit. Avoid unnecessary repeated calls. Cache results when running multiple analyses in a single session.

## Detailed API Reference

For field definitions and advanced query options, see [references/api-routes.md](references/api-routes.md).

Related Skills

writer

9
from exiao/skills

Write content in Eric's voice — articles, blog posts, tweets, social media posts, marketing copy, newsletter drafts. Loads WRITING-STYLE.md and enforces kill phrases.

positioning-angles

9
from exiao/skills

Use when defining product positioning, choosing strategic angles, crafting value propositions, competitive positioning, product messaging, differentiation strategy, or go-to-market angles. Also use for 'how should I position my app', 'what angle should I use', 'painkiller vs vitamin', or 'market positioning'.

outline-generator

9
from exiao/skills

Use when generating outlines, article structures, content outlines, blog outlines, planning article sections, structuring posts, breaking down topics into sections, or organizing ideas for long-form content. Also use for 'outline this', 'structure this article', or 'plan the sections'.

last30days-open

9
from exiao/skills

Use only when the user explicitly asks for the open variant of last30days, including watchlists, briefings, and history queries. Sources: Reddit, X, YouTube, web.

last30days

9
from exiao/skills

Use when researching what happened in the last 30 days on a topic. Also triggered by 'last30'. Sources: Reddit, X, YouTube, web. Produces expert-level summary with copy-paste-ready prompts.

hooks

9
from exiao/skills

Use when generating hooks, headlines, titles, and scroll-stopping openers for content. Also use when analyzing viral posts, Reels, TikToks, YouTube Shorts, or successful social examples to extract reusable hook patterns and improve hook guidance.

evaluate-content

9
from exiao/skills

Use when judging content quality OR editing/improving existing copy: shareability, readability, voice, cuttability, angle, copy sweeps.

editor-in-chief

9
from exiao/skills

Use when a first draft is complete and all Phase 1 gates are done: topic selected (seo-research), title approved (hooks), outline approved (outline-generator), draft written (writer). Runs autonomous diagnosis-prescribe-rewrite loop before Substack.

copywriting

9
from exiao/skills

Write or improve marketing copy for any surface: pages, ads, app stores, landing pages, TikTok/Meta scripts, push notifications, UGC. Combines page copy frameworks with direct response principles.

content-strategy

9
from exiao/skills

Use when building content strategy: hooks, angles, and ideas from what's trending now. Covers organic and paid creative across TikTok, X, YouTube, Meta, LinkedIn.

content-pipeline

9
from exiao/skills

Orchestrator for the 3-article content pipeline — runs research phase, spawns parallel article sub-agents, creates Typefully drafts. Use when running the full content pipeline (usually via cron at 3am).

yt-dlp

9
from exiao/skills

Download audio/video from YouTube and other sites using yt-dlp. Use when the user asks to download music, songs, albums, podcasts, or video from YouTube or similar platforms. Triggers on 'download song', 'get mp3', 'yt-dlp', 'youtube download', 'rip audio'.