# GSMArena Scraper (`crawlerbros/gsmarena-scraper`) Actor

Scrape GSMArena, the world's largest mobile device database with 13K+ phones. Search devices, get full specifications, browse by brand, or list top devices. Extracts display, chipset, camera, battery, RAM, storage, OS, and 40+ spec fields.

- **URL**: https://apify.com/crawlerbros/gsmarena-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## GSMArena Scraper

Extract mobile device specifications from [GSMArena.com](https://www.gsmarena.com) — the world's largest mobile phone database with 13,000+ devices. Get full technical specs including display, chipset, cameras, battery, OS, connectivity, and 40+ fields per device.

### What You Can Scrape

- **Search** phones by keyword with optional OS, availability, and sort filters
- **Full specifications** for any device (200+ spec fields available)
- **Brand listings** — all devices from Samsung, Apple, Xiaomi, Google, and 100+ brands
- **Top devices** sorted by popularity, price, weight, camera resolution, or battery capacity

### Output Fields

| Field | Description | Example |
|---|---|---|
| `deviceName` | Full device name | Samsung Galaxy S26 Ultra |
| `brand` | Manufacturer | Samsung |
| `url` | GSMArena device page URL | https://www.gsmarena.com/samsung_galaxy_s26_ultra_5g-14320.php |
| `imageUrl` | Product image URL | https://fdn2.gsmarena.com/... |
| `released` | Release date | 2026, March 06 |
| `status` | Availability status | Available |
| `displaySize` | Screen size | 6.9 inches |
| `displayResolution` | Screen resolution | 1440 x 3120 pixels |
| `displayType` | Panel technology | Dynamic LTPO AMOLED 2X, 120Hz |
| `chipset` | Processor | Qualcomm Snapdragon 8 Elite Gen 5 |
| `cpu` | CPU details | Octa-core (2x4.74 GHz + 6x3.62 GHz) |
| `gpu` | GPU | Adreno 840 |
| `os` | Operating system | Android 16, One UI 8.5 |
| `ram` | RAM capacity | 12GB |
| `storage` | Internal storage | 256GB |
| `rearCamera` | Main camera resolution | 200 MP |
| `rearCameraDetails` | Full rear camera specs | 200 MP, f/1.4, 23mm... |
| `frontCamera` | Selfie camera resolution | 12 MP |
| `battery` | Battery capacity | 5000 mAh |
| `network` | Highest network standard | 5G |
| `networkTechnology` | Full network specs | GSM / CDMA / HSPA / LTE / 5G |
| `wlan` | Wi-Fi standard | Wi-Fi 802.11 a/b/g/n/ac/6e/7 |
| `bluetooth` | Bluetooth version | 6.0, A2DP, LE |
| `nfc` | NFC support | Yes |
| `usb` | USB type | USB Type-C 3.2, OTG |
| `gps` | GPS systems | GPS, GLONASS, BDS, GALILEO |
| `dimensions` | Physical dimensions | 163.6 x 78.1 x 7.9 mm |
| `weight` | Device weight | 214 g |
| `build` | Materials | Glass front, aluminum frame |
| `sim` | SIM type | Nano-SIM + eSIM |
| `sensors` | Sensor list | Fingerprint, accelerometer, gyro |
| `colors` | Available colors | Cobalt Violet, Sky Blue, Black |
| `price` | Suggested retail price | $1,049.99 / €934.99 |
| `scrapedAt` | Scrape timestamp (ISO 8601) | 2026-05-23T12:00:00+00:00 |

### Input Configuration

#### Mode: `search` (default)

Search for devices using keywords with optional filters.

```json
{
  "mode": "search",
  "searchQuery": "Samsung Galaxy S25",
  "osFilter": "2",
  "availability": "1",
  "sortBy": "0",
  "maxItems": 20
}
````

| Parameter | Type | Description |
|---|---|---|
| `searchQuery` | string | Keyword to search (device name, brand) |
| `osFilter` | select | Filter by OS: `2`=Android, `3`=iOS, `1`=Feature phones, `10`=KaiOS |
| `availability` | select | `1`=Available, `2`=Coming soon, `3`=Discontinued, `5`=Rumored |
| `sortBy` | select | `0`=Popularity, `1`=Price, `2`=Weight, `3`=Camera, `4`=Battery |
| `maxItems` | integer | Maximum records to return (1–2000) |

#### Mode: `deviceDetails`

Fetch the complete specification sheet for a single device.

```json
{
  "mode": "deviceDetails",
  "deviceUrl": "samsung_galaxy_s26_ultra_5g-14320"
}
```

Accepts a full URL (`https://www.gsmarena.com/samsung_galaxy_s26_ultra_5g-14320.php`) or just the slug (`samsung_galaxy_s26_ultra_5g-14320`).

#### Mode: `byBrand`

List all devices from a specific manufacturer.

```json
{
  "mode": "byBrand",
  "brandSlug": "samsung",
  "maxItems": 50
}
```

Popular brand slugs: `samsung`, `apple`, `xiaomi`, `google`, `huawei`, `sony`, `nokia`, `motorola`, `oneplus`, `realme`, `honor`, `oppo`, `vivo`, `lenovo`, `htc`, `lg`.

#### Mode: `topDevices`

Browse devices sorted by popularity (or price, weight, camera, battery).

```json
{
  "mode": "topDevices",
  "sortBy": "0",
  "osFilter": "2",
  "maxItems": 30
}
```

### Example Use Cases

- **Market research** — Compare flagship specifications across competing brands
- **Price tracking** — Monitor suggested retail prices for 13,000+ devices
- **Product databases** — Build device compatibility matrices for apps and accessories
- **Tech journalism** — Quickly pull spec sheets for review articles
- **E-commerce** — Enrich product listings with authoritative technical data
- **Lead generation** — Find carriers and retailers stocking specific device categories

### Frequently Asked Questions

**Is this data publicly available?**
Yes. GSMArena publishes all device specifications publicly at gsmarena.com, accessible without any account or login.

**How often is GSMArena data updated?**
GSMArena typically adds new devices within days of announcement. The scraper fetches live data on each run.

**Can I get specs for older phones?**
Yes. GSMArena maintains an archive of 13,000+ devices spanning from early 2000s feature phones to the latest 2026 flagships.

**What's the best mode for bulk data collection?**
Use `byBrand` with `maxItems: 2000` to collect all devices from a specific manufacturer, or `search` with broad keywords and `maxItems: 500` for cross-brand collection.

**Do I need an API key or proxy?**
No. GSMArena serves all specification data publicly from standard datacenter IPs. No authentication, cookies, or proxy required.

**How many requests does this scraper make?**
`search` and `byBrand` modes make 1 request per page (up to 60 results per page). `deviceDetails` makes a single request per device.

**Can I get all devices from every brand?**
Yes — run `byBrand` for each brand. GSMArena lists 100+ brands on their makers page. Samsung alone has 1,400+ devices across 30 pages.

# Actor input Schema

## `mode` (type: `string`):

What to scrape.

## `searchQuery` (type: `string`):

Free-text search (mode=search). Example: `Samsung Galaxy S25`.

## `osFilter` (type: `string`):

Filter by operating system (mode=search).

## `availability` (type: `string`):

Filter by device availability (mode=search).

## `sortBy` (type: `string`):

Sort search results (mode=search and mode=topDevices).

## `deviceUrl` (type: `string`):

Full URL or slug for mode=deviceDetails. Example: `samsung_galaxy_s25_ultra-12610` or `https://www.gsmarena.com/samsung_galaxy_s25_ultra-12610.php`.

## `brandSlug` (type: `string`):

Brand slug for mode=byBrand. Example: `samsung`, `apple`, `xiaomi`, `google`, `huawei`, `sony`, `nokia`, `motorola`, `oneplus`, `realme`, `honor`, `oppo`, `vivo`, `lenovo`.

## `maxItems` (type: `integer`):

Maximum number of device records to return.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "Samsung Galaxy",
  "osFilter": "",
  "availability": "",
  "sortBy": "0",
  "deviceUrl": "samsung_galaxy_s25_ultra-12610",
  "brandSlug": "samsung",
  "maxItems": 20
}
```

# Actor output Schema

## `devices` (type: `string`):

Dataset containing all scraped GSMArena device records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "searchQuery": "Samsung Galaxy",
    "osFilter": "",
    "availability": "",
    "sortBy": "0",
    "deviceUrl": "samsung_galaxy_s25_ultra-12610",
    "brandSlug": "samsung",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/gsmarena-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "searchQuery": "Samsung Galaxy",
    "osFilter": "",
    "availability": "",
    "sortBy": "0",
    "deviceUrl": "samsung_galaxy_s25_ultra-12610",
    "brandSlug": "samsung",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/gsmarena-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "searchQuery": "Samsung Galaxy",
  "osFilter": "",
  "availability": "",
  "sortBy": "0",
  "deviceUrl": "samsung_galaxy_s25_ultra-12610",
  "brandSlug": "samsung",
  "maxItems": 20
}' |
apify call crawlerbros/gsmarena-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/gsmarena-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "GSMArena Scraper",
        "description": "Scrape GSMArena, the world's largest mobile device database with 13K+ phones. Search devices, get full specifications, browse by brand, or list top devices. Extracts display, chipset, camera, battery, RAM, storage, OS, and 40+ spec fields.",
        "version": "1.0",
        "x-build-id": "2CjPjjqR1A2qiCdRo"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~gsmarena-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-gsmarena-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~gsmarena-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-gsmarena-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~gsmarena-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-gsmarena-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "deviceDetails",
                            "byBrand",
                            "topDevices"
                        ],
                        "type": "string",
                        "description": "What to scrape.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Free-text search (mode=search). Example: `Samsung Galaxy S25`.",
                        "default": "Samsung Galaxy"
                    },
                    "osFilter": {
                        "title": "OS filter",
                        "enum": [
                            "",
                            "2",
                            "3",
                            "1",
                            "10",
                            "4",
                            "5",
                            "6",
                            "7",
                            "9"
                        ],
                        "type": "string",
                        "description": "Filter by operating system (mode=search).",
                        "default": ""
                    },
                    "availability": {
                        "title": "Availability filter",
                        "enum": [
                            "",
                            "1",
                            "2",
                            "3",
                            "5"
                        ],
                        "type": "string",
                        "description": "Filter by device availability (mode=search).",
                        "default": ""
                    },
                    "sortBy": {
                        "title": "Sort order",
                        "enum": [
                            "0",
                            "1",
                            "2",
                            "3",
                            "4"
                        ],
                        "type": "string",
                        "description": "Sort search results (mode=search and mode=topDevices).",
                        "default": "0"
                    },
                    "deviceUrl": {
                        "title": "Device URL or slug",
                        "type": "string",
                        "description": "Full URL or slug for mode=deviceDetails. Example: `samsung_galaxy_s25_ultra-12610` or `https://www.gsmarena.com/samsung_galaxy_s25_ultra-12610.php`."
                    },
                    "brandSlug": {
                        "title": "Brand slug (mode=byBrand)",
                        "type": "string",
                        "description": "Brand slug for mode=byBrand. Example: `samsung`, `apple`, `xiaomi`, `google`, `huawei`, `sony`, `nokia`, `motorola`, `oneplus`, `realme`, `honor`, `oppo`, `vivo`, `lenovo`."
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Maximum number of device records to return.",
                        "default": 20
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
