# How to Search for iPadOS Apps with IPATool

> Learn to search for iPadOS apps with IPATool. Use the simple CLI command ipatool search iPadSoftware --platform ipad to find the applications you need efficiently.

- Repository: [Majd/ipatool](https://github.com/majd/ipatool)
- Tags: how-to-guide
- Published: 2026-09-01

---

**Use `ipatool search "<query>" --platform ipad` to query the Apple App Store specifically for iPadOS applications, where the CLI translates the flag into the `iPadSoftware` entity and queries Apple's backend accordingly.**

IPATool is a command-line interface for interacting with the Apple App Store, enabling developers and security researchers to search for and download iOS and iPadOS applications. When you need to narrow your search to iPad-specific apps, the tool provides a dedicated platform filtering mechanism. Understanding how to use the `--platform` flag effectively ensures you retrieve only the iPadOS-compatible applications from Apple's catalog.

## Using the Search Command with Platform Filtering

The `search` command in IPATool accepts a `--platform` flag that restricts queries to specific device types. For iPadOS apps, you specify either `ipad` or `ipados` as the flag value.

According to the source code in [`cmd/search.go`](https://github.com/majd/ipatool/blob/main/cmd/search.go), the `searchCmd` function registers this flag and passes it to the underlying App Store client. If you omit the flag, IPATool defaults to searching both iPhone (`software`) and iPad (`iPadSoftware`) entities simultaneously.

Basic syntax:

```bash
ipatool search "photo editor" --platform ipad

```

You can combine this with other flags like `--limit` to control result count (default is 5 for iPadOS) or `--format json` for machine-readable output:

```bash
ipatool search "game" --platform ipados --limit 10
ipatool --format json search "productivity" --platform ipad

```

## How IPATool Handles iPadOS Search Internally

The platform filtering mechanism involves several coordinated steps across the codebase, from CLI argument parsing to entity-specific API requests.

### CLI Flag Parsing in cmd/search.go

The search command implementation in [`cmd/search.go`](https://github.com/majd/ipatool/blob/main/cmd/search.go) defines the `--platform` flag within the `searchCmd` structure. When executed, the command captures the raw string value (e.g., "ipad") and prepares it for validation.

### Platform Normalization in pkg/appstore/platform.go

The raw platform string flows to `appstore.ParsePlatform` in [`pkg/appstore/platform.go`](https://github.com/majd/ipatool/blob/main/pkg/appstore/platform.go). This function normalizes input variations like `"ipad"` or `"ipados"` into the typed constant `PlatformIPad`. The `Platform` enum provides type safety and prevents invalid platform strings from reaching the API layer.

### Entity Mapping and API Requests

Once normalized, the platform constant determines the search entity via the `Platform.searchEntity()` method. For `PlatformIPad`, this returns the string `"iPadSoftware"`, which matches Apple's internal App Store catalog identifier.

The `dependencies.AppStore.Search` method (implemented in [`pkg/appstore/appstore_search.go`](https://github.com/majd/ipatool/blob/main/pkg/appstore/appstore_search.go)) constructs the HTTP request payload using this entity string. It sends the query to Apple's search endpoint, specifically requesting results from the iPad software catalog rather than the iPhone or Apple TV databases.

Finally, `rootCmd` in [`cmd/root.go`](https://github.com/majd/ipatool/blob/main/cmd/root.go) configures the logger that outputs the results, displaying app names, bundle identifiers, and version information to the terminal.

## Practical Examples for iPadOS App Discovery

Beyond basic queries, you can leverage additional flags to refine iPadOS searches:

1. **Limit results explicitly:** The default returns 5 items, but you can request fewer or adjust based on needs (note that visionOS supports up to 12, while iPadOS typically uses 5):
   
   ```bash
   ipatool search "video editing" --platform ipad --limit 3
   ```

2. **JSON output for scripting:** When integrating with automation tools, use JSON formatting to parse results programmatically:
   
   ```bash
   ipatool --format json search "CAD" --platform ipad | jq '.[].name'
   ```

3. **Version-specific queries:** Combine with other IPATool commands to download discovered apps specifically optimized for iPad dimensions and capabilities.

## Summary

- Use `ipatool search "<term>" --platform ipad` to filter exclusively for iPadOS applications according to the `majd/ipatool` source code
- The flag accepts both `"ipad"` and `"ipados"` strings, normalized to `PlatformIPad` in [`pkg/appstore/platform.go`](https://github.com/majd/ipatool/blob/main/pkg/appstore/platform.go)
- Internally, the tool maps this to the `iPadSoftware` entity recognized by Apple's App Store API
- Omitting `--platform` searches both iPhone (`software`) and iPad (`iPadSoftware`) catalogs simultaneously
- Results default to 5 items but can be adjusted with the `--limit` flag

## Frequently Asked Questions

### What happens if I don't specify the --platform flag?

When you omit the `--platform` flag, IPATool searches both the iPhone and iPad catalogs by default, using the entities `software` and `iPadSoftware` respectively. This returns applications compatible with either platform, which may include iPhone-only apps that run in compatibility mode on iPad.

### Can I search for other Apple platforms using the same method?

Yes, the `--platform` flag supports multiple values including `ios` (or `iphone`), `tvos`, and `visionos`. The same normalization logic in [`pkg/appstore/platform.go`](https://github.com/majd/ipatool/blob/main/pkg/appstore/platform.go) handles these variants, mapping them to their respective App Store entities like `tvSoftware` for Apple TV or `software` for iPhone.

### Why does IPATool use entity strings like "iPadSoftware" instead of just "ipad"?

Apple's App Store API requires specific entity identifiers to route queries to the correct catalog database. The `searchEntity()` method in the platform package abstracts these implementation details, translating user-friendly strings like "ipad" into the backend-specific `"iPadSoftware"` identifier that Apple's servers recognize.

### Is there a limit to how many results IPATool returns for iPadOS searches?

By default, IPATool limits iPadOS searches to 5 results. You can adjust this using the `--limit` flag, though the behavior varies by platform—visionOS supports up to 12 results, while iPadOS and iOS typically respect the 5-item default or your specified value up to the API maximum.