DNA Charts

Get the most popular applications for a given DNA and type in a country for a device.

Retrieve current DNA charts for all the countries that are available on AppTweak. A DNA chart is dependent on:

  • a country
  • a DNA
  • a store (ios or android)
  • a chart type (free or paid)

You need to pass the correct DNA ID when making an API call on DNA Charts, you can find DNA IDs through the dedicated dedicated endpoint.

You can use both class_id and subclass_id in the DNA charts endpoint.

You can request for up to 5 countries and 5 DNAs in the same request.

The endpoint will return an array of hashes under result, displaying:

  • dna_id: The ID of the DNA. It can be either a class_id or a subclass_id
  • country: The country of the chart for which the application ranked
  • type: The type of the chart for which the application ranked
  • store: The store of the chart for which the application ranked
  • rank: The rank of the application in the DNA chart
  • application_id: The ID of the application

FAQs

What is DNA in the context of app store data?

DNA is AppTweak's own classification taxonomy for apps and games, distinct from the app store's own category system. Every app is tagged with an AppDNA (for regular apps) or GameDNA (for games) value, expressed as a class and a subclass — for example a class like "Action" with a subclass like "Battle Royale." The taxonomy is shared across the App Store and Google Play, so the same DNA value groups equivalent apps regardless of store. AppTweak's DNA endpoint (GET /dnas) lists every available class and subclass.

How is an app's DNA value structured — is it one ID or several?

A DNA value is a class/subclass pair: every subclass belongs to exactly one class, and both levels have their own numeric ID. The /dnas endpoint returns each pair as class_id and class_label (e.g. 10101, "Action") together with subclass_id and subclass_label (e.g. 1001, "Battle Royale"). Either the class_id or the subclass_id can be passed as a dna_id elsewhere, letting a query target a broad grouping or a narrower one within it.

How do I fetch the current app store ranking chart for a specific DNA category via API?

You can pull a current ranking chart for a DNA class or subclass with AppTweak's DNA Charts - Current endpoint (GET /charts/dna/current.json). Pass one or more dna_ids (up to 5), one or more countries (up to 5), a store (ios or android), and a type (free or paid). The response is an array of ranked entries, each with dna_id, country, type, store, rank, and application_id — one row per ranked app.

What's the difference between using a class ID and a subclass ID in a DNA chart request?

The difference is granularity: a class ID ranks apps across an entire DNA grouping, while a subclass ID ranks apps within one specific slice of that grouping. Both are accepted as dna_id in the DNA Charts - Current endpoint, since a subclass is always nested under a class. Passing the class ID for "Action" returns a chart spanning every subclass under it (Battle Royale, Fighting, MOBA, and so on); passing the subclass ID for "Battle Royale" narrows the chart to that subclass alone.

Can I retrieve DNA chart rankings for several countries and DNA categories in one request?

Yes — the DNA Charts - Current endpoint accepts up to 5 dna_ids and up to 5 countries in a single call, returning ranked results for every combination requested. This avoids issuing a separate API call per country/DNA pair when comparing how apps rank across several DNA classifications or markets at once.