# App Store app reviews

This endpoint will provide you with reviews published on the App Store platform for the app specified in the app_id field. Takes app id, location name, location code and more, all optional. Served by DataForSEO.

This endpoint will provide you with reviews published on the App Store platform for the app specified in the app_id field. The returned results are specific to the indicated language and location parameters. Submit once with action=submit. Reuse this same tool with action=result and its id to read status/output at no additional cost. Queued is not finished.

- Tool ID: `dataforseo/app-data-apple-app-reviews`
- Name in the catalog: App Data Apple App Reviews
- Provider: [DataForSEO](/providers/dataforseo.md)
- Capability: [App reviews](/tools/app-stores/app-reviews.md)
- Price: usage based, the maximum is shown before a run
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

Billed at the cost the provider reports for the call, never above $100. Your agent sees the maximum before running.


```json
{
  "model": "reported",
  "costPath": "cost",
  "maxUsdDefault": 0.00075,
  "maxUsdCap": 100,
  "multipliers": [
    {
      "when": {
        "field": "priority",
        "equals": 2
      },
      "totalFactor": 2
    },
    {
      "addUsdPer": {
        "field": "depth",
        "usd": 0.00075,
        "per": 25,
        "minus": 25,
        "default": 25,
        "max": 500
      }
    }
  ],
  "requireCost": true
}
```

### Action-specific pricing


```json
[
  {
    "field": "action",
    "equals": "result",
    "pricing": {
      "model": "per_call",
      "amountUsd": 0
    }
  }
]
```

Pricing source: [https://docs.dataforseo.com/v3/appendix/user_data/](https://docs.dataforseo.com/v3/appendix/user_data/). Account tariff app_data/app_reviews/task_post; bounds applied to inputs; actual cost from provider response..

Price verification date: 2026-10-10.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "app_id": {
      "type": "string",
      "description": "id of the app required field ID of the mobile application on App Store; you can find the ID in the URL of every app listed on App Store; example: in the URL https://apps.apple.com/us/app/id835599320 the id is 835599320",
      "maxLength": 2000,
      "minLength": 1
    },
    "location_name": {
      "type": "string",
      "description": "full name of search engine location required field if you don't specify location_code if you use this field, you don't need to specify location_code you can receive the list of available locations of the search engine with their location_na",
      "maxLength": 2000,
      "minLength": 1
    },
    "location_code": {
      "type": "integer",
      "description": "search engine location code required field if you don't specify location_name if you use this field, you don't need to specify location_name you can receive the list of available locations of the search engine with their location_code by ma"
    },
    "language_name": {
      "type": "string",
      "description": "full name of search engine language required field if you don't specify language_code if you use this field, you don't need to specify language_code you can receive the list of available languages with language_name by making a separate req",
      "maxLength": 2000,
      "minLength": 1
    },
    "language_code": {
      "type": "string",
      "description": "search engine language code required field if you don't specify language_name if you use this field, you don't need to specify language_name you can receive the list of available languages with their language_code_by making a separate reque",
      "maxLength": 10,
      "minLength": 1
    },
    "priority": {
      "type": "integer",
      "description": "task priority optional field can take the following values: 1 – normal execution priority (set by default) 2 – high execution priorityYou will be additionally charged for the tasks with high execution priority. The cost can be calculated on",
      "enum": [
        1,
        2
      ]
    },
    "depth": {
      "type": "integer",
      "description": "parsing depth optional field number of reviews to be returned in the API response; we strongly recommend setting the parsing depth in the multiples of 25, because our system processes 25 reviews in a row; default value: 25; maximum value: 5",
      "maximum": 500,
      "minimum": 1
    },
    "sort_by": {
      "type": "string",
      "description": "results sorting parameters optional field you can use this field to sort the results; possible types of sorting: most_recent — sort by the most recent reviews; most_helpful — sort by the most relevant reviews; default rule: most_helpful",
      "maxLength": 2000,
      "minLength": 1
    },
    "tag": {
      "type": "string",
      "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      "maxLength": 255
    },
    "action": {
      "type": "string",
      "enum": [
        "submit",
        "result"
      ],
      "default": "submit"
    },
    "id": {
      "type": "string",
      "minLength": 8,
      "maxLength": 80,
      "pattern": "^[A-Za-z0-9-]+$"
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "action": {
            "const": "result"
          }
        },
        "required": [
          "action"
        ]
      },
      "then": {
        "type": "object",
        "properties": {
          "action": {
            "const": "result"
          },
          "id": {
            "type": "string",
            "minLength": 8,
            "maxLength": 80,
            "pattern": "^[A-Za-z0-9-]+$"
          }
        },
        "required": [
          "action",
          "id"
        ],
        "additionalProperties": false
      },
      "else": {
        "type": "object",
        "properties": {
          "app_id": {
            "type": "string",
            "description": "id of the app required field ID of the mobile application on App Store; you can find the ID in the URL of every app listed on App Store; example: in the URL https://apps.apple.com/us/app/id835599320 the id is 835599320",
            "maxLength": 2000,
            "minLength": 1
          },
          "location_name": {
            "type": "string",
            "description": "full name of search engine location required field if you don't specify location_code if you use this field, you don't need to specify location_code you can receive the list of available locations of the search engine with their location_na",
            "maxLength": 2000,
            "minLength": 1
          },
          "location_code": {
            "type": "integer",
            "description": "search engine location code required field if you don't specify location_name if you use this field, you don't need to specify location_name you can receive the list of available locations of the search engine with their location_code by ma"
          },
          "language_name": {
            "type": "string",
            "description": "full name of search engine language required field if you don't specify language_code if you use this field, you don't need to specify language_code you can receive the list of available languages with language_name by making a separate req",
            "maxLength": 2000,
            "minLength": 1
          },
          "language_code": {
            "type": "string",
            "description": "search engine language code required field if you don't specify language_name if you use this field, you don't need to specify language_name you can receive the list of available languages with their language_code_by making a separate reque",
            "maxLength": 10,
            "minLength": 1
          },
          "priority": {
            "type": "integer",
            "description": "task priority optional field can take the following values: 1 – normal execution priority (set by default) 2 – high execution priorityYou will be additionally charged for the tasks with high execution priority. The cost can be calculated on",
            "enum": [
              1,
              2
            ],
            "default": 1
          },
          "depth": {
            "type": "integer",
            "description": "parsing depth optional field number of reviews to be returned in the API response; we strongly recommend setting the parsing depth in the multiples of 25, because our system processes 25 reviews in a row; default value: 25; maximum value: 5",
            "maximum": 500,
            "minimum": 1,
            "default": 25
          },
          "sort_by": {
            "type": "string",
            "description": "results sorting parameters optional field you can use this field to sort the results; possible types of sorting: most_recent — sort by the most recent reviews; most_helpful — sort by the most relevant reviews; default rule: most_helpful",
            "maxLength": 2000,
            "minLength": 1
          },
          "tag": {
            "type": "string",
            "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
            "maxLength": 255
          },
          "action": {
            "const": "submit"
          }
        },
        "required": [
          "app_id"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "location_code"
                ]
              },
              {
                "required": [
                  "location_name"
                ]
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "language_code"
                ]
              },
              {
                "required": [
                  "language_name"
                ]
              }
            ]
          }
        ]
      }
    }
  ]
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "dataforseo/app-data-apple-app-reviews",
  "input": {
    "app_id": "835599320",
    "location_code": 2840,
    "language_code": "en",
    "depth": 25,
    "priority": 1,
    "action": "submit"
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://docs.dataforseo.com/v3/app_data/apple/app_reviews/task_post/)

[REST inspection](https://api.agentik.cc/v1/tools/dataforseo/app-data-apple-app-reviews) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/dataforseo/app-data-apple-app-reviews) · [Agent index](/llms.txt)
