# Get an App Store product's details

Returns one App Store app's details, such as its title, description, developer, rating and screenshots. Use it to read a known app's store listing.

Tool `app-store.product` on Apple App Store. Contract version 1, released 2026-10-27.

## Example call

Over REST, send the input in the body. Over MCP, pass the same input to `call_tool`.

cURL:

```bash
curl https://api.voxoria.ai/v1/tools/app-store.product/calls \
  -H "Authorization: Bearer $VOXORIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"product_id":"570060128"}}'
```

Python:

```python
import os

import httpx

response = httpx.post(
    "https://api.voxoria.ai/v1/tools/app-store.product/calls",
    headers={"Authorization": f"Bearer {os.environ['VOXORIA_API_KEY']}"},
    json={"input": {"product_id": "570060128"}},
    timeout=60,
)
print(response.json())
```

TypeScript:

```ts
const response = await fetch("https://api.voxoria.ai/v1/tools/app-store.product/calls", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VOXORIA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"input": {"product_id": "570060128"}}),
});
console.log(await response.json());
```

MCP (`tools/call` params):

```json
{
  "name": "call_tool",
  "arguments": {
    "tool": "app-store.product",
    "input": {
      "product_id": "570060128"
    }
  }
}
```

Both return [the full response](/docs/call-response.md): the call's ID, status and cost, with this tool's result in `output`.

## Input

| Input | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `product_id` | string | Yes |  | Apple's numeric ID of the app, such as "570060128". The product_id of an app-store.search.apps result. Matches `^[0-9]{1,20}$`. |
| `country` | string | No | `us` | Two-letter ISO 3166-1 country code of the App Store storefront. Case-insensitive. One of the 249 values of the `countries` list: ISO 3166-1 alpha-2 country codes, lowercase. |

## Output

A successful call returns these blocks in its `output`. A field not marked required can be `null`.

### product

One object. Can be `null`.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `product_id` | string | No | Apple's numeric ID of the app. |
| `title` | string | Yes |  |
| `subtitle` | string | No | The short line the store shows under the title. |
| `description` | string | No |  |
| `url` | string | No | Address of the app's page on the App Store. |
| `image_url` | string | No | Address of the app's icon. |
| `screenshot_urls` | array of string | No | Address of each iPhone screenshot. |
| `tablet_screenshot_urls` | array of string | No | Address of each iPad screenshot. |
| `developer_name` | string | No |  |
| `developer_url` | string | No | Address of the developer's page on the App Store. |
| `rating` | number | No | Average rating, out of 5. |
| `review_count` | integer | No | Number of ratings the average is from. |
| `category` | string | No | The app's primary category, as the store names it, such as "Education". |
| `content_rating` | string | No | Age rating as the store shows it, such as "4+". |
| `price_amount` | number | No | The price as a number, in currency. 0 for a free app. |
| `currency` | string | No | Three-letter ISO 4217 currency code of price_amount. |
| `released_at` | string | No | When the app was first released, in ISO 8601. |
| `updated_at` | string | No | When the current version was released, in ISO 8601. |

## Example output

The `output` of a real call, each list cut to 3 items.

```json
{
  "product": {
    "product_id": "570060128",
    "title": "Duolingo: Learn Languages",
    "subtitle": "Spanish, French, Chess & Math",
    "description": "Learn a new language, chess & more with the world's most downloaded education app! Duolingo is the fun, free app for learning 40+ languages through quick, bite-sized lessons. Practice speaking, reading, listening & writing to build your vocabulary & grammar skills.\n\nDesigned by learning experts & loved by hundreds of millions worldwide, our lessons make learning effective & fun and help you prepare for real conversations in Spanish, French, Japanese, Korean, Chinese, Italian, German, English and more.\n\n\nAnd now, you can learn CHESS on Duolingo! Whether you're a total beginner or looking to level up your game, you'll love learning chess the Duolingo way. Play matches and fun chess lessons for all levels, no matter the language - chess, ajedrez, xadrez, schach, Шахматы, الشطرنج.\n\n• Chess: Learn the moves, level up your game & play matches in our Chess course. Learn the basics, solve fun chess puzzles & improve your strategy with guided lessons. Whether you're new to chess or already play, our course is designed to help you have fun and build real skills. Checkmate!\n\n• Math: Forget lectures and math worksheets! Built by learning experts, our Math course makes math feel like a game. Boost learning and fight the summer slide with standards-aligned math lessons for elementary school, middle school, and high school students.\n\n• Music: Learn how to read music & play songs in our Music course, no instrument needed! Using an on-screen keyboard, you'll learn bit-by-bit.\n\nWhether you're learning a language for travel, school, career or your brain health, you'll love learning with Duolingo.\n\n\nWhy Duolingo?\n\n• Duolingo is fun & effective. Game-like language lessons & fun characters help you build speaking, reading, listening, & writing skills, plus enjoy fun chess & competitive online chess in one app.\n\n• Duolingo works. Designed by learning experts, Duolingo has a science-based teaching methodology proven to foster long-term knowledge retention across language lessons & chess lessons alike.\n\n• Track your progress. Work toward your learning goals with playful rewards & achievements when you make practicing language lessons or chess online part of your daily habit.\n\n• Join millions of learners. Stay motivated with competitive Leaderboards as you learn languages & play chess online alongside our global community.\n\n• Every course is free. Learn Spanish, French, German, Italian, Russian, Portuguese, Turkish, Dutch, Irish, Danish, Swedish, Ukrainian, Esperanto, Polish, Greek, Hungarian, Norwegian, Hebrew, Welsh, Arabic, Latin, Hawaiian, Scottish Gaelic, Vietnamese, Korean, Japanese, English, & even High Valyrian! And now, learn Math, Music & improve your Chess skills with fun, bite-sized lessons.\n\n\nWhat the world is saying about Duolingo:\n\n\"Far & away the best language-learning app.\" - The Wall Street Journal\n\n\"This free app & website is among the most effective language-learning methods I've tried… lessons come in the form of brief challenges, speaking, translating, answering multiple-choice questions, that keep me coming back for more.\" - The New York Times\n\n\"Duolingo may hold the secret to the future of education.\" - TIME Magazine\n\n\"Duolingo is cheerful, lighthearted & fun.\" - Forbes\n\n\"I Can't Stop Playing Duolingo Chess.\" - Wired\n\nIf you like Duolingo, try Super Duolingo for 14 days free! Learn a language fast with no ads & get fun perks like Unlimited Energy & Monthly Streak Repair.\n\nIf you choose to purchase Super Duolingo, payment will be charged to your Apple account, and your account will be charged for renewal within 24-hours prior to the end of the current period. Auto-renewal may be turned off at any time by going to your settings in the App Store after purchase. Any unused portion of a free trial period, if offered, will be forfeited when the user purchases a subscription to that publication, where applicable.\n\nPrivacy Policy: https://www.duolingo.com/privacy\nTerms of Service: https://www.duolingo.com/terms",
    "url": "https://apps.apple.com/us/app/duolingo-learn-languages/id570060128",
    "image_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/15/d7/38/15d73880-2abc-304f-4d81-f373cb75a593/Placeholder.mill/1024x1024Icon.ApSiOS01.jpeg",
    "screenshot_urls": [
      "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/6e/ef/30/6eef3023-de04-3b29-21f8-a993245b9abd/iPhone6.5_-_Default_-_first_screen_adapt_Var_2_01.jpg/1242x2688bb.jpeg",
      "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/cb/ee/31/cbee31c9-a814-b59b-db16-3136ce60d20d/V2_iOS6.5_02.jpg/1242x2688bb.jpeg",
      "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/e0/aa/36/e0aa3660-a5e3-431d-908a-fc04035a62a8/V2_iOS6.5_03.jpg/1242x2688bb.jpeg"
    ],
    "tablet_screenshot_urls": [
      "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/76/6d/5b/766d5b1d-c08b-34c8-f9e9-f6dbb42783a1/Tablet_-_Default_-_first_screen_adapt_Var_2_01.jpg/2048x2732bb.jpeg",
      "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/5c/55/8c/5c558c1e-5299-8ecb-4887-9e3439130ca1/V2_Tablet_02.jpg/2048x2732bb.jpeg",
      "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/e9/fe/26/e9fe26d3-b79b-99ae-c298-cd36e4734b25/V2_Tablet_03.jpg/2048x2732bb.jpeg"
    ],
    "developer_name": "Duolingo",
    "developer_url": "https://apps.apple.com/us/developer/duolingo/id570060151",
    "rating": 4.7,
    "review_count": null,
    "category": null,
    "content_rating": null,
    "price_amount": null,
    "currency": null,
    "released_at": null,
    "updated_at": null
  }
}
```
