This project provides standalone scripts to generate a comprehensive JSON database of Apple device specifications (iPhone and iPad models) by combining data from public sources.
- Fetches device specs (chip, RAM, SKU) from TheAppleWiki and local Xcode resources
- Merges and standardizes the data into JSON files
- No dependencies on other scripts or files—just run the scripts you need
- 
Install dependencies: pip install -r requirements.txt 
- 
Run the scripts: # For iPhone data python src/generate_apple_device_specs.py # For iPad data python src/generate_ipad_device_specs.py This will create or update the respective JSON files in the apple/directory.
- Python 3.7+
- pandas
- requests
- apple/iPhone.json: Contains structured iPhone device data
- apple/iPad.json: Contains structured iPad device data
- The scripts are fully standalone. You do not need any other files to generate the data.
- Each script focuses on a specific device type (iPhone or iPad).
- The data is filtered to include only recent devices:
- iPhones: iPhone XR/XS and newer models
- iPads: Models with A12 chip or newer
 
- The Apple Wiki for device specifications
- Xcode (for device SKU information)
{
  "date_generated": "YYYY-MM-DDTHH:MM:SS.SSSSSS",
  "xcode_version": "Version X.Y.Z (XXXXX)",
  "total_menu": {
    "device_name": {
      "sku": "device_sku",
      "chip": "chip_name",
      "ram": "X GB"
    }
  }
}{
  "date_generated": "YYYY-MM-DDTHH:MM:SS.SSSSSS",
  "xcode_version": "Version X.Y.Z (XXXXX)",
  "total_menu": {
    "device_name": {
      "sku": ["sku1", "sku2"],  // List of SKUs for different variants
      "chip": "chip_name",
      "ram": "X GB"
    }
  }
}.
├── README.md
├── LICENSE
├── requirements.txt
├── android/          # Future support for Android devices
├── apple/
│   ├── iPhone.json  # iPhone specifications
│   └── iPad.json    # iPad specifications
└── src/
    ├── generate_apple_device_specs.py  # iPhone data generator
    └── generate_ipad_device_specs.py   # iPad data generator
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add some amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- The Apple Wiki for device specifications
- Xcode for device SKU information