AI analyses

The library says what is different between markets. Analyses ask a model why it differs and what to do about it. They run on Anthropic's Claude models, return structured JSON, and cite the evidence they used.

The analyses (REST)

AnalysisRouteWhat it returns
Listing comparisonPOST /api/analysis/listing {app, from?, to}One app's store page in two markets and why it differs: summary, differences (aspect, from, to, why), localisationDepth (none, translated, adapted, reimagined), culturalNotes, recommendations. Up to 5 screenshots per side are sent as images.
Paid and OrganicPOST /api/analysis/paid {market, app? or niche?, from?}Themes in the longest-running ads and most-viewed posts there versus at home: hooks, formats, tone, creators, offers, language variant. Every claim cites ad or post ids; claims without evidence are dropped and counted in droppedUnevidencedClaims. Needs collected Paid or Organic data.
Market-entry briefPOST /api/analysis/brief {app, to, from?}A written brief (Brand, Paid, Organic, risks, first moves) composed from the market brief, the listing comparison and the Paid and Organic analysis, each point with evidence ids
Brand-name checkPOST /api/analysis/brand-name {name, tagline?, markets[]}Per language variant: meanings, unfortunate connotations with severity, pronunciation and katakana or hangul rendering, tagline issues, names to search for collisions, and a verdict. Not legal advice.
TranslatePOST /api/analysis/translateSee Market resources
VideoPOST /api/analysis/video {url, thumbnail?, market?}On-screen text, hook, format, style and offer for one video ad
Visual briefPOST /api/analysis/visual-briefScreenshot composition and cultural adaptation in a market. See Visual answers.

(Note: These server-side analyses run over REST. Over MCP, the user's agent evaluates criteria and writes narratives directly from the evidence returned by app, market, and check; see Agent tools).

markets in the brand-name check takes market codes (jp), language variants (es-AR) or languages (ja).

Access and limits

  • Analyses need the analysis scope and are not available keyless.
  • Each plan has a monthly number of fresh analyses and a set of kinds: Free runs the brand-name check only (3 a month); Indie and Team run every kind (40 and 250 a month). See Pricing.
  • Fresh analyses also count against the workspace's monthly data budget. Translations count toward the budget but not toward the number of analyses.
  • Parallel requests cannot overrun the quota: each fresh analysis reserves its place before the model is called.

Caching

Results are cached by kind, model and a hash of the inputs the answer depends on (the listing content, or the ad and post ids with their latest sightings). An unchanged input returns the stored result; a cache hit is free and does not count toward your analyses. Cached results expire (listing comparisons after 30 days, Paid and briefs after 7, brand-name checks after 90). Pass "refresh": true to run again.

Cached analyses of shared library data can be reused across workspaces at no cost. Brand-name checks are never shared: the name you are considering is confidential.

Reading results

GET /api/analysis/:id and GET /api/analysis?kind=listing&app=<id>. Every result carries the model that served it, token usage, cost, whether it was cached, and when it was created and expires.

Video

Models read images, not audio or video. When the server has ffmpeg, threefold extracts evenly spaced keyframes from a video ad and sends them as images; otherwise it sends the thumbnail and says so with lower confidence. There is no speech-to-text, so analyses do not describe voice-over or music.