What's New

Every new feature, improvement, and fix we ship. Sonar gets better for indie developers every week.

  1. Fixed

    Adding competitors works on every one of your apps

    If you tracked an app as a competitor first and later added it as one of your own products, it stayed filed as a competitor internally. Adding competitors to that app then did nothing at all: the button spun, stopped, and no competitor appeared, with no error to explain why. Products you had added the other way round worked fine, which made it look random.

    Ownership is now resolved the moment an app becomes yours, and every affected app in existing accounts has been corrected, so the competitors you were blocked from adding will go in.

    The silent half is fixed too. When adding a competitor fails for any reason, the dialog now tells you what went wrong instead of quietly doing nothing.

  2. Fixed

    The hosted MCP server works again

    Since August 28, the hosted MCP endpoint at trysonar.app/mcp connected normally and listed all of its tools — and then failed on every single call with "Could not connect to https://localhost:3100". Free lookups and authenticated calls alike, so an API key made no difference. Because the connection itself looked healthy, it read as a broken tool rather than a broken server.

    The endpoint had moved to our dedicated API server, and it was working out the address to reach our own API from the wrong side of that move — pointing at a port on itself that nothing answers on. It now uses the right address, covered by tests so it cannot drift again.

    OAuth sign-in from MCP clients was broken by the same cause and works again too. The npx @sonarapp/mcp package, the CLI, and direct API calls were never affected.

  3. ImprovedFixed

    Bulk keyword lookups now return partial results instead of failing

    When the store-data queue got busy, a bulk /api/v1/keywords/metrics request used to fail entirely with a 429 — even if 20 of your 25 keywords had already been fetched. All that work was discarded, so your retry started from scratch and hit the same congestion.

    Now bulk requests return what they managed to get:

    • Completed keywords come back in a normal 200 response and are cached,
    • Unfinished keywords are marked individually with
    • You're only billed for keywords you actually received. Credits for any
    • The retry hint is sized to the real queue depth and now also travels in the

    The CLI and MCP server surface that retry hint in their messages too, so agents back off sensibly instead of hammering — and the CLI now clearly marks keywords that weren't served instead of showing them as empty metrics.

    One thing worth knowing if you run large batches: each account has a budget for how many keywords it resolves at once. Sending bulk requests one after another rather than firing many in parallel will now finish a large job noticeably faster, and stops one heavy job from crowding out everyone else's lookups.

  4. Fixed

    Contact dialog works without a configured email app

    The "Talk to Founder" dialog in the sidebar relied on your browser opening an email app. In browsers with no email handler configured (common in Chrome), clicking an option silently did nothing.

    Fixed: the dialog now stays open and always shows the contact address directly, with a one-click copy button — so you can reach us regardless of how your browser handles email links.

  5. Improved

    Clearer credit packs

    Settings → Credits was a list of four buttons and a wall of pricing prose. It now reads as a comparison: each pack shows its price per 1,000 credits and how much you save against the starter pack, so picking one is a decision rather than a guess. Your balance sits on top with the same numbers the API bills against.

    Underneath, endpoint pricing is a table — what each endpoint costs in credits and roughly how many calls a pack buys you — instead of paragraphs you had to map onto your own usage.

    Also in this release: screenshot set previews on the /screenshots page now keep each device's real aspect ratio while they load, so the grid no longer jumps around as thumbnails arrive.

  6. Improved

    Cleaner Listing Manager layout

    The Listing Manager's localization view used to render every field — App Name, Subtitle, Keywords, Promotional Text, Description — as its own bordered card, which made the page feel busy.

    The fields now live in a single panel with subtle dividers, with small field labels so your actual listing copy is what stands out. The target-keywords section and the App Store Connect prompt were lightened to match. Everything works the same — character counts, copy buttons, and source badges are all still there.

  7. Fixed

    In-app purchase revenue now shows on the Performance page

    The Performance page's daily proceeds chart and 30-day proceeds card now include revenue from in-app purchases and subscriptions, not just paid downloads.

    Apple's sales reports list each in-app purchase as its own product, separate from the app it belongs to — so IAP revenue was being recorded but never attributed to your app. If your app is free with IAP or subscriptions (most are), proceeds showed as ≈$0 even while you were earning. That's fixed, and we've re-imported the last 30 days of sales reports so your history is correct too.

    No action needed — if you've connected App Store Connect, your real revenue is already there.

  8. New

    SERP Explorer

    The Autocomplete Simulator shows what the store suggests. SERP Explorer shows what the store returns.

    Type a keyword, pick a store and storefront, and you get the live top 25 — rendered both in a phone mockup of the real App Store or Play results screen and as a sortable table. The phone scrolls like a phone — grab it with the mouse, drag, and flick — and on iOS it shows each result's three screenshot thumbnails just like the real store (a switch hides them if you want the denser list). The keyword is highlighted wherever it appears in an app's name or subtitle, and a "Keyword in" column tells you at a glance which competitors are actually targeting the term versus which ones just rank there.

    Sort by ratings, installs, or estimated monthly revenue to size up the competition, spot the amber Outlier badge on apps holding a top slot with far less social proof than their neighbours — those are the ones winning on metadata and worth reverse-engineering — and click any app to open its full listing, description and all. The searched keyword's own popularity and difficulty sit at the top, with one click to start tracking it.

    Find it under Tools in the sidebar.

  9. Improved

    Dedicated API infrastructure — much faster keyword computes

    The Sonar REST API and MCP server now run on dedicated API infrastructure, built for exactly the workloads that used to struggle: bulk keyword research.

    What changed for you:

    • Fresh keyword computes are 3–4x faster — a cold keywords/metrics
    • Bulk pulls actually finish. The shared scrape capacity that caused
    • New canonical base URL: https://api.trysonar.app. It's the same API,
    • The CLI and MCP packages will point at the new endpoint by default in
  10. Fixed

    Cancelling now stops any pending payment retry

    When a subscription payment fails, Stripe retries the card a few times over the following days. Previously, if you cancelled during that retry window, the cancellation was scheduled for the end of the billing period — which left the unpaid invoice in the retry queue, and a later retry could still charge your card for a period you had just cancelled.

    Now, cancelling while an invoice is unpaid takes effect immediately: the open invoice is voided, the subscription ends on the spot, and no further payment attempts are made.

  11. New

    Connect AI agents with your Sonar login — no API key needed

    Until now, connecting an AI agent to Sonar's MCP server meant creating an API key in the dashboard and pasting it into your agent's config. That step is gone: the hosted server at https://trysonar.app/mcp now supports OAuth sign-in.

    Add the server with no credentials at all:

    claude mcp add --transport http sonar https://trysonar.app/mcp

    The first time your agent calls a tool that needs your account, a browser window opens, you approve the connection with your Sonar login, and the agent is in — tracked apps, rankings, keyword research, competitor analysis, the full toolset. Works in Claude Code, claude.ai custom connectors, and any OAuth-capable MCP client.

    API keys still work everywhere they did before (and remain the way to go for scripts, CI, and clients without OAuth support). You can revoke an agent's OAuth access anytime from your account's connected-apps list.

    New trials get this as an onboarding option too: right after starting your trial, Sonar offers a ready-to-paste connect command and starter prompt so your agent can do the whole setup — find your app, add competitors, pick keywords — while you just approve the sign-in.

  12. Improved

    A friendlier API for agents and integrations

    A batch of improvements for everyone building on Sonar — whether that's a script, an AI agent, or a full integration:

    • JSON errors everywhere. Unknown /api/v1/* paths now return a proper
    • Published versioning policy. The API is additive-only within /api/v1;
    • Richer OpenAPI spec. Every operation now carries a unique
    • Markdown when you ask for it. The homepage, blog posts, and keyword
  13. New

    A clear heads-up when a subscription payment fails

    Card payments fail for mundane reasons — an expired card, a bank hiccup, a spending limit. Until now the only signal was an email you might miss, and the first in-app hint was your subscription disappearing.

    • In-app banner from the first failed charge — everyone in the org sees a notice with a direct link to update the payment method while Stripe retries the charge in the background.
    • Grace period, not a cliff — your data, rank tracking, and dashboards keep working the whole time. Only if the payment stays unresolved for a few days do changes (like adding apps or keywords) pause until the card is fixed; billing pages always stay open.
    • Nothing is lost — the moment a retry succeeds or you update the card, the banner disappears and everything continues as if nothing happened.
  14. Fixed

    Search results now show titles in your market's language

    App listings are localized per storefront, but Sonar kept a single display name per app — whichever market happened to refresh it last. If an app ranked for your US keyword and also for someone else's Brazilian keyword, its title could show up in Portuguese in your US search results.

    App names in keyword details, the keyword side panel, top-app previews, top charts, and the rankings API are now stored and shown per country, matching what a user browsing that storefront actually sees. Names update as each market's daily refresh runs, so any remaining mixed-language titles clear out within a day.

  15. Improved

    Top Charts now go 200 deep

    Top Charts just doubled in depth: every chart combination — free, paid and grossing, store-wide or per category, in every country — now tracks the top 200 apps instead of the top 100.

    That second hundred is where the interesting signals live: apps climbing toward the charts, niches getting crowded, and your own position long before you crack the top 100. Grossing charts at this depth are especially hard to come by — most tools (and Apple's public feeds) stop at 100.

    Day-over-day movement, new entries, dropped apps and biggest movers all cover the full 200 now. The API, CLI and MCP limit parameter accepts up to 200 — existing integrations keep working unchanged.

  16. Fixed

    Listing Manager shows each localization in its own language

    Some App Store storefronts render in English by default (Denmark, Sweden, the Netherlands, and others), and the Listing Manager was previewing those storefronts without asking for the localization's language. The result: selecting Danish showed the English listing — English app name, English texts, and the English screenshot set — even when a full Danish localization was live on the store.

    • Localized previews everywhere — the Listing Manager now requests each localization explicitly, so every locale in the rail shows its own name, subtitle, description, and screenshots. This applies to both stores.
    • Listing Helper drafts too — draft generation for non-English locales now grounds on the localized subtitle and screenshots instead of the English ones.
  17. NewImproved

    Competitor keywords now flow into the Discovered tab

    Until now, the full list of keywords a competitor ranks for lived only in the per-competitor Keywords sheet on the Competitors page — easy to miss if you went looking on the Keywords page instead. Now the best of that list comes to you.

    • Competitor-ranked keywords in Discovered — whenever Sonar scans a competitor (on add, on a manual scan, or during the weekly refresh), keywords they rank in the top 30 for — in your app's market, that you're not already tracking — land in Keywords → Discovered as competitor suggestions.
    • Evidence on the badge — competitor-sourced rows now show the rank behind the suggestion: the source badge reads "Competitor #10", and hovering it tells you which competitor holds that spot.
    • Quality-filtered — only keywords from your app's store and country make the cut, so a US recipe app won't "discover" fitness keywords from another market. Deep rankings past #30 stay in the competitor sheet, where the complete list still lives.
    • API includedGET /api/v1/apps/:id/discovered-keywords responses now carry competitor_rank and competitor_name on competitor-sourced rows.
  18. NewFixed

    API: app overview, portfolio, discovered keywords, alert events, and review insights

    The API (and with it the MCP server and CLI) now covers five more things you could previously only see in the dashboard:

    • App overviewGET /api/v1/apps/:id/overview returns the dashboard's computed scoreboard in one call: visibility index and share of voice with 7-day deltas, ranked and top-10 keyword counts with movement, best rank, top improvements and drops, the rank-distribution trend, and the actionable opportunity list. It's the same code the dashboard runs, so an agent asking "how is my app doing?" gets the same answers you see. CLI: sonar apps overview, MCP: sonar_app_overview.
    • Portfolio rollup (Agency)GET /api/v1/portfolio returns the whole portfolio's health: per-app KPIs, org-wide totals, the biggest keyword movers, the needs-attention list, and the best keyword opportunities across all your apps. CLI: sonar portfolio, MCP: sonar_portfolio.
    • Discovered keywordsGET /api/v1/apps/:id/discovered-keywords returns the keywords Sonar's discovery engine surfaced for your app but that you aren't tracking yet: ranked finds, competitor gaps, and idea suggestions, each with metrics, AI relevance, and an opportunity score. It's the "what should I track next" answer, ready for an agent to read and act on with the existing track-keywords endpoint. CLI: sonar keywords discovered, MCP: sonar_discovered_keywords.
    • Alert events feedGET /api/v1/alerts/events exposes the same detected-changes feed as the in-app Recent alerts panel (rank drops, review spikes, competitor moves, …). Poll it with ?since= to react to changes programmatically instead of waiting for the email digest. CLI: sonar alerts events, MCP: sonar_alert_events.
    • AI review insightsGET /api/v1/apps/:id/review-insights returns the latest AI review analysis for any tracked app (yours or a competitor's): praise and complaint themes with quotes and trend movement, sentiment, and feature requests. A POST to the same path generates a fresh one (90-day cooldown per app and country). CLI: sonar apps insights / sonar apps analyze-reviews, MCP: sonar_review_insights / sonar_generate_review_insights.

    The MCP server now exposes 53 tools with full API parity. Update to @sonarapp/mcp and @sonarapp/cli latest to pick up the new tools and commands.

    Also fixed: generating an AI competitive analysis via the API (POST /api/v1/apps/:id/competitor-landscape) now respects the same paid-plan requirement as the dashboard — trial accounts get a clear trial_locked error instead of silently spending the AI call. Reading the landscape stays available on trials.

  19. Fixed

    Top Charts now show iOS ratings

    Since launch, the rating column on Top Charts was empty for iOS — Apple's chart feed doesn't include ratings, so only Android entries showed one.

    iOS chart snapshots now fill ratings from Apple's official lookup API, so every iOS chart entry shows its current star rating just like Android. New snapshots pick this up immediately; a chart you haven't opened since the change will show ratings after its next daily refresh.

  20. Fixed

    Fixed: switching products from Trends or Top Charts

    If you were browsing a research view — Trends, Top Charts, or a research project's dashboard — and picked one of your products in the sidebar switcher, nothing visible happened: the page kept its research context and the sidebar stayed in project mode, making the switch look broken.

    Switching products from any research page now navigates straight to that product's dashboard, as you'd expect.

  21. New

    Official Apple search rankings in Trends

    Trends now runs on official Apple data. Apple publishes weekly rankings of the top 500 search terms in each App Store genre — real search popularity, straight from the source — and Sonar ingests them every week, with history back to October 2025.

    What's new on the Trends page:

    • One rising-keywords list — the Keywords tab now shows a single
    • Top ranked view (App Store) — browse the current week's official Apple
    • Breakout apps — brand searches climbing Apple's rankings fast. When an
    • Apple-backed niches — niche cards show the best official Apple ranking

    Momentum scoring behind the scenes also got sharper: rising terms that enter or climb Apple's official rankings now score higher, and brand searches are kept out of niche suggestions automatically.

  22. New

    Filter keywords to beatable ones

    Sonar already flags two winnability signals on your tracked keywords: the green Beatable badge (a top-3 spot held by an app far weaker than the rest of the results) and the amber outlier dot (an app in the top 10 ranking way above its strength — usually winning on metadata alone). Until now you had to scan the table for them.

    The Keywords page now has an Opportunity filter that narrows the table to exactly those rows: beatable keywords, keywords with a SERP outlier, or either. It works on the single-store and cross-store tables alike, persists with your other filters, and combines with them — filter to beatable keywords above popularity 30 in one market and you have a shortlist worth targeting.

    Cross-store tables also now show the Beatable badge and outlier dot inline, so the signals are visible even with the filter off.

  23. New

    See which keywords you just gained or lost

    Ranking for a keyword you didn't rank for last week is one of the strongest signals in ASO — and losing one is something you want to catch fast. The Rankings page now surfaces both at a glance:

    • Movement filter — a new filter in the Rankings toolbar with two views:
    • New / Lost badges — matching badges appear next to the keyword in the
    • Export included — CSV/JSON exports carry a Movement column, so the same

    Keywords you only just started tracking don't count as "newly ranking" — the badge is reserved for genuine movement, where a keyword you'd been tracking for a while finally shows up in the results.

  24. New

    Sonar skills for Claude Code and Cursor

    The Sonar MCP server gave AI agents the tools; the new skills give them the workflows. github.com/trysonar/skills packages ten step-by-step ASO playbooks your agent can follow with live Sonar data:

    • Research — keyword research (with the beatable shortlist signal),
    • Execution — metadata optimization with exact character counts, ASO
    • Foundation — a shared app-marketing context document every skill reads

    Install into Claude Code with npx skills add trysonar/skills, or drop the skills/ folders into Cursor, OpenClaw, or any Agent Skills-compatible client. Skills chain into each other — a competitor scan hands gap keywords to keyword research, which feeds metadata optimization, and rank tracking measures the result.

    Several Sonar endpoints work with no API key at all, so your agent can try the data before you create an account.

  25. ImprovedFixed

    The API now accepts bundle ids and keyword text, not just internal ids

    If you called an endpoint like /api/v1/apps/:id/rankings with your app's bundle id (com.example.app) instead of its Sonar id, you got a 500 with no explanation. That was our bug, and it was the single biggest source of server errors on the API. It's fixed twice over.

    Wrong identifiers now fail clearly. Anything we can't resolve returns a 404 telling you the app or keyword isn't tracked, and malformed ids in bulk operations return a 400 naming exactly which entries were wrong.

    And the identifier you already have now just works. Wherever an endpoint takes an app :id, you can pass the bundle id or package name instead:

    GET /api/v1/apps/com.example.app/rankings
    GET /api/v1/apps/com.example.app/keywords

    GET /api/v1/keywords/:id/rankings also accepts the keyword text (/api/v1/keywords/habit%20tracker/rankings), and POST /api/v1/alerts accepts a bundle id for scope_app_id. No extra lookup call just to translate an id you already know.

    Two things worth knowing: identifiers resolve only within apps your organization tracks, so they never reach another account's data. And when the same bundle id exists on both stores (or a keyword is tracked in several markets), you'll get a 400 telling you to disambiguate with ?store=ios or ?store=ios&country=us rather than us guessing which one you meant.

    Internal ids work exactly as before — nothing you've already built needs to change.

  26. Fixed

    Failed API requests no longer count against your daily limit

    Previously, every authenticated API request counted against your plan's daily limit the moment it arrived — including requests that came back empty-handed. If our scraper queue was congested and you got a 429 — "Scraper queue is busy, retry shortly.", that failed call still spent one of your 1,000 daily requests (150 on trial). A busy period could burn through a big chunk of your quota without returning a single data point.

    That's fixed. The daily quota now settles the same way credit billing always has: only successful responses (status below 400) count. Scraper-busy 429s, validation errors, and server errors are free — when you see a Retry-After header, backing off and retrying costs you nothing. The same rule now applies to the anonymous free tier's per-IP allowance.

    Thanks to the customer who reported this — if your automated jobs hit busy windows before today, your quota was back to full for the affected day.

  27. Fixed

    Clearer errors when the app stores are busy

    Occasionally the app stores rate-limit our data fetching for a few seconds at a time. If you hit one of those windows while searching for or adding an app, the dashboard used to fail with an unhelpful generic error. It now tells you exactly what happened — the stores are busy — and asks you to retry in a few seconds, which virtually always succeeds.

  28. NewImproved

    iOS / Android filter on Discovered keywords

    For products tracked on both stores, the iOS / Android / Both switch used to exist only on the Tracked keywords table. It now sits in the tabs header and applies everywhere at once: the Tracked table, the Discovered table, and the opportunity matrix — so you can judge your discovery options per platform, both in the table and on the quick-wins plot.

    Details worth knowing:

    • Discovered comparison view redesigned. "Both" now shows the same
    • Single-store scopes are truly single-store. They show only that store's
    • The matrix follows the switch. In iOS or Android scope, the plot uses

    Your choice is remembered across visits, per browser.

  29. New

    A guided tour of the live demo

    Exploring Sonar for the first time just got a lot easier. New accounts are greeted with a personal invite to a short spotlight tour that walks through a live demo — a real app with real data, not screenshots.

    The tour hits the highlights: keyword scores and daily rank charts, competitor gap analysis, AI review insights, live store autocomplete (pre-typed so you immediately see real suggestions), the screenshot studio, and the App Store engagement funnel. It ends exactly where it matters — the search box that gets your app its free ASO snapshot; clicking into it finishes the tour and you're already typing.

    Not the right moment? "Maybe later" keeps a small Show me around button in the corner so you can take the tour whenever you're ready. You can skip at any step, and the tour never shows twice once you've seen it.

  30. New

    A 30-second guided tour for new signups

    Fresh signups can now take a short guided tour instead of exploring the demo cold. Accept the invite and Sonar walks you through the highlights on real data — the keywords table with popularity and difficulty scores, daily rank charts, the competitor view, and AI review insights — and finishes at the "see it with your app" search, where you can pull a free snapshot of your own app's ASO. Skippable at any point, and it never shows again once you've seen it.

  31. Improved

    Screenshot Studio: multi-select and layer groups

    Editing multi-layer compositions just got much faster:

    • Multi-select. ⌘/⇧-click layers on the canvas or in the layers panel to
    • Groups. ⌘G groups the selection, ⇧⌘G ungroups. A plain click on a
    • Smoother layers panel. Dragging a layer into another screenshot's group
  32. Improved

    Screenshot sets now show real previews

    Screenshot sets on the /screenshots page now display rendered previews of their first screens, straight from the same rendering pipeline the editor and the export API use — so localized layouts, backgrounds, and panorama strips look exactly as they will in the store.

    Small bonus for anyone taking the product tour: the sidebar now carries a subtle "you are here" marker on the menu item of whichever page the tour is currently previewing, so you always know where in the app you are.

  33. Improved

    App ratings now show their storefront

    Store ratings are country-specific — Google Play especially can show the same app at 4.1 on the US listing and 4.7 in another market. Sonar always shows the rating for your product's primary market, but nothing on screen said so, which made a perfectly correct number look wrong if your home storefront rates your app differently.

    The rating on the product dashboard header and the Apps page cards now includes a small flag for your primary market, with a tooltip naming the storefront the value was measured in.

  34. Fixed

    More accurate ASO score checks

    We audited every factual claim behind the ASO score and tightened the ones that had drifted out of date:

    • Google Play title length — Play has capped app titles at 30 characters
    • Store-aware description tips — Google Play indexes your description for
    • Release notes — no longer described as a keyword opportunity (they

    The fixes apply everywhere the ASO score appears: the free ASO score checker, your app snapshot, the dashboard, the API, CLI, and MCP tools.

  35. New

    Priority rank refresh for Agency plans

    Keywords tracked on the Agency plan now jump to the front of the daily rank-tracking queue.

    • First in line every day — your keywords' rankings, difficulty, and
    • Protected under load — if the trackers ever fall behind, Agency

    Nothing to configure — it applies automatically to every keyword tracked by an Agency plan workspace. This completes the Agency launch lineup: team seats, portfolio rollup, white-label client reports, and priority refresh are all live.

  36. ImprovedFixed

    Screenshot Studio: layers that cross screenshots now behave

    Designs that flow across the screenshot strip — a mascot straddling two screenshots, a device mockup peeking in from the next slide — now work end-to-end:

    • Exports include cross-screenshot bleed. Every export (single PNG, ZIP,
    • Move layers between screenshots in the layers panel. Drag a layer row
    • Position decides ownership on canvas. Drag a layer so that most of it
  37. Fixed

    Fixed: Screenshot Studio could freeze opening some sets

    Opening a screenshot set could freeze the whole tab on "Loading editor…" — specifically for sets duplicated from one device size to another (e.g. an iPhone set copied to iPad). The device conversion scales caption font sizes, and a fractional font size could send the caption auto-fit logic into an endless loop while the canvas drew its first frame.

    The auto-fit search now always terminates, so affected sets open normally again. The same fix protects per-locale PNG exports, which share the auto-fit code and could stall on long translated captions the same way.

  38. Improved

    Autocomplete Simulator now computes missing metrics on the spot

    Until now, the Autocomplete Simulator only showed popularity and difficulty for keywords Sonar had already measured — anything new (or any freshly added storefront) rendered empty dashes.

    Now, when you pause typing, the simulator computes the missing metrics on the spot: the empty cells switch to "Calculating…" and fill in one by one as real SERP-based difficulty and popularity land, usually within half a minute. Once computed, the values are cached — the next person to look up the same term in that country gets them instantly.

    This makes the simulator genuinely useful in newer storefronts (say, Kazakhstan, added earlier today) where the metrics corpus is still empty.

  39. New

    19 new countries, from Kazakhstan to Peru

    Sonar now supports 74 countries — 19 new storefronts across both stores, available everywhere a country picker appears: rank tracking, keyword research, discovery, and the Autocomplete Simulator.

    The new additions:

    • Central Asia & CIS — Kazakhstan, Uzbekistan, Azerbaijan, Belarus
    • Europe — Bulgaria, Croatia, Slovenia, Lithuania, Latvia, Estonia, Iceland
    • Latin America — Peru, Ecuador, Uruguay
    • Middle East & Africa — Qatar, Kuwait, Morocco
    • South Asia — Pakistan, Sri Lanka

    Every storefront was verified live against both the App Store and Google Play before shipping, so search results, autocomplete suggestions, and keyword metrics work from day one.

    Missing a market you need? Just reply to any Sonar email — this batch started with a single customer request.

  40. New

    Export screenshots via API — no browser needed

    Screenshot Studio sets could always be authored by agents through the API — but the final pixels only existed behind the in-browser export button. That gap is closed: rendering now also runs on our servers.

    • GET /api/v1/screenshots/sets/:id/export returns a ZIP of store-ready
    • Same engine as the editor — server renders go through the exact scene
    • New MCP tool sonar_export_screenshots — agents can now go from layout
  41. Fixed

    Screenshot Studio opens heavily localized sets instantly

    Opening a screenshot set with localized in-app captures across many locales could previously hang the studio indefinitely — the editor tried to load every locale's images up front, which for a 30-locale set meant tens of megabytes before the first paint.

    • Instant open — the editor now loads your screens first and fetches each
    • Safe by design — the translations sheet waits for a locale to finish
    • Exports unchanged — per-locale and all-locale ZIP exports load what they
  42. Improved

    Alert emails: grouped by app and store

    The daily alert digest got a structural overhaul, based directly on customer feedback:

    • Grouped by app and store — each rank section now nests app → store → keywords. Your app's name appears once as a heading, and App Store and Google Play get their own labeled sub-sections with counts, so you can read each store's dynamics separately instead of scanning a mixed list.
    • Keywords lead the lines — no more repeating the app name on every row; each line starts with the keyword and its movement ("spanisch lernen" — 🇦🇹 AT #45→#125 (▼80)).
    • Severity-first ordering — the biggest moves come first: full drop-outs ordered by the position you lost, then falls by distance, then alphabetically.
    • One line per country — a keyword tracked in many markets shows the keyword once with each country's movement on its own line, instead of one long comma-joined run.
    • Summary up front — the intro now counts changes per type with a per-store split ("51 rank drops — App Store 20 · Google Play 31").
    • Less noise — duplicate lines from the same term tracked twice are removed, and repeated competitor release events collapse into one line with a count.
  43. New

    White-label client reports for Agency plans

    Agency plans can now send every client a white-label weekly report — a clean, shareable page that carries your agency's branding, not ours.

    • Your brand, not Sonar's — set your logo, display name, and accent
    • One link per client — pick the products a client should see, get a
    • Frozen weekly editions — a new edition is captured every Monday and
    • What clients see — top-10 keyword counts with week-over-week change,

    Find it in the sidebar under Client reports. Available on the Agency plan.

  44. New

    Auto-track ranked discoveries

    Discovery keeps finding keywords your app already ranks for — until now you had to promote them by hand. The Discovered tab has a new Auto-track ranked switch (per app):

    • Turning it on immediately tracks every ranked discovery waiting in the tab.
    • From then on, whenever discovery or a rank refresh finds your app holding a
    • Plan keyword limits are respected: the best-ranked keywords are tracked

    Keyword ideas you don't rank for yet are never auto-tracked — those stay your call.

  45. New

    Listing Manager: every localization of your live listing, in one place

    Your listing probably exists in more languages than you think about. The new Listing Manager (Tools → Listing Manager) puts all of them in one place.

    • Locale rail — every localization your listing currently ships in, with your primary market pinned first. Pick one to see exactly what's live there.
    • Full field view — App Name, Subtitle, Keywords, Promotional Text, Description, What's New (Title, Short and Full Description on Google Play), each with its character budget, over-limit warnings, and per-field copy.
    • Pull the hidden fields from App Store Connect — Apple never shows your Keywords field or Promotional Text publicly. Connect your App Store Connect account (Settings → Connections) and the Listing Manager pulls them straight from your account, for every localization at once.
    • Store preview — the selected locale's live copy rendered in real App Store / Google Play mockups, with that storefront's screenshots.
    • Target keywords per language — each localization now carries its own priority-ordered target list. Localizations you created before Sonar start empty: pick their targets whenever you like and they're synced back in — and tracked in that storefront from then on.
    • Add languages in bulk — select as many languages as you want (or Select all) and add them in one go. Anything not live yet lands in a separate Drafts section of the rail, so you can prepare a localization long before it exists on the store.
    • New language? Start with the keywords — a freshly added language opens on "What should German rank for?", showing the keywords you already track in that market plus the ideas discovery found, with popularity, difficulty and opportunity. Nothing there yet? Start automated keyword research for that market in one click.
    • Keeps you inside Apple's limits — keywords beyond your top 3 go to the hidden Keywords field, which Apple caps at 100 characters. You see the exact string that would go there and a live character count, and saving is blocked while you're over — no more discovering the limit in App Store Connect.
    • Straight into editing — "Edit listing" drops you into the Listing Helper with the store, locale and target keywords preselected.

    It's the new front door of the listing workflow: see what's live, spot the gaps, then draft the fix.

  46. New

    Portfolio view for Agency plans

    Agency plans now include the Portfolio page: your whole catalog in one view, built to answer which app needs attention, which is winning, and what to do next.

    • Visibility score per app — a popularity-weighted rank index that makes
    • Needs attention — a triage list that surfaces apps losing visibility,
    • Top movers, weighted by impact — climbs and drops ranked by the
    • Top opportunities — the best discovered keywords across your whole
    • A per-app table you can shape — sortable, with the columns you care

    Find it in the sidebar under Dashboard. Available on the Agency plan.

  47. Fixed

    Subscribe links land on the plan picker

    Every Subscribe now button — the trial-ended card, the "your trial ends soon" banner, and the "manage subscription" link in API keys — pointed at /settings, which forwards to the Account tab. You had to find the Plan tab yourself before you could subscribe.

    They now open the plan picker directly, with the monthly/annual choice and both plans in front of you.

  48. New

    Team seats for Agency plans

    The first of the Agency plan's team features is live: team seats.

    Agency plans include 5 seats — you plus four teammates. Invite them by email from Settings → Team, and choose their access level:

    • Members get full access to keyword research, rank tracking, and
    • Viewers get read-only access: dashboards, rankings, and reports, with

    Every seat can also be limited to specific products — invite a client with a viewer seat scoped to their app, and that's all they'll ever see.

    Billing, API keys, and team management stay with the account owner. Invitees follow an email link, sign in (or create a free account), and land straight in your workspace.

    Portfolio rollup, bulk keyword operations, and white-label client reports are next on the Agency roadmap.

  49. New

    Visibility score & share of voice on your dashboard

    Your product dashboard now leads with two numbers that summarize search performance, each with its own 30-day timeline chart:

    • Visibility — your reach: each tracked keyword contributes its search
    • Share of voice — your capture rate: visibility divided by the total
    • Honest trends — the 7-day deltas compare only keywords that were
  50. New

    New Agency plan — for studios and agencies running a portfolio

    Sonar started as a tool for one developer with one app. A lot of you now run portfolios — dozens of apps, thousands of keywords, several markets, sometimes on behalf of clients. The single plan was never designed for that, so there's now a second one.

    Agency — $99/month or $990/year

    Everything in the Indie plan, plus — available today:

    • 50 apps and 10,000 tracked keywords
    • REST API at 5,000 requests/day

    And rolling out over the coming weeks:

    • 5 team seats
    • Portfolio rollup — ranks, movement and coverage across every app in one
    • Bulk keyword operations across your whole portfolio
    • One alert digest for everything, instead of a separate email per app
    • Priority rank refresh
    • White-label client reports and scheduled exports

    If you subscribe now, you get each of those the moment it ships — at the same $99. Agency subscribers also get a direct line on what ships first: tell us what your workflow needs and it moves up the list.

    What changes for the Indie plan

    The $19 plan keeps every feature it has today — all countries, unlimited history, daily rank tracking, competitor and gap analysis, the API, CLI and MCP. It's now sized at 10 apps and 2,500 keywords, with unlimited competitors on top of that. Competitor tracking is never capped on any plan.

    If you're already subscribed, nothing changes

    Every account that was active or on trial today is grandfathered with unlimited apps and keywords, permanently. These limits apply to new signups only. If you're already tracking more than the new numbers, you keep all of it — you don't need to do anything, and your price doesn't change.

    Need more than the Agency plan covers? Get in touch and we'll sort out something that fits.

  51. Fixed

    Consistent \">200\" rank everywhere a rank is shown

    When an app falls below the trackable window (the stores return roughly the top 200 results), the rankings list has always shown it honestly as >200 (was #N). But two other surfaces still presented the last-known rank as if it were current — thanks to the user who reported the mismatch:

    • Keyword detail popup — the "Your Rank" row now shows >200 (was #N) with the last-seen date in the tooltip, instead of a confident stale rank.
    • Rank sparkline — the trend sparkline on the Rankings page now greys out and switches to a dashed line when the series ends at a last-seen rank rather than a live one, with an explanatory tooltip.

    One rule, every surface: a rank is only shown as current when your app was in the most recent search results.

  52. Improved

    Alert emails now show store and country for every rank change

    If you track the same keyword on both the App Store and Google Play — or across several countries — the daily alert digest used to leave you guessing which one actually moved. No more:

    • Store + country on every rank line — each rank drop, gain, top-10 change, and new ranking now carries its market, e.g. ConjuGato fell from #5 to #11 for "learn spanish" (App Store · 🇫🇷 FR). The in-app alerts feed shows the same labels.
    • One line per keyword, not one per country — when the same keyword moves in several countries on the same store, the digest collapses them into a single compact line: fell for "learn spanish" on App Store: 🇬🇧 GB #8→#15, 🇺🇸 US #12→#20. Tracking a keyword in 30 markets no longer means 30 near-identical rows on a volatile day.
    • Weekly report too — the "Your week in ASO" email now labels each app section with its store and each top mover with its country flag, so same-named iOS and Android listings (and the same keyword across markets) are no longer ambiguous.

    Thanks to Ivan for the request!

  53. Improved

    Pick the storefront when you add an app

    Searching for an app — in the add-app wizard, the Add App dialog, when adding a competitor, linking the second store version, or seeding a research project — always looked in the US store. If your app (or a competitor) ships only in China, Japan, Brazil or any other single market, it simply never appeared, and the only workaround was pasting a store URL.

    Every one of those searches now has a storefront picker next to the store toggle. It still defaults to the United States, and the list only shows storefronts that exist on the selected store (China, for instance, is App Store only) — switching stores falls back to the US rather than searching a storefront that doesn't exist.

    The storefront you searched in is carried through to tracking, so an app found in a non-US market is looked up there when it's added, linked, or attached as a competitor.

  54. Improved

    Clearer keyword table for dual-store apps

    Tracking a product on both stores used to mean cramped two-line metric cells and sorting that quietly mixed iOS and Android values. That's gone.

    • Store scope switcher — a new iOS / Android / Both control on the tracked-keywords table. Pick a store to get a clean, flat table with just that store's popularity, difficulty, gap, and rank — sorting does exactly what the column header says. Your choice is remembered.
    • Side-by-side comparison — the Both view now shows an App Store column group next to a Google Play column group, each independently sortable, so cross-store gaps ("#5 on Google Play, unranked on the App Store") jump out at a glance.
    • Markets, not "stores" — the country column and filter are now labeled Market across the keyword, rankings, and discovered tables, so "store" always means iOS vs Android.
    • Tidier keyword rows — Source and Branded/Generic badges are now their own columns (with an optional Updated column in the Columns menu), so keyword rows are a single clean line and long terms no longer wrap.
  55. New

    See your listing the way the store shows it

    Character counters tell you a title fits. They don't tell you it gets truncated three words in, because the stores clip by pixel width — 30 characters of "Wi" survive where 30 of "MM" don't.

    The Listing Helper now has a Store preview: your drafted copy rendered inside a phone mockup of the placements that actually decide installs.

    • App Store — the search result cell (one line each for App Name and Subtitle, plus your first three screenshots) and the product page, with the description clipped where Apple shows "more".
    • Google Play — the search result card and the store listing, including "About this app", where your short description is all anyone reads before tapping through.
    • Truncation, measured — when a field is visually cut off in that placement, the preview says so. Those words still get indexed; nobody reads them.
    • Your screenshots, in place — the preview uses what's live on your storefront, and if you've designed a set in Screenshot Studio you can switch to it in one click and see the new shots in the real result cell.

    Everything updates as you type, and the mock search field uses your #1 target keyword — so you're looking at the listing in the exact query it's competing for. There's a store dark-mode toggle too, because half your visitors see it that way.

  56. Fixed

    Mobile: the product switcher list scrolls again

    If you track more than a handful of products, tapping the switcher at the top of the mobile sidebar opened a list that refused to scroll — the apps below the fold were simply unreachable, and the only way to switch was on desktop.

    The mobile sidebar is a drawer, and its scroll lock was swallowing the swipes meant for the list on top of it. The switcher now owns its own scroll behaviour, so the full list of products and research projects scrolls normally on phones.

  57. New

    Autocomplete Simulator: watch the store suggest, live

    Autocomplete is the store's own demand signal — what it suggests is what real users type. The new Autocomplete Simulator (Tools → Autocomplete) puts that signal on screen:

    A phone in your dashboard. Pick a store and country, start typing, and a faithful phone mockup — App Store search tab on iOS, Play Store search on Android — fills with the store's live suggestions on every pause, exactly as a user would see them. There's even a store dark-mode toggle.

    Suggestions you can act on. Next to the phone, every suggestion comes enriched with the popularity and difficulty Sonar already knows, an iOS suggest-priority column, and a Tracked badge for terms already on your list. Copy a term, export the list, or track any suggestion to one of your products in two clicks.

    Click a keyword to see who ranks for it. Any suggestion opens a live results panel — the top 10 apps for that keyword, with the keyword lit up wherever it appears in an app's name or subtitle. One glance tells you how contested the term is and who's titling for it. Apps punching above their weight get an Outlier badge: they hold a top-10 slot with a fraction of the ratings of everyone around them, which usually means they're winning on metadata alone — exactly the listings worth studying.

    Then click the app. Any result opens its full store listing right beside the results: rating, price and in-app purchase range, estimated revenue, category, version and update history, size, screenshots, and the complete description with your keyword highlighted throughout — the whole picture of what a ranking listing actually looks like. Found a real rival? Track as competitor adds it to one of your products and kicks off a keyword scan, without leaving the panel.

    "When does my keyword appear?" Switch to Keyword reveal mode, enter your target keyword, and Sonar probes how many characters a user has to type before the store starts suggesting it — then replays the typing on the phone so you can watch your keyword surface. If it never shows up by nine characters, that's an honest signal too: the store hasn't learned the term yet.

  58. New

    Top Charts: browse the store charts with day-over-day movement

    You can now browse the App Store and Google Play Top Charts right inside Sonar — the full top 100 for any country and category, across Free, Paid and Grossing.

    • Day-over-day movement — every app shows how many spots it climbed or fell since yesterday,
    • Biggest movers & dropped out — spot which apps are surging and which just fell off the
    • Your apps, highlighted — apps and competitors you track are marked in the list, so you can
    • 30-day rank history — expand any row for a mini chart of its recent trajectory. The first
    • Export & API — download any chart as CSV/JSON, or pull it programmatically via

    Find it under Tools → Top Charts.

  59. Improved

    Finding your app just got a lot harder to get wrong

    Every search box in Sonar — the demo dashboard, the add-app wizard, competitor search, the revenue explorer — got the same upgrade:

    • Paste anything that identifies your app. Full store URLs, share links with tracking parameters, links without the https://, bare Apple app IDs like 1313192037, and bundle IDs / Play package names like com.yourco.app all resolve straight to the right app instead of being treated as a search phrase.
    • Pick your storefront. Searches used to be pinned to the US store, so an app published only in its home market was impossible to find by name. There's now a storefront selector next to the store toggle, and a pasted app ID that isn't in your chosen storefront is looked up in the other major markets automatically.
    • Your app instead of its more famous namesake. We now pull a much deeper result list and lift exact title matches to the top, so a small app doesn't get buried under bigger apps that merely share a word.
    • Search by developer name. Can't remember the exact listing title? Search your publisher name and get your whole catalogue back.
    • No more dead ends. If a search comes up empty, you get one-click retries on the other store, by developer name, or in the US store — and transient store hiccups are retried automatically instead of showing "no results".
  60. New

    Pay with PayPal

    PayPal is now a payment option. Starting a trial, subscribing, or buying API credits — PayPal and Link both show up next to the card form, and you can pay with whichever you prefer.

    This is mostly for people outside the US and EU. A lot of banks quietly block international recurring card charges, which means a card that works fine for one-off purchases still fails when a subscription tries to renew. If that's been happening to you, PayPal routes around it entirely.

    Already subscribed? Settings → Manage Subscription lets you update your payment method at any time.

  61. Fixed

    Accurate competitor update dates

    The date shown under each app's version in the Competitors table was the date Sonar first detected the app — so freshly added competitors all appeared to have been "updated yesterday", even if their last real store update was months ago.

    The table now shows the app's actual last-updated date straight from its App Store / Google Play listing, for both your own app's anchor row and every competitor. The date is also included in CSV/JSON exports as a new "Updated" column.

    Thanks to Furkan for the sharp bug report.

  62. NewImprovedFixed

    Listing Helper is now a listing editor

    The Listing Helper grew from a one-shot generator into a proper listing workspace:

    Your live listing is draft zero. The page now opens with what's actually on the store today — name, subtitle, description — with your target keywords highlighted, so you can see your coverage gaps before spending a generation. Every AI draft is a visible improvement over a known baseline, and per-field links let you flip between the live copy and the AI version.

    Edit everything in place. Each field is editable right in the workspace with a live character count, so an over-limit subtitle gets trimmed where you can see it, not in a text editor somewhere else. Hand edits can be saved as drafts, and "Copy all" grabs the whole listing in store-paste order.

    Re-roll one field, keep the rest. Liked the App Name but not the description? The new per-field regenerate rewrites just that field while everything else stays fixed — no more losing good copy to a full re-roll.

    No more blank-canvas start. One tap fills your target list with the best popularity-for-difficulty picks from your tracked keywords, each priority row shows exactly where it lands (#1 → App Name, #2–3 → Subtitle…), and free-form targets can be tracked in one click so they start getting daily ranks.

    Honest coverage for iOS. A keyword that only made it into the description now shows an amber badge instead of a green check — Apple doesn't index the description for search, and your coverage score shouldn't pretend it does.

    Plus the earlier upgrades in this release: the draft history paginates past the first 20 (loading a draft now restores its locale, notes and keywords too), and if you've built a Screenshot Studio set for the app, the workspace previews it in the language of the draft you're viewing.

  63. Improved

    A cleaner Competitors page: live position tabs and a browsable analysis history

    The Competitors page used to be four big numbers and one inline AI analysis stacked above the competitor list. It's now organized into three tabs — Competitors, Competitive position, and AI analyses — so your competitor table is always the first thing you see:

    • Competitive position — Keyword gaps, Winnable now, Threats, and You lead are tabs over real keyword tables: each shows the keywords themselves with country, the best-ranked competitor, both of your ranks, popularity/difficulty, and opportunity (threats show the competitor's rank movement). Click any row to jump to that keyword's detail page.
    • A saved analysis list — every AI analysis you run is kept in a list, newest first, with its posture, date, and a one-line summary.
    • Each opens on its own page — click any analysis for the full opportunity clusters, threats, and strengths, with Newer / Older buttons to page through your history. Running a new analysis drops you right into its page, and the previous ones stay saved so you can compare.
  64. Improved

    Sonar works on your phone now

    Checking your rankings from your phone used to mean fighting a desktop layout — pages scrolled sideways, filters spilled over three rows, and tables cut off mid-column. That's fixed across Keywords and the entire Monitor section:

    • Card views on mobile — tracked keywords, rankings, and competitors now render as compact tappable cards showing the numbers that matter (rank, popularity, difficulty, changes, ratings). Tap a card to open the full detail view — same actions as on desktop.
    • Filters in a bottom sheet — the search box stays up top; everything else (source, stores, thresholds, starred-only) lives behind a Filters button with a badge showing how many are active, plus a Sort by picker replacing clickable column headers.
    • Activity reads as a timeline on mobile — the chronological feed that already worked great on small screens is now the default there.
    • No more sideways scrolling — page headers, tabs, and toolbars fit the screen at any width.

    Desktop layouts are unchanged.

  65. NewImproved

    A cleaner Rank Trend chart

    The Rank Trend chart at the top of the Rankings page got a full refresh:

    • Pick your window — a date range picker (7 days up to all time, or a custom from–to) replaces the fixed 30-day view.
    • Compare periods — overlay the previous period, the same period last year, or any custom start date as a dashed ghost line to see whether you're actually trending up.
    • Full-width chart — the annotations side panel (and the card box itself) is gone, so the chart spans the whole page width. Adding a note now lives in the header ("+ Annotation"), and existing notes appear as a compact chip rail under the chart.
    • A scale that shows movement — the Y axis now fits your actual rank range instead of always starting at #1, so a ±10-position swing reads as a real swing, not a flat line.
    • Less chrome, more signal — horizontal-only gridlines, tidier weekly date labels, a subtle fill under the average line, and a highlighted dot on the latest value.
    • Annotations that talk to the chart — hover a chip to spotlight its marker; click it to read, edit, or delete the note. Detected app changes (new versions, metadata edits) show alongside as read-only chips.
  66. NewImproved

    AI-powered competitor keyword discovery

    Competitor keyword scans just got a complete overhaul. The old scan pulled a top-30 sample from autocomplete and stopped there; the new one runs the same AI-first discovery funnel your own apps get.

    What's new:

    • Suggested competitors — the Competitors tab now pre-populates suggestions instead of starting empty: apps that already share the search results of your tracked keywords ("ranks on N of your keywords"), plus similar apps from the store. Add them all with one click, add one by one, or dismiss the ones that don't fit — searching manually still works as before.
    • AI-generated competitor keywords — Sonar reads the competitor's full store listing and generates the search terms it's optimized for, including its brand queries and derivatives ("… alternative", "apps like …"). Those are exactly the gap opportunities the old scan couldn't see.
    • Automatic, from the moment you add a competitor — adding a competitor now kicks off discovery in the background; no button pressing required. Scans also refresh weekly on their own, so gap data stays current instead of freezing at the day you scanned.
    • Everything is surfaced, with a Relevance score — instead of silently filtering, every verified competitor keyword is shown alongside an AI relevance score (0–100 vs your app), as a sortable column in both the competitor view and the Discovered tab. Sort by relevance to focus on winnable gaps, or ignore it to see the competitor's full keyword footprint.
    • Live progress — the competitor panel shows "Discovering N more…" while background verification runs, and new keywords stream in as they're confirmed with real popularity, difficulty, and both apps' ranks.

    API users: POST /api/v1/competitors/:id/scan now returns generated / queued / verified_now counts — the scan responds in seconds and verification continues in the background. The CLI and MCP tools are updated to match.

  67. New

    App Store Connect integration: your real downloads and proceeds, next to your rankings

    Rankings tell you where you stand; your sales reports tell you what it's worth. Sonar can now pull both into one place:

    • Connect in two minutes — create an API key in App Store Connect (Users and Access → Integrations, "Sales and Reports" role), paste it under Settings → Connections, and Sonar verifies it with Apple on the spot. Your key is stored encrypted and only ever used server-side to fetch your reports.
    • A new Performance page — once connected, an App Store Connect section appears in the sidebar. For each product you'll see 30 days of daily downloads and re-downloads, in-app purchase units, approximate proceeds in USD, and your top countries.
    • Fresh every day — Sonar syncs your daily sales reports automatically (with a 30-day backfill the moment you connect), so the chart is always ready when you are.
    • Private by design — this is your first-party data, visible only to your workspace. Disconnecting deletes the stored key and every pulled report.
  68. New

    Beatable keywords, SERP outliers, and downloads-at-#1 estimates

    Experienced ASO buyers don't trust any tool's opaque difficulty score — they read the raw SERP signals: who title-matches the keyword, and how strong the apps in the top 3 really are. Sonar now reads them for you:

    • Beatable badge — keywords where a top-3 spot looks winnable get a green Beatable badge right next to the keyword (table + detail page). Hover it for the evidence: "the #3 app has just 138 ratings against a 40K median, and only 2 of the top 10 have this keyword in their title." The full breakdown is also on the API as difficulty_breakdown, and the CLI marks beatable rows in the keywords table.
    • SERP outliers, with a one-click follow-up — apps holding a top-10 slot with 10x less social proof than the rest of the results are flagged with an amber Outlier badge in the SERP view (and a dot next to the keyword). These apps are out-ranking their strength — almost always strong metadata. Click the badge and hit "Track as competitor & scan": one click tracks the app as a competitor and kicks off the keyword scan that reveals everything it ranks for.
    • Downloads at #1 — iOS popularity scores now translate into something you can reason about: hover any popularity bar to see the estimated downloads/day the #1-ranking app gets from that keyword (also available as an optional table column, on the free app snapshot, and as est_downloads_at_1 on the API). A rough order of magnitude, not a forecast — but "~120 downloads/day" beats "SP 34" when you're picking targets.
    • A much roomier keyword panel — clicking a keyword now opens a wide three-column panel instead of the narrow drawer: metrics (including the new downloads estimate and Beatable evidence), 30-day trend charts with proper date axes, competitor ranks, and the full search results — all in one view, matching the keyword detail page.

    Badges populate as each keyword gets its next daily measurement, so expect them to fill in over the first day.

  69. New

    Competitive landscape: AI competitor analysis on the Competitors page

    Competitor research used to mean digging through raw keyword lists one competitor at a time. The Competitors page now opens with the whole picture:

    • Live competitive stats — always fresh, on every visit: keyword gaps (they rank, you don't), gaps that are winnable right now (low difficulty, real demand), competitors climbing on your tracked keywords over the last two weeks, and keywords where you outrank everyone.
    • AI competitive analysis — one click groups your gaps into named opportunity clusters ("Sleep sounds & white noise — 8 keywords, low difficulty, one competitor owns it") with a why-now explanation and full metrics per keyword. Each cluster has a Track all button, so going from insight to rank tracking takes one click.
    • Threat callouts — when a competitor jumps on one of your tracked keywords (say #12 → #4 in two weeks), you'll see it called out with context, including recent listing changes that may explain the move.
    • What changed since last time — re-analyze weekly and the report diffs itself against the previous run: clusters that grew, threats that appeared, positions you've defended.
    • Dashboard heads-up — a compact card on your dashboard surfaces the sharpest fact ("18 winnable keyword gaps — biggest: 'sleep sounds'") and links straight to the full landscape.

    Also available to your agents and scripts: GET/POST /api/v1/apps/:id/competitor-landscape in the API, sonar competitors landscape / analyze in the CLI, and the sonar_competitor_landscape / sonar_analyze_competitors MCP tools.

  70. Improved

    A cleaner Discovered keywords tab

    The Discovered tab used to stack three separate tables ("Keywords you rank for", "Keyword gaps", "Keyword ideas"), each with its own filter bar — filtering or sorting meant repeating yourself three times. It's now a single table with quick views:

    • All / Ranked / Opportunities — flip between everything discovery found, keywords you already rank for, and keywords you don't rank for yet. Each pill shows how many new keywords are waiting in that view.
    • Gaps and ideas are now one "Opportunities" view — both are keywords you could go after; the Source badge (Competitor, AI, Autocomplete, Your listing) still tells you who vouched for each one. Sorted by Opportunity score, best first.
    • One toolbar for everything — search, source, store, and popularity/difficulty filters apply to whichever view you're on, and your column choices are shared too.
    • Clearer bulk actions — the top button is now explicitly "Track all ranked", and the stale-rank counter says exactly what it covers.
    • Product view matches the app view — the cross-store Discovered table now shows the same columns as the single-store one, including Source, Store, Relevance, and Last checked.
    • Metrics explained where you need them — hover any metric column header (Popularity, Difficulty, Relevance, Opportunity…) for a one-line plain-English definition.
    • Dropped the Gap column — it duplicated what the Opportunity score already tells you, but worse: Apple reports a floor value for most keywords' popularity, so Gap showed a misleading wall of negative numbers. Opportunity accounts for that; sort by it instead.
    • Bulk actions match row actions — select keywords and hide or refresh them in one go, not just track. Row actions now live in a tidy ⋯ menu instead of a row of icons.
    • "Last checked" is now accurate for new discoveries — freshly discovered keywords show when their rank was actually verified instead of "never".
  71. Improved

    Flip images in Screenshot Studio

    Select any image layer in Screenshot Studio and you'll find two new toggles in the inspector: Flip H and Flip V. They mirror the image in place — position, dragging, and resize handles keep working exactly as before, and exports match the canvas pixel-for-pixel.

    Handy for pointing a mascot, arrow, or product shot toward your caption instead of away from it. The layout format gains matching flipH / flipV fields on image layers for anyone authoring screenshot sets via the API.

  72. Fixed

    Screenshot Studio keeps PNG transparency

    Image uploads in Screenshot Studio were re-encoded to JPEG to keep layouts small — which silently flattened transparent PNG backgrounds to black. Uploads now detect whether an image actually uses transparency: cut-outs, logos, and mascots keep their transparent background as PNG, while opaque images (like simulator captures) still get the smaller JPEG encoding.

    If you hit this before, delete the affected image layer and re-upload the original PNG — transparency sticks now.

  73. Fixed

    Fresh keyword lookups are reliable again

    If you researched a keyword Sonar had never seen before — via the dashboard, the API, or MCP — the lookup could intermittently fail with a scrape error, while your tracked keywords kept refreshing normally. The failure came in windows: Apple throttles concurrent requests from a shared address, and our request spacing wasn't coordinated tightly enough across serverless instances to stay under that limit at busy moments.

    Two fixes shipped today:

    • Globally coordinated request spacing — every fresh App Store lookup now claims a shared slot before it fires, no matter which server instance handles your request, so aggregate concurrency stays where Apple allows it.
    • Automatic retry through throttle windows — if a lookup still hits a throttled response, it backs off and retries instead of failing your request immediately.

    Fresh keyword research — including the free /your-app snapshot and the keyless API tier — should now return numbers instead of errors, every time.

  74. NewImproved

    See exactly where your numbers come from

    Sonar's iOS keyword Popularity has quietly been the real thing for a while: Apple's own Search Popularity number (5–100) straight from Apple's Search Ads console — not a model's estimate of it. From today, the product actually tells you:

    • Provenance in the table header — the Popularity column's info card now says it plainly: on iOS the value is Apple's own Search Popularity, reported by Apple Search Ads, not an estimate (Apple floors many niche terms at 5; our proxy model disambiguates those, and Android values are Sonar's calibrated estimate).
    • popularity_source in the APIkeywords/search, keywords/metrics, apps/:id/keywords, and competitors/:id/keywords responses now include popularity_source: "apple" | "proxy" next to popularity_proxy, so scripts and agents can tell reported data from estimated data.
    • A new How we check our data page — the validation work we previously kept internal is now public: iOS rankings verified against independent ground-truth App Store rankings (within ±2 positions through the top 20, exact #1 agreement on every query tested), and the Android popularity estimator calibrated against real Apple Search Popularity for the same keywords.
    • How scores work rewritten — it now leads with what makes the iOS number different: when ASO tools disagree on iOS popularity, the others are estimating the number Sonar reports.
  75. NewImproved

    Detected competitors in the wizard, and your first discoveries by email

    Two changes to make the first days with Sonar show real data faster:

    • Detected competitors, one click — the Competitors step of the add-app wizard now leads with the competitors Sonar detected for your app: add them all at once, add them one by one, or dismiss the ones that don't fit (a new suggestion takes their place). Adding your own by search is still right below. Tracking competitors from day one is what powers gap analysis and competitor alerts — now it takes one click instead of five searches.
    • "We found N keywords for your app" — shortly after you add an app, Sonar's keyword discovery runs automatically in the background. Trial users now get a short email with the top opportunities it found — popularity and difficulty included — instead of having to come back and check.
    • No surprise charges — before a trial converts to a paid plan, you now get a heads-up email with your week in review: rank movements, what you're tracking, and what discovery found — plus a one-click link to manage or cancel. No fine print, no guilt trips.
  76. New

    Try the API and MCP server with no account at all

    You can now try Sonar's data without signing up — no account, no API key, no card:

    • Free anonymous endpoints — app search, app lookup, ASO score, keyword extraction, and keyword suggestions work with no Authorization header at all (shared allowance of 30 requests/day per IP).
    • A taste of keyword metrics — difficulty + popularity for up to 5 keywords/day per IP, so you can see the numbers that matter before paying anything.
    • Works everywhere — the free tier lives in the API itself, so it works from curl, the MCP server in Claude Desktop/Claude Code/Cursor, and any agent framework. Install @sonarapp/mcp with no key and ask your agent about ASO.

    When you hit the free limit, the error tells you exactly how to continue: signing up is free and comes with 50 API credits, and the Full plan includes 1,000 requests/day plus rank tracking, competitor analysis, and the rest of Sonar.

  77. New

    Hosted MCP endpoint — connect AI agents with zero install

    Until now, connecting an AI agent to Sonar meant running the @sonarapp/mcp npm package locally. That works great in Claude Code or Cursor — but web-based clients like claude.ai remote integrations can't spawn local processes.

    The same 32-tool MCP server is now hosted at https://trysonar.app/mcp (streamable HTTP). Point any MCP client at it and authenticate with your existing API key as a bearer token:

    claude mcp add --transport http sonar https://trysonar.app/mcp --header "Authorization: Bearer aso_..."

    Keyword research, rank tracking, review mining, competitor gap analysis, and workspace management — same tools, same plans and scopes as the API, nothing to install or update. The npm package keeps working exactly as before; use whichever fits your client. Setup details in the MCP docs.

  78. Improved

    A faster free snapshot and a smarter demo

    A round of improvements to the "see it with your app" experience for everyone exploring Sonar before starting a trial:

    • The free snapshot loads roughly twice as fast. We cut the number of store round-trips needed to compute your ASO score, keyword metrics, and live ranks — the report now streams in noticeably sooner.
    • Sonar remembers your app. Once you've picked your app, the demo greets you with it — its icon, a personalized banner, and a one-click path back to your snapshot. This now survives cleared browser data and works across devices.
    • One search, everywhere it matters. The find-your-app search now lives directly in the demo banner and shows up wherever you might want it, so getting to your own numbers is never more than a click away.
    • Demo checklist fixes — the progress count now matches the list, every step is clickable, and there's a new "Read review insights" step.
    • Visual polish — consistent brand coloring across badges and alerts, straighter cards, and better-aligned report tips.
  79. New

    Free app snapshot before you start a trial

    Exploring Sonar with demo data is fine, but nothing beats seeing your own app's numbers. Before starting a trial you can now:

    • Find your app right from the demo dashboard — a search box sits at the top of the page (App Store or Google Play), no wizard to click through.
    • Get a free snapshot — your live ASO score with the two biggest things holding your listing back, plus the top keywords from your metadata with real popularity, difficulty, and your current rank in the store.
    • See what's behind the trial — the rest of your extracted keywords, rank history, and competitor gaps unlock the moment you start the 7-day trial, and the app you picked is tracked automatically after checkout.
  80. Improved

    Low-volume popularity estimate now in the API, CLI & MCP

    Last week the dashboard started showing Sonar's own estimate next to Apple's floored Search Popularity, so long-tail iOS keywords stuck at 5 could finally be told apart. Now the same signal flows through every programmatic surface.

    • New popularity_proxy field — keyword responses from GET /keywords/metrics, GET /keywords/search, GET /apps/:id/keywords, and GET /competitors/:id/keywords now include popularity_proxy. It's set only when Apple censors an iOS keyword's real popularity to its floor (5); otherwise it's null. The CLI table renders it inline as 5 (58), and the MCP tools pass it straight through.
    • Every floored keyword gets an estimate — when a lookup returns a censored 5 that doesn't have an estimate stored yet, Sonar now computes and saves one in the background, so repeat calls return the fuller picture.
  81. New

    Screenshot Studio: design store screenshots in Sonar — plus a free public generator

    Your keyword research tells you what to say — Screenshot Studio is where you say it. Sonar now includes a full design workspace for store screenshots, built for shipping listings, not just drawing pictures:

    • A real canvas editor — layers, undo/redo, zoom and pan, snap guides, keyboard shortcuts, inline text editing. Text, shapes, images, and realistic vector device frames (iPhone with Dynamic Island, Android, tablets) with flat and 3D-tilted presets.
    • 18 starter templates — single-feature heroes, panoramic sets, caption-first layouts, and full 5-shot store-ready sets, all with live previews for your exact device size. Every canvas matches App Store Connect and Play Console pixel requirements, so exports upload without resizing.
    • One-paste localization — the source design owns the layout; each locale only overrides text and captures. Add a language, paste all its translated captions in one go, and export a ZIP with one folder per locale.
    • AI images — generate brand-aware background and hero artwork right on the canvas, seeded from your app's store listing and brand color.
    • Duplicate across devices — clone a finished set to another device size in one click; positions, fonts, and translations scale along.
    • Built for AI agents — the full studio is scriptable via the REST API and 11 new MCP tools, so Claude Code (or any agent) can design, localize, and export your screenshot sets end to end. Everything an agent creates appears instantly in the dashboard for human review.

    And because everyone needs store screenshots — not just subscribers — we made a free public version: the same editor, no account, no watermark, running entirely in your browser. Nothing you design there is uploaded or stored; saving sets, AI images, and agent access are what the paid plan adds.

  82. New

    Re-run discovery for new markets on demand

    Discovery used to run automatically and then top up on a schedule — which meant a market you just added could wait a while before its own ideas showed up.

    • "Discover keywords" button — sitting next to Add Keywords on the Keywords page, it opens a market picker so you can choose exactly where to research — including a country you don't track yet, to scout a new locale before committing to it.
    • Live progress — after you start, the dialog shows the run happening: a counter of new keywords found ticks up and the Discovered tab fills in. Close it whenever you like — discovery keeps running in the background.
  83. NewImproved

    Keyword ideas: discovery goes wide

    Keyword discovery used to stop at what your app already ranks for. Now it also finds what you should rank for:

    • Keyword ideas — a new section on the Discovered tab with high-potential keywords surfaced by AI research and store autocomplete: user intents, problem phrases, audience niches, and long-tail qualifiers your app doesn't rank for yet. Every idea arrives with verified popularity and difficulty, and nothing is tracked (or counts against your daily refresh) until you promote it.
    • Opportunity score — a 0-100 score combining demand and competition, with a boost for keywords you already rank 4-30 for (where a metadata push pays off most). It's the default sort for ideas and gaps, and a sortable column across the Discovered tab.
    • Deeper, AI-led research — discovery now leads with AI that studies your app's listing and your competitors' to generate up to 500 candidates per app, then uses store autocomplete to confirm the ones real users actually type. Ideas are filtered for genuine relevance to your app — not just word overlap — so you get "link in bio" and "mobile website builder", not "shake shack". Results keep streaming in over the following hours as the research queue works through the backlog.
    • Instant results from shared research — keywords already measured recently are resolved instantly instead of re-scraped, so discovery gets faster as Sonar's keyword corpus grows.
  84. Improved

    Sharper popularity for low-volume keywords

    Apple only reports Search Popularity down to a floor — below that, every keyword comes back as the same minimum value. For long-tail terms that meant a whole column reading the same low number, with no way to tell a near-miss from a truly dead keyword.

    • Two numbers, one honest picture — where Apple reports the floor, the popularity cell now shows Apple's value with Sonar's own estimate in brackets next to it (for example 5 (58)). The first number is Apple's real measurement for comparing across keywords; the bracketed number adds resolution within that low band. A tooltip explains both.
    • Meaningful sorting — when you sort by Popularity, floored keywords are ordered among themselves by that finer estimate instead of collapsing into one big tie — while always staying below the keywords Apple actually measured as more popular.
    • Nothing changes for measured keywords — keywords Apple reports above the floor, and all Android keywords, look exactly as before.
  85. Improved

    Consistent \"Rank\" terminology across the app

    The same number — where your app sits in the search results for a keyword — was labeled "Position" in some places and "Rank" in others. It's now "Rank" everywhere:

    • Keyword, discovered-keywords, and matrix tables: the Position column is now Rank, and the filter reads All ranks.
    • The keyword detail chart is titled Rank, and the Rankings trend chart describes itself as average rank.
    • Alert thresholds now read "drops/climbs at least 5 ranks".
  86. NewImproved

    Research projects: both stores + push keywords to your apps

    Research projects got two big upgrades:

    • Both-stores projects — When creating a project you can now pick iOS, Android, or Both (the toggle now shows the store logos, too). In a both-stores project every keyword you add gets popularity and difficulty computed separately for the App Store and Google Play, with a Store column and filter to compare side by side. The Discover tab and "Seed from app" get a store toggle so you can pull ideas from either store into the same project.
    • Add keywords to your apps — Every keyword row now has a checkbox. Select the winners and hit "Add to app" to start tracking them for one of your apps — the picker only offers apps on the matching store, so iOS keywords can't accidentally land on your Android app (and vice versa).

    Also fixed: switching between research projects now updates the project name and icon at the top of the page immediately.

  87. NewImproved

    Revenue estimates now show their confidence

    Revenue estimation from public store signals is inherently uncertain — and how uncertain depends a lot on the app. A subscription app with a public install count and named IAP tiers is far more estimable than a free game with no pricing data. The estimate now tells you which case you're looking at:

    • Confidence badge — the Revenue page shows a High / Medium / Low grade next to every estimate. Hover it to see exactly why: which inputs were solid (public install counts, top-grossing chart position, named subscription tiers) and which were guesses (review-derived installs, missing IAP data, unknown release date).
    • Games are graded honestly — per-user revenue in games spans orders of magnitude depending on geography and monetization strategy, which public listings don't reveal. Game estimates are now marked low confidence until our games model is calibrated against verified revenue.
    • In the API tooGET /api/v1/apps/revenue responses include confidence and confidence_factors, the CLI prints them with sonar revenue, and the MCP tool passes them to your AI agents so they never quote an estimate without its uncertainty.
  88. Improved

    Snappier charts, sheets, and progress bars

    A motion polish pass across the whole app:

    • Charts render instantly — the dashboard visibility chart and keyword history charts no longer replay a 1.5-second line-draw animation every time you visit. Your data just appears.
    • Faster keyword detail sheet — the slide-in panel now opens in 300ms with an iOS-style easing curve instead of the old, slower fade-and-slide. Small change, but you open it dozens of times a day.
    • Reduced motion, respected everywhere — the difficulty gauge count-up and remaining pulse effects now honor your system's reduced-motion preference.
    • Smoother progress bars — usage meters and sliders animate on the GPU, so they stay fluid even when the page is busy.
  89. Improved

    Far more accurate Android popularity scores

    Android popularity scores just got a major accuracy upgrade. We calibrated the estimator against real Apple Search Popularity for a benchmark keyword set spanning brands, utilities, niches, and concept terms — average error dropped by ~30% and rank ordering improved sharply.

    What changed under the hood:

    • Play autocomplete demand is now the primary signal. We measure how few typed characters it takes for a keyword to surface in Google Play's own search suggestions — a direct reflection of what people actually type into Play search. Brands surface after 1–3 characters; terms nobody searches surface late or never.
    • Big incumbent apps no longer inflate dead keywords. Previously, a keyword like "circadian rhythm" scored ~29 because huge sleep apps rank for it — even though almost nobody types it into an app store. Keywords absent from Play autocomplete are now floored regardless of how large the apps ranking for them are, so popularity means search demand, not market size.
    • Applies everywhere — daily rank tracking, keyword refreshes, newly added keywords, and the public API all use the new scoring. Tracked keywords pick up recalibrated values with their next daily refresh.

    Expect popularity to drop for broad concept keywords (that's the correction working) and stay stable for genuine app-intent terms like "sleep tracker" or "habit tracker".

  90. New

    Starred keywords: mark your targets

    Keyword research produces long lists — but only a handful of terms are the ones you actually decide to go after. You can now mark those:

    • Star any tracked keyword — hover a row on the Keywords or Rankings page and click the star. Starred keywords keep a visible amber star so your targets stand out at a glance.
    • "Starred" filter — one click in the filter bar narrows the table to just your target keywords. The filter is remembered between visits, so you can live in your target view.
    • Works everywhere — starring on the product (cross-store) view marks the keyword on both iOS and Android. CSV/JSON exports include a Starred column.
    • API, CLI, and MCP supportPATCH /api/v1/tracked-keywords/:id with { "starred": true }, sonar keywords star/unstar in the CLI, and a new sonar_star_keyword MCP tool so your AI agents can manage targets too.
  91. New

    VAT numbers on invoices: reverse charge for EU businesses

    Sonar invoices are now fully business-ready:

    • Add your VAT number at checkout — tick "I'm purchasing as a business" and enter your VAT ID. It's validated against VIES and printed on every invoice.
    • Or add it any time from Settings — open Settings → Plan → Manage Subscription → Billing information to add or update your company's VAT number for future invoices.
    • Automatic reverse charge for EU businesses — customers with a valid EU VAT ID outside Slovakia get invoices with 0% VAT and the required "Reverse charge" note, so your accountant can book them correctly.
    • Our VAT ID on every invoice — Sonar's own tax identification now appears on all invoices and receipts.
  92. NewImproved

    Dashboard visibility chart: rank distribution over time

    Average rank is a misleading progress metric: start tracking harder keywords and your "average" gets worse even while your actual visibility grows. The dashboard now shows the honest picture:

    • Rank distribution trend — the dashboard's hero chart is now a stacked area of how many keywords rank Top 3, 4–10, 11–30, 31–100, and 100+ each day over the last 30 days. The stack's total height is your ranked-keyword count — a number that only grows when visibility genuinely improves.
    • Popularity distribution — flip the chart to Distribution view to see your ranked keywords split by popularity bucket, compared against 30 days ago with per-bucket growth. Watch yourself break into higher-volume terms over time.
    • Starred filter — one click scopes both views to just your starred target keywords, so the chart tracks the strategy you actually decided to pursue.
    • "Ranked" stat card — the Avg Rank stat was replaced by your ranked-keyword count with a 7-day delta, for the same reason.

    Thanks to Antony for the sharp feedback that shaped this one.

  93. Fixed

    Billing fix: declined cards can no longer create a duplicate subscription

    Two fixes to the trial-to-paid conversion flow:

    • "End trial now" is atomic — if your card is declined when converting early, nothing changes: your trial keeps its remaining days, no invoice is created, and you can simply update your card and try again. Previously a decline could leave the subscription in a failed-payment state that kept retrying the old card.
    • Re-subscribing cleans up after a failed attempt — if a trial-end charge fails and you later subscribe again with a different card, the failed prior attempt is now cancelled and its unpaid invoice voided automatically. You'll never see a leftover "payment failed" subscription in the billing portal next to your active one, and there's no way the old card can be charged later.
  94. Improved

    Faster keyword research API and an instant landing page

    A performance pass on the hottest paths:

    • Bulk keyword lookups got much faster on cold data/api/v1/keywords/search and /api/v1/keywords/metrics (and the matching CLI/MCP tools) now resolve Apple Search Popularity for the whole request in a single batched call instead of one call per keyword. A bulk request for 25 uncached iOS keywords previously stacked up to 25 sequential Apple round-trips; it now makes one. Cached lookups were already fast and are unchanged.
    • Leaner response path — the database writes that cache freshly computed keyword metrics are now batched too, so fresh-compute responses flush sooner and burn less compute per request.
    • Instant landing page — trysonar.app is now served as a static page from the CDN instead of being rendered on every visit. Time-to-first-byte dropped from a full server render to single-digit milliseconds.
  95. Fixed

    Rank tracking fixed for apps added via the API

    If you added an iOS app through the API (or MCP/CLI) using its numeric App Store ID — like 6476565689 instead of the bundle ID — its keyword positions showed up in keyword SERP data but never in the app's own rank history, so the dashboard showed "Your Rank: --" forever.

    That's fixed:

    • Numeric IDs are now normalized — whatever ID form you pass when adding an app or competitor (numeric App Store ID, bundle ID, or store URL), it's resolved to the canonical ID internally, so rank tracking always matches.
    • Existing apps repaired — every affected app has been migrated automatically. No action needed on your side.
    • History backfilled — past top-10 positions were reconstructed from stored SERP snapshots, so your rank charts show history from the day the keyword was first tracked, not from today.
  96. ImprovedFixed

    Find your app before you start your trial

    If you signed up but hadn't started your trial yet, searching for your app in the Add your app wizard silently showed "No results found" — even for apps that are very much on the stores. That's fixed, and the whole flow got smarter:

    • Search works in demo mode — look up your app by name or store URL while you're still exploring the demo, no card required.
    • Pick your app, then start your trial — selecting your app shows it (icon, name, rating) with a one-click path to start your free trial, and the trial page pictures your app in the #1 spot it's there to win.
    • Zero re-work after checkout — the app you picked is added to your dashboard automatically the moment your trial starts, and the setup wizard continues right where you left off.
    • Clearer errors — when something does go wrong during a search, you now see the actual reason instead of a misleading "No results found".
    • A fresh coat of paint on pricing — the trial page, homepage pricing, and in-app paywalls now share a cleaner card design, and the billing toggle shows exactly how much annual saves.
  97. Improved

    Sharper revenue estimates: real subscription pricing on iOS

    Revenue estimates just got a meaningful accuracy upgrade, especially for subscription apps:

    • Real IAP data on iOS — we now read each app's in-app purchase list (item names and prices) straight from its App Store listing. Free iOS apps used to be treated as generic freemium with category-average pricing; subscription apps are now detected as such and estimated with their actual tiers.
    • Billing-period aware — "Pro Weekly $4.99" and "Premium Yearly $59.99" are converted to their true monthly value, so weekly-priced apps no longer look 4x cheaper than they are.
    • International price formats — IAP ranges like "0,99 € – 109,99 €" are now parsed correctly on every storefront.
    • Calibrated against verified revenue — the estimator is now benchmarked against a set of apps with independently verified monthly revenue, so future accuracy improvements are measured, not guessed.

    Estimates remain directional — public signals can't capture everything — but subscription apps, the majority of top-earning apps today, now get a model that reflects how they actually monetize.

  98. Fixed

    Removing a competitor now cleans up after itself

    Previously, removing a competitor (or deleting a product that referenced one) could leave the competitor app tracked invisibly in the background. Now teardown is complete:

    • Full cleanup — when you remove a competitor and no other app of yours references it, the competitor and its tracked data are removed too. If another app still uses it as a competitor, nothing changes.
    • Applies everywhere — dashboard, API (DELETE /api/v1/products/:id/competitors/:competitorId), CLI, and MCP all behave the same way.

    Heads-up: removing a competitor's last reference deletes its tracked keyword list for your workspace — re-adding the competitor later starts fresh.

  99. Improved

    Apps now default to their real market

    Adding an app by name used to default every product to the US / English storefront. For a localized app — say a Russian period tracker or a Japanese budgeting app — that meant keyword discovery ran against the wrong market and came back nearly empty.

    • Automatic primary-market detection — when you add an app, Sonar reads its store listing and defaults the keyword market to the app's home country (e.g. a Cyrillic listing → Russia, a Japanese listing → Japan). Discovery, suggestions, and rank tracking all run in that market from the start.
    • Suggested extra markets — if your app is localized into other languages, Sonar now offers those storefronts as one-click chips in the Keywords step, so you can start tracking, say, the US and German markets too without hunting through a country list.
    • Still yours to change — the detected market is shown in the Keywords step, and you can add or swap markets at any time.

    Pasted regional store links (a /de/, /jp/ URL) keep working exactly as before — Sonar uses the storefront in the link.

  100. Improved

    Store column on discovered keywords

    The Discovered keywords tab now has a Store column showing the country/locale each keyword was found in — the same column the Tracked tab already had. It's sortable and can be toggled from the Columns menu, so it's easy to tell at a glance which market a discovered keyword belongs to.

  101. Improved

    iOS keyword popularity now reflects real App Store demand

    iOS keyword popularity now uses Apple's official Search Popularity instead of our in-house estimate. The numbers you see line up with real App Store search demand, so you can prioritize keywords with confidence.

    • More accurate scores — popularity reflects how often people actually search a term on the App Store, not an approximation.
    • Better prioritization — sort and filter on numbers you can trust to decide which keywords are worth chasing.

    This applies to iOS keywords; Android popularity is unchanged.

  102. New

    Seed a research project from an app

    Research projects no longer start as a blank box you have to fill by hand.

    • Seed from an app — open any research project, click Seed from app, and search for an app by name or paste a store URL. Pick up to three apps — a competitor, or that viral app you'd love to take traffic from — and Sonar finds the keywords they actually rank for and adds them to your project.
    • Scored on arrival — seeded keywords land with popularity, difficulty, and gap already filled in, so the best opportunities are obvious at a glance.
    • Best opportunities first — the project keyword table now sorts by Gap (popularity minus difficulty) by default, floating the high-reward, low-competition terms to the top.

    Great for sizing up a niche fast or planning a copycat: see what's working for an app, then go capture it.

  103. ImprovedFixed

    Find more keywords you already rank for

    We rebuilt how Sonar finds the keywords your app already ranks for.

    • Wider discovery — discovery used to expand a handful of seed terms through store autocomplete and little else. It now pulls candidates from your listing (app name, subtitle, description), AI-suggested intent terms, and autocomplete — then verifies each one against the live App Store / Google Play results before showing it. More real ranked keywords surface, especially for smaller or newer apps.
    • Ranked vs. gaps — the Discovered tab now has two clearly labelled sections: Keywords you rank for and Keyword gaps (terms your competitors rank for that you don't — yet). Track a gap to start monitoring it.
    • Fixed the count — the "Discovered" tab badge could claim, say, 120 keywords while the table showed only a few. The badge now always matches exactly what's listed.
    • Keeps looking — discovery no longer runs only once when you add an app. Sonar now re-checks your apps on a schedule and surfaces keywords you've started ranking for since you added them.

    Open any product's Keywords → Discovered tab to see the new sources and sections.

  104. Fixed

    Add apps from any App Store country

    If your app isn't sold in the US App Store, adding it used to fail with an error after you hit Select.

    The Add App wizard now tracks each app in the storefront you found it in — so a German (/de/), French, or any other regional App Store link works on the first try, and its keyword market defaults to that same country.

  105. NewImproved

    Understand your Popularity & Difficulty scores

    Wondering what those Popularity and Difficulty numbers actually mean? Now you don't have to guess.

    • In-table explainers — hover the (i) next to the Popularity, Difficulty, and Gap column headers for a one-line definition of each score.
    • New methodology pageHow keyword scores work explains what each 0–100 score measures, how to read them together, and why different ASO tools show different numbers for the same keyword.

    Short version: use the scores to rank keywords against each other inside Sonar — high Popularity with low Difficulty (a positive Gap) is the sweet spot.

  106. NewImproved

    Untrack, delete, and manage alerts from the API, CLI & MCP

    The write API used to be one-way: you could create products, track apps, and add keywords, but cleanup meant clicking through the dashboard. Now the API can undo everything it sets up:

    • Untrack keywords — remove a single tracked keyword, or bulk-untrack a whole app's keywords in one call (handy after a bulk add that landed on the wrong app).
    • Untrack apps & delete products — remove an app (and its keywords/competitor links) or delete an entire product.
    • Remove competitors — drop a competitor from a product.
    • List products — see your products with their linked store versions and competitor counts, so agents can discover the IDs they need.
    • Alert rules over the API — list, create/update, and delete alert subscriptions (rank drops, review spikes, competitor changes, and more) without the dashboard.

    Everything is available across all three surfaces — REST API, the sonar CLI, and the MCP server — so AI agents and scripts can manage a workspace end-to-end. See the API docs, CLI docs, and MCP docs.

  107. Improved

    Developers page now covers API, CLI & MCP

    The Developers page (Settings → Developers) is now organized into three clear sections so you can wire up whichever surface you prefer:

    • API — manage your API keys and grab a copy-paste curl example.
    • CLI — install with one command, log in, and run your first query.
    • MCP — drop the ready-made config into Claude Desktop, Claude Code, Cursor, and friends, or use the one-line Claude Code installer.

    One API key works across all three. Each section links out to the full reference docs.

  108. New

    Look up any app's revenue

    The Revenue page now has a built-in lookup. Below your app + competitor comparison, search any app on either store — by name or by pasting a store URL — and instantly see its estimated monthly revenue and monetization model, sorted highest first.

    It's perfect for sizing up an app you're not tracking yet. No setup needed, and it works during your trial and in demo mode.

  109. NewImproved

    CLI & MCP server now cover the entire API

    The CLI and MCP server now have full API parity — everything you can do over REST works from your terminal or from an AI agent:

    • MCP server 0.5.0 (22 tools) — agents can now read your workspace, not just public store data: tracked apps, keyword rank history, detected app changes, SERP history, and competitor gap analyses. Plus two new write tools: keyword notes and competitor keyword scans. An agent can set up tracking and check back on results, end to end.
    • CLI 0.4.0 — new read commands (sonar apps lookup / search / score / extract-keywords / reviews / changes) and write commands (sonar products create / add-app / add-competitor, sonar keywords track / note, sonar competitors scan).

    Write commands and tools need an API key with the write scope — create one under Settings → Developers. Update with npm i -g @sonarapp/cli@latest; MCP setups using npx -y @sonarapp/mcp pick up the new tools on the next session.

  110. New

    Achievements — celebrate and share your ranking wins

    Ranking wins deserve more than a green arrow. The dashboard now has an Achievements grid showing 7 feats for each product — from your first keyword on the board to Page One, Podium, Number One, a 20-spot Climber jump, and holding 5 or 10 keywords in the Top 10 at once.

    Locked achievements stay greyed out with a hint on how to earn them, so you always know what's next. Earned ones light up — and every one is shareable: click it to generate a polished card image for X with the keyword that did it, the rank, and the keyword's popularity and difficulty so people can see it wasn't a layup.

    Building in public but don't want to tip off competitors? Hide the app name, the keyword, or both before sharing — popularity and difficulty stay on the card, so the brag still has receipts.

    Achievements are checked daily against your full rank history, and once earned they're yours forever.

  111. Improved

    Activity Feed Timeline

    The Activity page no longer splits changes into one column per app. It's now a single chronological timeline grouped by day — newest first — so you can scan everything that happened across your apps and competitors in one pass: releases (with version bumps and release notes), metadata edits, screenshot changes, price and category moves.

    Release notes also render cleaner: blank-line padding is collapsed so the 3-line preview shows actual content, with "Show more" for the full notes.

  112. Improved

    Dashboard Redesign

    The product dashboard got a full redesign around one question: is your ASO working, and what should you do next?

    • Rank Trend chart — a 30-day view of your average position across all tracked keywords, front and center. You can finally see movement at a glance instead of decoding counters.
    • Smarter stat cards — Avg Rank now shows how much it moved vs last week, plus new Best Rank (and which keyword holds it) and Top 10 cards.
    • Keyword watchlist — your top keywords with a mini trend sparkline, current rank, and 7-day change. Even in a quiet week, the dashboard always shows something real.
    • Opportunities panel — keywords sitting just off page one, within reach of the top 3, or low-difficulty terms you're not ranking for yet — with new discoveries surfaced alongside.
    • Store health at a glance — your app's rating, ratings count, and live version now appear right in the header.
    • Top Improvements / Biggest Drops only appear when something actually moved — no more empty boxes.
    • Achievements moved to a compact strip (still clickable to share), and dashboard pages now use your full screen width.
  113. ImprovedFixed

    Sharper alerts, international keywords, and a faster dashboard

    A big reliability and performance pass across the whole product:

    Alerts that catch the worst case. Rank alerts now fire when your app drops out of the search results entirely — previously the biggest possible drop was the one that stayed silent. Alert delivery is also fixed for teams tracking the same keywords as another organization: every org now reliably gets its own notifications.

    Keyword tools in every language. Keyword extraction and discovery now fully support non-Latin storefronts — Japanese, Korean, Chinese, Cyrillic, and Arabic keywords are extracted and suggested just like English ones.

    Faster everywhere. The Apps overview, keyword sidebar, and keyword detail pages load with far fewer database round trips, and Android keyword refreshes are gentler and more reliable. Intermittent display errors on cached dashboard views are gone.

    API improvements. GET /v1/apps and GET /v1/apps/:id/rankings now support cursor pagination (see the API docs), invalid requests no longer count against your quota or credits, and credit charges are refunded automatically when a request fails.

    Unsubscribe safely. Email unsubscribe links now show a confirmation page, so overzealous corporate link scanners can't unsubscribe you by accident.

  114. Improved

    Android app data refreshes more often

    We refresh the details for every tracked Android app — rating, latest version, install count, developer info — on a schedule. Until now that ran once a day, and on busy days it couldn't get through every app in its time window, so some apps would drift a day or more out of date before the next run caught them.

    The metadata refresh now runs every 4 hours. It only touches apps that have actually gone stale, so most runs are quick — and anything a run misses gets picked up by the next one a few hours later instead of waiting until tomorrow. In practice your Android app numbers now stay current within hours, matching how fresh the iOS side already was.

    Daily chart-position snapshots (Top Free / Paid / Grossing) are unchanged — those remain a once-a-day reading.

  115. New

    Get alerted when your rankings move

    You can now have Sonar watch your apps and tell you when something changes — instead of checking the dashboard to find out.

    Head to Alerts and switch on exactly what you care about:

    • Rank drops & gains — when a tracked app moves up or down for a keyword (you set how big a move is worth knowing about)
    • Top 10 changes — when an app breaks into, or falls out of, the top 10
    • New rankings — when an app starts ranking for a keyword it didn't before
    • Competitor changes — when a competitor ships a new release, or changes their metadata, screenshots, price, or category
    • Rating drops & review spikes — when an app's rating slips or reviews suddenly pick up

    Everything is off until you turn it on, and matching changes arrive as a single daily email digest — no inbox spam. You can send the digest to a different address (a shared or team inbox) if you don't want it going to your login email. Every alert also shows up in an in-app feed on the Alerts page, so you have the full history even if you mute the emails.

  116. New

    Mark what you changed, right on your charts

    Ever shipped an update and wondered whether it actually helped your rankings? Now you can mark the changes you made and see them right on your charts.

    Add an annotation to any of your apps with a date and a short note — for example:

    • "Shipped v2.0 — new subtitle"
    • "Refreshed screenshots"
    • "Changed primary category"

    Each annotation shows up as a numbered marker on your rank charts, so you can line up what you did against what happened to your ranks:

    • On the new Rank Trend chart at the top of the Rankings page (your average position across all tracked keywords over time)
    • On the keyword detail page's rank and popularity/difficulty charts
    • On the keyword quick-look panel

    Add, edit, and delete annotations inline — they're tied to the app, so a single note appears across every keyword chart for that app.

    You can also pin individual keywords onto the Rank Trend chart — click the line-chart icon next to any keyword in the rankings table to overlay its rank history (up to 6 at once) alongside your average, so you can watch a specific keyword's development up close.

  117. Fixed

    Honest rank states — live, dropped out, or never ranked

    We track your rank by reading the App Store search results each day — but the store only returns the top ~180–200 apps for a query. If your app sits below that, there's simply no position to record that day.

    Until now, the tables would keep showing your last-known rank as if it were current (with a "—0" no-change indicator), and a keyword you'd never ranked for looked the same as a blank. That made a real drop-off impossible to tell from a plateau.

    Now every rank surface shows one of three honest states:

    • #N — you're live in the results
    • >200 (was #N) — you had this rank but have since dropped out of the trackable window (hover for the date you were last seen). On the Rankings table the 1d/7d/30d change columns are blanked instead of showing a fake "no change", and these sort below your live ranks.
    • Not ranked — your app has never appeared in the top ~200 for this keyword

    This applies across the Rankings table, the Keywords table (single app and cross-store), and the opportunity matrix. The "Ranking / Not ranking" filter now treats a dropped-out keyword as not currently ranking.

    Nothing changed about how often we check — your live-ranking keywords update exactly as before. This just stops stale numbers from masquerading as current ones.

  118. Improved

    New keywords get their scores right away

    When you added keywords — to a new app, an existing one, or imported from a competitor — their difficulty and popularity used to stay blank until the overnight refresh ran. That made it hard to judge a keyword right when you cared about it.

    Now those two scores are computed the moment you add the keyword — about a second, for both the App Store and Google Play. A freshly added keyword briefly shows "Calculating…" and the table fills itself in, no refresh needed.

    Exact rank (your app's position for that keyword) still updates on the daily cycle, so it appears a bit later — but difficulty and popularity, the numbers you use to pick keywords, are now instant.

  119. FixedImproved

    iOS keyword rankings are back — and now instant

    Apple changed the App Store search endpoint we relied on for iOS keyword rankings, which stopped iOS ranks, difficulty, and popularity from refreshing. We've moved iOS rank tracking onto Apple's documented Search API and everything is updating again.

    We checked the new source against known-accurate App Store rankings across a wide spread of keywords — broad, branded, and long-tail — and it matched the real ranking order position-for-position through the top results. So your iOS ranks are just as trustworthy as before.

    A bonus from the switch: when you add an iOS keyword, its rank now fills in within about a second, right alongside difficulty and popularity — no more waiting for the overnight cycle to see where your app sits.

    Google Play rankings were never affected.

  120. Improved

    iOS popularity scores + instant reviews on new apps

    Two refinements to keyword and review data:

    • iOS keyword popularity now populates alongside difficulty. Previously many iOS keywords showed a difficulty score but no popularity — that gap is closed, so you get the full picture for every tracked iOS keyword.
    • Reviews load instantly when you add a new app or competitor, instead of waiting for the next scheduled refresh. After that, reviews keep refreshing automatically.
  121. New

    AI Review Insights

    Sonar now reads the last ~90 days of an app's reviews and summarizes them with AI: what people praise, what they complain about (with real quotes), and notable feature requests. Re-run it after 90 days and it compares against the previous summary to show what's improving, persisting, or resolved.

    It works for your own apps and any tracked competitor — so you can see what a rival's users love or hate and turn it into an opportunity. Open it from the redesigned Reviews page (pick an app from the title dropdown, then Analyze reviews), or straight from the Competitors table and any app's detail panel.

    The Reviews page also got a cleaner layout and pagination, so long competitor review lists stay fast.

  122. Improved

    Reviews show full history, not just the last 90 days

    The Reviews browser previously only kept reviews from the last 90 days, so apps with steady-but-infrequent reviews (or competitors in smaller markets) often looked nearly empty. It now stores and shows the full recent review history Apple and Google expose (up to ~500 per app), so you get a real picture of what users say over time.

    AI review insights still summarize the last 90 days so trends stay current.

  123. Fixed

    iOS reviews load reliably

    iOS reviews sometimes came back empty — both in the Reviews browser and when generating AI insights. Sonar now keeps each tracked app's recent reviews continuously synced, so they load instantly and reliably every time you open the Reviews page, no matter the store or country.

    This also makes the Reviews page faster: reviews are read from your synced data instead of being fetched on the spot.

  124. Improved

    Faster onboarding & guided setup

    Getting started is smoother:

    • A guided day-0 welcome helps brand-new orgs pick a path instead of staring at an empty dashboard.
    • The add-product wizard walks you through tracking your first app, with faster tracking and ranked-only keyword discovery.
    • A dedicated New Research Project page makes one-off keyword research a first-class flow.
    • Newly added products are auto-selected in the sidebar so you land where you expect.
  125. New

    Listing Helper — AI-assisted metadata

    Writing your App Store and Google Play metadata is now a guided flow. Listing Helper lets you draft your title, subtitle, and keyword field with:

    • Live character counts against each store's limits
    • Keyword coverage scoring as you type
    • Suggestions pulled from your tracked keywords and competitor listings

    Find it in the sidebar under Listing Helper.

  126. Improved

    Show & hide table columns

    Every data table now has persistent column controls. Toggle the columns you care about — popularity, difficulty, rank, results count, notes — and your selection is remembered across sessions.

    Combined with the new keyword text/regex filter and the Export button now lifted into the top bar, the tables are far easier to slice for your own workflow.

  127. New

    Compare apps & automatic version detection

    A few upgrades landed together:

    • Compare apps dialog — line up your app against competitors side by side.
    • Version change detection — Sonar now records app version changes automatically on each metadata sync, feeding the Activity feed.
    • All reviews, not just low-star — the Reviews page shows the full picture, with country names in the selector (sorted alphabetically).
  128. New

    Scoped API keys & write endpoints

    The REST API now supports product-centric write endpoints. Create products, track apps, add keywords, and trigger competitor scans without touching the dashboard.

    API keys now carry scopes:

    • read (default) — every GET endpoint
    • read+write — POST/PATCH on products, tracked apps, keywords, and competitor scans (Full plan only at issuance)

    Generate scoped keys from Settings → API keys.

  129. New

    Prepaid credits for API access

    API-only users can now buy prepaid credit packs ($10–$100) instead of a monthly subscription. Credits are spent per call on the stateless scraper endpoints, and you start with 50 free credits on signup.

    • No subscription required for pure API/MCP use
    • Failed requests are never charged
    • Full-plan users get a daily quota with credit overflow

    Existing Agent-plan subscribers keep their unlimited monthly access.

  130. New

    Official CLI & MCP server

    Sonar is now AI-native end to end:

    • @sonarapp/clinpm i -g @sonarapp/cli, then sonar for app lookup, keyword research, rankings, competitors, revenue, and CSV/JSON export.
    • @sonarapp/mcp — a Model Context Protocol server exposing 9 stateless tools so Claude, Cursor, and other agents can query Sonar directly.

    Both authenticate with your SONAR_API_KEY.

  131. New

    App Store Roast — free AI listing grader

    A new free public tool: App Store Roast. Drop in any App Store or Google Play listing and get an AI-graded teardown — an overall grade (F → A+), a one-line verdict, and graded sections for Icon, Screenshots, Title & Subtitle, Description, and Reviews, each with an actionable ASO tip.

    It's free, shareable, and a fast way to see where a listing is leaving installs on the table.

  132. New

    Explore Sonar in demo mode

    New signups can now explore a read-only demo workspace — real apps, keywords, rankings, and reviews — before being asked for a credit card. It's the fastest way to see what Sonar does with live data, no setup required.

    Start your trial whenever you're ready and you'll switch to your own workspace.

  133. New

    Multi-locale research projects

    Research projects let you organize keyword research independently of tracked apps — perfect for pre-launch exploration or comparing markets.

    • Multi-locale: research the same keywords across countries and languages
    • Per-project filters and a one-click refresh for stale keywords
    • Editable icon and name, with a Lucide icon picker
    • Per-row actions to rename or delete projects and products
  134. Improved

    Rank trend sparklines & smarter filters

    The Rankings and Keywords pages got sharper:

    • Rank trend sparklines inline in the rankings table
    • Filter rankings to ranked-only keywords, plus store/country and branded/generic toggles
    • Store/country multi-select on the keyword table
    • Clickable rows and keyword notes that sync across views
  135. New

    Revenue estimation

    Sonar now estimates app revenue using install counts and category benchmarks — available in the dashboard, via the /api/v1/apps/revenue endpoint, and as sonar revenue in the CLI.

    Bulk revenue and review filters make it practical for automation and portfolio-wide analysis.

  136. New

    Keyword Opportunity Matrix

    The new Keyword Opportunity Matrix plots your keywords on a popularity-vs-difficulty scatter chart, so the high-volume / low-competition opportunities jump out instantly. Quadrants make it obvious which terms to prioritize and which to skip.

  137. New

    Activity feed — track app changes

    The Activity feed gives you a timeline of detected changes across your apps and competitors — new releases, metadata edits, screenshot swaps, price and category changes. Keep tabs on what competitors are shipping without checking the stores by hand.

  138. New

    Free tools, multi-country & REST API

    A big foundational release:

    • Free public tools — ASO Score Checker and Keyword Generator, no signup needed
    • Multi-country support across keyword research and rank tracking
    • REST API access on all paid plans, with the Agent plan for API-only use
    • Single-tier pricing with everything included
  139. New

    Live review intelligence

    Review monitoring went live: fetch reviews on demand from both the App Store and Google Play, paginated across all pages, with a rich app detail sheet for quick inspection. This is the foundation the later AI Review Insights build on.