# App Detail API

## API Information

- **API Name**: Get App Detail
- **Request Method**: POST
- **API URL**: `/open-api/v1/data`
- **Interface URI path**: `/v3/api/open/app/detail`
- **Description**: Get detailed information of app by app ID
- **Pricing**: Details API pricing rules: Base fee: 1 credit/request. Free access conditions (if either is met): Details for this ID have been retrieved within the past 3 days; This ID appeared in your leaderboard list query results within the past 3 days.

**Request Headers:**

- Content-Type: application/json
- Accept: application/json

## Request Parameters

### Request Structure

| Parameter Name | Type   | Description                     | Example                   | Required | Default |
| -------------- | ------ | ------------------------------- | ------------------------- | -------- | ------- |
| key            | string | User's external API request key | "your_api_key_here"       | Yes      |         |
| uri            | string | Interface URI path              | "/v3/api/open/app/detail" | Yes      |         |
| params         | object | Interface parameter object      | See parameter list below  | Yes      |         |

### Parameter List (params object)

| Parameter Name | Type   | Description | Example                | Required | Default |
| -------------- | ------ | ----------- | ---------------------- | -------- | ------- |
| id             | string | App ID      | "61d787d667dcc8ca6a82" | Yes      |         |

### Request Example

```bash
curl -X POST "https://www.pipispy.com/open-api/v1/data" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "key": "your_api_key_here",
    "uri": "/v3/api/open/app/detail",
    "params": {
      "id": "61d787d667dcc8ca6a82"
    }
  }'
```

## Response Parameters

### Response Body Structure

```json
{
  "code": 200,
  "message": "success",
  "data": {
    // App detail information
  },
  "version": "v1",
  "timestamp": null,
  "sign": null,
  "remaining_credits": 9980,
  "consumed_credits": 1,
  "success": true,
  "fail": false
}
```

### Response Field Description

##### Main Response Fields

| Field Name                    | Type    | Description                   |
| ----------------------------- | ------- | ----------------------------- |
| id                            | string  | App ID                        |
| name                          | string  | App name                      |
| icon                          | string  | App icon URL                  |
| rate                          | object  | Rating information            |
| url                           | string  | App store link                |
| app_download_count            | number  | App download count            |
| app_comment_count             | number  | App comment count             |
| desc                          | string  | App description               |
| app_system                    | string  | App system (ios/android)      |
| app_store                     | string  | App store (apple/google)      |
| app_type                      | string  | App type (app/game)           |
| app_category                  | object  | App category information      |
| app_create_time               | number  | App creation time (timestamp) |
| app_update_time               | number  | App update time (timestamp)   |
| ad_platform_list              | array   | Ad platform list              |
| app_dev                       | object  | Developer information         |
| is_collection                 | boolean | Is collected                  |
| revenue                       | object  | Revenue information           |
| last_month_app_download_count | number  | Last month download count     |
| images                        | array   | App screenshot list           |
| all_data_count                | number  | Total data count              |
| top_region                    | array   | Top regions                   |
| top_in_app_purchases          | array   | In-app purchase information   |
| keywords                      | array   | Keyword list                  |

##### Rate Object Fields

| Field Name | Type   | Description         |
| ---------- | ------ | ------------------- |
| score      | number | Rating score        |
| count      | number | Rating count        |
| rate1      | number | 1-star rating count |
| rate2      | number | 2-star rating count |
| rate3      | number | 3-star rating count |
| rate4      | number | 4-star rating count |
| rate5      | number | 5-star rating count |

##### App Category Object Fields

| Field Name | Type   | Description       |
| ---------- | ------ | ----------------- |
| id         | string | Category ID       |
| name       | string | Category name     |
| type       | string | Category type     |
| app_system | string | App system        |
| app_store  | string | App store         |
| children   | array  | Sub-category list |

##### App Developer Object Fields

| Field Name  | Type   | Description                      |
| ----------- | ------ | -------------------------------- |
| id          | string | Developer ID                     |
| name        | string | Developer name                   |
| email       | string | Developer email                  |
| url         | string | Developer URL                    |
| icon        | string | Developer icon URL               |
| avatar      | string | Developer avatar URL             |
| website_url | string | Developer website URL (optional) |

##### Revenue Object Fields

| Field Name | Type   | Description               |
| ---------- | ------ | ------------------------- |
| unit       | string | Revenue unit (cent)       |
| currency   | string | Currency type (USD, etc.) |
| type       | string | Revenue type (currency)   |
| value      | number | Revenue value (in cents)  |

##### In-App Purchase Object Fields

| Field Name | Type   | Description             |
| ---------- | ------ | ----------------------- |
| price      | string | Price range description |

##### Keyword Object Fields

| Field Name | Type   | Description        |
| ---------- | ------ | ------------------ |
| name       | string | Keyword name       |
| url        | string | Keyword search URL |

##### Root Level Response Fields

| Field Name | Type        | Description            |
| ---------- | ----------- | ---------------------- |
| code       | number      | Response status code   |
| message    | string      | Response message       |
| data       | object      | App detail data        |
| version    | string      | API version            |
| timestamp  | number/null | Timestamp              |
| sign       | string/null | Signature              |
| remaining_credits | Long    | Current remaining available credits after this request |
| consumed_credits  | Long    | Credits consumed by this request                       |
| success    | boolean     | Request success status |
| fail       | boolean     | Request failure status |

### Response Example

```json
{
  "code": 200,
  "message": "success",
  "data": {
    "id": "69474be0ed2cecb479b1",
    "name": "Stickman vs Monster: Idle RPG",
    "icon": "https://cdn-app.pipispy.com/86f80c31e7712aa1ff486b1ff210028b.jpg",
    "rate": {
      "score": 4.8965516,
      "count": 12565,
      "rate1": 216,
      "rate2": 0,
      "rate3": 0,
      "rate4": 433,
      "rate5": 11916
    },
    "url": "https://play.google.com/store/apps/details?id=com.stickman.monster.epic.stickman.war.shadow.idle.game",
    "app_download_count": 1528081,
    "app_comment_count": 12566,
    "desc": "<b>Idle Gameplay, Epic Rewards</b><br>Stickman vs Monster offers a relaxed and enjoyable gaming experience...",
    "app_system": "android",
    "app_store": "google",
    "app_type": "game",
    "app_category": {
      "id": "googlegame",
      "name": "Game",
      "type": "game",
      "children": [
        {
          "id": "GAME_ROLE_PLAYING",
          "name": "Role Playing",
          "type": "game",
          "app_system": "android"
        }
      ],
      "app_system": "android"
    },
    "app_create_time": 1736218411,
    "app_update_time": 1750895087,
    "ad_platform_list": ["tiktok"],
    "app_dev": {
      "id": "7752608683054605616",
      "name": "Fansipan Limited",
      "email": "support@fansipan.hk",
      "url": "https://play.google.com/store/apps/dev?id=7752608683054605616",
      "icon": "https://cdn-app.pipispy.com/c8bb0c844b7fe66799bed62b7da8a166.jpg",
      "avatar": "https://cdn-app.pipispy.com/c8bb0c844b7fe66799bed62b7da8a166.jpg"
    },
    "is_collection": false,
    "revenue": {
      "unit": "cent",
      "currency": "USD",
      "type": "currency",
      "value": 2000000
    },
    "last_month_app_download_count": 200000,
    "images": [
      "https://cdn-app.pipispy.com/c37bd0ad1bb037fd89f174846d2b434f.jpg",
      "https://cdn-app.pipispy.com/59ba6218aa9ac9c8de05aef730d0f9d9.jpg",
      "https://cdn-app.pipispy.com/f71de19f71464fa8a2070f37362ac812.jpg"
    ],
    "all_data_count": 937,
    "top_region": ["US", "VN", "TW"],
    "top_in_app_purchases": [
      {
        "price": "$1.49 - $99.99 per item"
      }
    ],
    "keywords": [
      {
        "name": "Idle RPG",
        "url": "/store/search?q=Idle+RPG+games&c=apps"
      },
      {
        "name": "Stylized",
        "url": "/store/search?q=Stylized+games&c=apps"
      },
      {
        "name": "Monster",
        "url": "/store/search?q=Monster+games&c=apps"
      },
      {
        "name": "Stickman",
        "url": "/store/search?q=Stickman+games&c=apps"
      }
    ]
  },
  "version": "v1",
  "timestamp": null,
  "sign": null,
  "remaining_credits": 9980,
  "consumed_credits": 1,
  "success": true,
  "fail": false
}
```

## Error Code Description

| Error Code | Description                      |
| ---------- | -------------------------------- |
| 200        | Success                          |
| 400        | Bad Request - Invalid parameters |
| 401        | Unauthorized - Invalid API key   |
| 404        | Not Found - App not found        |
| 500        | Internal Server Error            |
