# Apps


Reference catalogs for the `Apps` dataset. Every read here is authenticated and
JSON-only (bearer token + `Accept: application/json`) and uses the read rate
bucket (120 requests/min per caller).

The paginated reads on this page accept `page`, `per_page` (default 250) and
`search`, and return `data.items` plus a `data.pagination` block.

## Get Categories {#get-apiv2analysesreferenceappscategories}

`GET /api/v2/analyses/reference/apps/categories`

App categories, paginated and searchable. Each item is `{ value, text }` where
`value` is the category id.

### Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | No | Page to fetch. Defaults to 1. |
| `per_page` | integer | No | Items per page. Defaults to 250. |
| `search` | string | No | Free-text search on the category name. |

{{< tabs >}}

  {{< tab name="cURL" >}}
  ```bash
  curl "https://console.intuizi.com/api/v2/analyses/reference/apps/categories?search=games" \
    -H "Authorization: Bearer <YOUR_TOKEN>" \
    -H "Accept: application/json"
  ```
  {{< /tab >}}

  {{< tab name="Python" >}}
  ```python
  import requests

  res = requests.get(
      "https://console.intuizi.com/api/v2/analyses/reference/apps/categories",
      headers={"Authorization": "Bearer <YOUR_TOKEN>", "Accept": "application/json"},
      params={"search": "games"},
  )
  page = res.json()["data"]
  ```
  {{< /tab >}}

  {{< tab name="JavaScript" >}}
  ```javascript
  const res = await fetch(
    "https://console.intuizi.com/api/v2/analyses/reference/apps/categories?search=games",
    { headers: { Authorization: "Bearer <YOUR_TOKEN>", Accept: "application/json" } }
  );
  const page = (await res.json()).data;
  ```
  {{< /tab >}}

  {{< tab name="PHP" >}}
  ```php
  $res = Http::withToken('<YOUR_TOKEN>')->acceptJson()
      ->get('https://console.intuizi.com/api/v2/analyses/reference/apps/categories', ['search' => 'games']);
  $page = $res->json('data');
  ```
  {{< /tab >}}

{{< /tabs >}}

### Response

```json
{
  "status": "success",
  "code": 200,
  "message": "Resources fetched successfully.",
  "data": {
    "items": [
      { "value": 1, "text": "Games" }
    ],
    "pagination": { "current_page": 1, "per_page": 250, "total": 1, "last_page": 1 }
  }
}
```

## Get Tags {#get-apiv2analysesreferenceappstags}

`GET /api/v2/analyses/reference/apps/tags`

App tags, paginated and searchable. Each item is `{ value, text }` where `value`
is the tag id.

### Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | No | Page to fetch. Defaults to 1. |
| `per_page` | integer | No | Items per page. Defaults to 250. |
| `search` | string | No | Free-text search on the tag name. |

{{< tabs >}}

  {{< tab name="cURL" >}}
  ```bash
  curl "https://console.intuizi.com/api/v2/analyses/reference/apps/tags?search=puzzle" \
    -H "Authorization: Bearer <YOUR_TOKEN>" \
    -H "Accept: application/json"
  ```
  {{< /tab >}}

  {{< tab name="Python" >}}
  ```python
  import requests

  res = requests.get(
      "https://console.intuizi.com/api/v2/analyses/reference/apps/tags",
      headers={"Authorization": "Bearer <YOUR_TOKEN>", "Accept": "application/json"},
      params={"search": "puzzle"},
  )
  page = res.json()["data"]
  ```
  {{< /tab >}}

  {{< tab name="JavaScript" >}}
  ```javascript
  const res = await fetch(
    "https://console.intuizi.com/api/v2/analyses/reference/apps/tags?search=puzzle",
    { headers: { Authorization: "Bearer <YOUR_TOKEN>", Accept: "application/json" } }
  );
  const page = (await res.json()).data;
  ```
  {{< /tab >}}

  {{< tab name="PHP" >}}
  ```php
  $res = Http::withToken('<YOUR_TOKEN>')->acceptJson()
      ->get('https://console.intuizi.com/api/v2/analyses/reference/apps/tags', ['search' => 'puzzle']);
  $page = $res->json('data');
  ```
  {{< /tab >}}

{{< /tabs >}}

### Response

```json
{
  "status": "success",
  "code": 200,
  "message": "Resources fetched successfully.",
  "data": {
    "items": [
      { "value": 42, "text": "Puzzle" }
    ],
    "pagination": { "current_page": 1, "per_page": 250, "total": 1, "last_page": 1 }
  }
}
```

## Get OS {#get-apiv2analysesreferenceappsos}

`GET /api/v2/analyses/reference/apps/os`

Distinct app operating systems. Flat list of `{ value, text }` pairs (not
paginated). Accepts an optional `search` filter.

### Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `search` | string | No | Optional free-text filter on the item label (case-insensitive contains). |

{{< tabs >}}

  {{< tab name="cURL" >}}
  ```bash
  curl "https://console.intuizi.com/api/v2/analyses/reference/apps/os" \
    -H "Authorization: Bearer <YOUR_TOKEN>" \
    -H "Accept: application/json"
  ```
  {{< /tab >}}

  {{< tab name="Python" >}}
  ```python
  import requests

  res = requests.get(
      "https://console.intuizi.com/api/v2/analyses/reference/apps/os",
      headers={"Authorization": "Bearer <YOUR_TOKEN>", "Accept": "application/json"},
  )
  oses = res.json()["data"]
  ```
  {{< /tab >}}

  {{< tab name="JavaScript" >}}
  ```javascript
  const res = await fetch(
    "https://console.intuizi.com/api/v2/analyses/reference/apps/os",
    { headers: { Authorization: "Bearer <YOUR_TOKEN>", Accept: "application/json" } }
  );
  const oses = (await res.json()).data;
  ```
  {{< /tab >}}

  {{< tab name="PHP" >}}
  ```php
  $res = Http::withToken('<YOUR_TOKEN>')->acceptJson()
      ->get('https://console.intuizi.com/api/v2/analyses/reference/apps/os');
  $oses = $res->json('data');
  ```
  {{< /tab >}}

{{< /tabs >}}

### Response

```json
{
  "status": "success",
  "code": 200,
  "message": "Resources fetched successfully.",
  "data": [
    { "value": "iOS", "text": "iOS" }
  ]
}
```

## Get Bundle IDs {#get-apiv2analysesreferenceappsbundle-ids}

`GET /api/v2/analyses/reference/apps/bundle-ids`

App bundle ids, paginated and searchable, optionally filtered by category or
taxonomy. Each item carries the `value` (bundle id), `text` (the app label), the
parent category, and `taxonomies` - the full list of taxonomies the app belongs
to. An app can belong to more than one taxonomy, so filtering by `taxonomies`
returns every app linked to any of the ids you pass.

### Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | No | Page to fetch. Defaults to 1. |
| `per_page` | integer | No | Items per page. Defaults to 250. |
| `search` | string | No | Free-text search on the app name. |
| `categories` | array | No | Category ids to filter by. |
| `taxonomies` | array | No | Taxonomy ids to filter by. Takes precedence over `categories`. |

{{< tabs >}}

  {{< tab name="cURL" >}}
  ```bash
  curl "https://console.intuizi.com/api/v2/analyses/reference/apps/bundle-ids?search=candy&categories[]=1" \
    -H "Authorization: Bearer <YOUR_TOKEN>" \
    -H "Accept: application/json"
  ```
  {{< /tab >}}

  {{< tab name="Python" >}}
  ```python
  import requests

  res = requests.get(
      "https://console.intuizi.com/api/v2/analyses/reference/apps/bundle-ids",
      headers={"Authorization": "Bearer <YOUR_TOKEN>", "Accept": "application/json"},
      params={"search": "candy", "categories[]": 1},
  )
  page = res.json()["data"]
  ```
  {{< /tab >}}

  {{< tab name="JavaScript" >}}
  ```javascript
  const res = await fetch(
    "https://console.intuizi.com/api/v2/analyses/reference/apps/bundle-ids?search=candy&categories[]=1",
    { headers: { Authorization: "Bearer <YOUR_TOKEN>", Accept: "application/json" } }
  );
  const page = (await res.json()).data;
  ```
  {{< /tab >}}

  {{< tab name="PHP" >}}
  ```php
  $res = Http::withToken('<YOUR_TOKEN>')->acceptJson()
      ->get('https://console.intuizi.com/api/v2/analyses/reference/apps/bundle-ids', [
          'search' => 'candy', 'categories' => [1],
      ]);
  $page = $res->json('data');
  ```
  {{< /tab >}}

{{< /tabs >}}

### Response

```json
{
  "status": "success",
  "code": 200,
  "message": "Resources fetched successfully.",
  "data": {
    "items": [
      {
        "value": "com.example.candy",
        "text": "Candy Blast",
        "category_id": 1,
        "category_text": "Games",
        "taxonomies": [
          { "id": 10, "text": "Arcade" },
          { "id": 14, "text": "Puzzle" }
        ]
      }
    ],
    "pagination": { "current_page": 1, "per_page": 250, "total": 1, "last_page": 1 }
  }
}
```

## Get Taxonomies {#get-apiv2analysesreferenceappstaxonomies}

`GET /api/v2/analyses/reference/apps/taxonomies`

App taxonomies, paginated and searchable, optionally filtered by category. Each
item carries the `value` (taxonomy id), `text`, and the parent category label.

### Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | No | Page to fetch. Defaults to 1. |
| `per_page` | integer | No | Items per page. Defaults to 250. |
| `search` | string | No | Free-text search on the taxonomy name. |
| `categories` | array | No | Category ids to filter by. |

{{< tabs >}}

  {{< tab name="cURL" >}}
  ```bash
  curl "https://console.intuizi.com/api/v2/analyses/reference/apps/taxonomies?search=arcade&categories[]=1" \
    -H "Authorization: Bearer <YOUR_TOKEN>" \
    -H "Accept: application/json"
  ```
  {{< /tab >}}

  {{< tab name="Python" >}}
  ```python
  import requests

  res = requests.get(
      "https://console.intuizi.com/api/v2/analyses/reference/apps/taxonomies",
      headers={"Authorization": "Bearer <YOUR_TOKEN>", "Accept": "application/json"},
      params={"search": "arcade", "categories[]": 1},
  )
  page = res.json()["data"]
  ```
  {{< /tab >}}

  {{< tab name="JavaScript" >}}
  ```javascript
  const res = await fetch(
    "https://console.intuizi.com/api/v2/analyses/reference/apps/taxonomies?search=arcade&categories[]=1",
    { headers: { Authorization: "Bearer <YOUR_TOKEN>", Accept: "application/json" } }
  );
  const page = (await res.json()).data;
  ```
  {{< /tab >}}

  {{< tab name="PHP" >}}
  ```php
  $res = Http::withToken('<YOUR_TOKEN>')->acceptJson()
      ->get('https://console.intuizi.com/api/v2/analyses/reference/apps/taxonomies', [
          'search' => 'arcade', 'categories' => [1],
      ]);
  $page = $res->json('data');
  ```
  {{< /tab >}}

{{< /tabs >}}

### Response

```json
{
  "status": "success",
  "code": 200,
  "message": "Resources fetched successfully.",
  "data": {
    "items": [
      { "value": 10, "text": "Arcade", "category_id": 1, "category_text": "Games" }
    ],
    "pagination": { "current_page": 1, "per_page": 250, "total": 1, "last_page": 1 }
  }
}
```

