# Global Phone Compatibility Checker (`factrelay/global-phone-compatibility-checker`) Actor

Phone compatibility checker for BYOD, unlocked, international, imported, and travel phones across 19 markets and 39 carriers using official carrier evidence. Check 1 to 100 phones with bulk workflows via web, API, automation, or AI agents.

- **URL**: https://apify.com/factrelay/global-phone-compatibility-checker.md
- **Developed by:** [Liou](https://apify.com/factrelay) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Global Phone Compatibility Checker

Check phone compatibility across **19 markets and 39 carriers** using **official carrier evidence**. This Actor is built for **BYOD compatibility**, **unlocked phone compatibility**, **international phone compatibility**, **imported phone compatibility**, and **travel phone compatibility**. It uses fixed reviewed carrier sources with **no guessing** from generic band lists.

### Quick start

Enter just four required fields:

- **Phone brand** - for example, Apple or Samsung.
- **Phone model** - for example, iPhone 15 or Galaxy S25.
- **Use in country** - where you want to use the phone.
- **Carrier to use** - the mobile network you plan to use.

Run the Actor. Each phone returns a human-readable `status`, `summary`, and `next_step`, plus stable machine fields for APIs and AI agents.

`CARRIER_CONFIRMED` means the reviewed official evidence supports the scoped carrier conclusion. `CARRIER_CONFIRMATION_REQUIRED` is a normal, useful result- not an error: the official evidence was found, but the carrier still requires its own confirmation step. `UNKNOWN` means the evidence is insufficient, unavailable, blocked, or has changed, so the Actor fails closed instead of guessing.

Optional regional/hardware `variant` and eight-digit `tac` can make a check more specific. Full IMEI is never accepted. For **bulk phone compatibility**, add `additional_queries` with up to 99 extra phones for **1 to 100 checks per run**.

### Phone carrier compatibility checker for BYOD and unlocked phones

Use it before switching carriers, activating an unlocked phone, taking an international phone abroad, checking an imported device, preparing travel, resale, provisioning, or automating compatibility decisions in an API or AI-agent workflow.

### Current official-source coverage

| Market | Carriers | Verification |
| --- | --- | --- |
| Australia | Telstra | Telstra: official source |
| Canada | Bell, Rogers, TELUS, Virgin Plus | Bell: official source; Rogers: official source; TELUS: manual official check; Virgin Plus: official source |
| France | Orange, SFR | Orange: official source; SFR: official source |
| Germany | O2, Vodafone | O2: official source; Vodafone: official source |
| Hong Kong | csl | csl: official source |
| India | Airtel, Jio, Vi | Airtel: official source; Jio: official source; Vi: official source |
| Italy | Vodafone | Vodafone: official source |
| Japan | NTT docomo, au | NTT docomo: official source; au: official source |
| Malaysia | Maxis | Maxis: official source |
| Netherlands | KPN, Odido | KPN: official source; Odido: official source |
| New Zealand | 2degrees, One NZ | 2degrees: official source; One NZ: official source |
| Philippines | Smart | Smart: official source |
| Singapore | M1, Singtel | M1: official source; Singtel: official source |
| South Korea | KT, SK Telecom | KT: official source; SK Telecom: official source |
| Spain | Orange | Orange: official source |
| Taiwan | Chunghwa Telecom, Taiwan Mobile | Chunghwa Telecom: official source; Taiwan Mobile: official source |
| Thailand | True-dtac | True-dtac: official source |
| United Kingdom | EE, O2, Three, Vodafone | EE: official source; O2: official source; Three: official source; Vodafone: official source |
| United States | AT\&T, Google Fi, T-Mobile, Tello, Verizon | AT\&T: official source; Google Fi: official source; T-Mobile: manual official check; Tello: manual official check; Verizon: official source |

Coverage expands only when a fixed official source can be safely verified and fixture-tested. An unregistered carrier cannot receive a positive compatibility claim. The product does not claim universal phone compatibility.

Machine-readable coverage: `global-phone-compatibility-checker coverage --json`.

### Reading the result

Each dataset item starts with three human-readable fields: `status` gives the plain-language outcome, `summary` explains what the official evidence supports, and `next_step` tells you what to do next when another carrier check is required. `verdict` remains the canonical machine decision for APIs and AI agents.

`CARRIER_CONFIRMED` means the returned official evidence supports that scoped carrier conclusion. `CARRIER_CONFIRMATION_REQUIRED` means the carrier still requires its own confirmation step. `UNKNOWN` means the available evidence is insufficient, unsupported, conflicting, or unavailable.

`SOURCE_UNAVAILABLE` means a registered official source could not be safely retrieved or verified during the run. The Actor keeps the result truthful—normally `UNKNOWN`—instead of retrying until it finds a favorable answer.

Feature findings such as `VoLTE`, `VoWiFi`, `4G`, or `LTE` are scoped evidence and are not a universal compatibility verdict. A policy requirement alone does not prove that a specific phone supports that feature on that carrier.

### Common uses

- Check whether an unlocked phone can be used before switching carriers.
- Check an international or imported phone before travel, resale, or activation.
- Add evidence-backed BYOD compatibility to onboarding and provisioning workflows.
- Let an API client, automation, or AI agent retrieve a stable result plus official evidence.
- Identify when an official carrier confirmation step is still required.

### FAQ

#### Will my phone work with my carrier

Enter the phone brand, model, country, and carrier. If the carrier is registered, the Actor evaluates its official evidence and returns a scoped verdict. If evidence is missing or the source has drifted, it fails closed instead of guessing.

#### Check an unlocked or international phone

Yes. The same contract can be used for unlocked, imported, and international phones. A carrier may still require its own eligibility or device-confirmation step.

#### IMEI checker boundary

No. This Actor intentionally does not accept a full IMEI. An optional TAC is limited to exactly eight ASCII digits. When a carrier requires a full IMEI, the result can tell you that carrier confirmation is still needed without collecting the identifier here.

#### AI agents and APIs

Yes. The Actor has stable input/output schemas and returns human-readable `status`, `summary`, and `next_step` fields alongside `verdict`, `confidence`, `checked_at`, `features`, `evidence`, `source_urls`, and `confirmation_steps`, making it suitable for Apify API, MCP discovery, automation, and agent workflows.

# Actor input Schema

## `brand` (type: `string`):

Choose a common brand or type another phone brand.

## `model` (type: `string`):

Choose a suggested model or type the exact phone model.

## `country` (type: `string`):

Where you want to use the phone. Suggested markets are currently supported; API aliases remain accepted.

## `carrier` (type: `string`):

Choose a carrier labeled for the same country selected above. Suggestions are grouped by market; supported aliases remain accepted in API input.

## `variant` (type: `string`):

Optional. Enter an exact regional or hardware variant/model code only if you know it. Purchase country alone does not identify the hardware variant.

## `tac` (type: `string`):

Optional eight-digit Type Allocation Code only. Never enter a full IMEI.

## `additional_queries` (type: `array`):

Optional bulk mode. Add up to 99 more phones; each result is returned as its own dataset item.

## Actor input object example

```json
{
  "brand": "Apple",
  "model": "iPhone 11 Pro",
  "country": "Taiwan",
  "carrier": "Chunghwa Telecom"
}
```

# Actor output Schema

## `results` (type: `string`):

One or more compatibility results produced by this Actor run.

# 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 = {
    "brand": "Apple",
    "model": "iPhone 11 Pro",
    "country": "Taiwan",
    "carrier": "Chunghwa Telecom"
};

// Run the Actor and wait for it to finish
const run = await client.actor("factrelay/global-phone-compatibility-checker").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 = {
    "brand": "Apple",
    "model": "iPhone 11 Pro",
    "country": "Taiwan",
    "carrier": "Chunghwa Telecom",
}

# Run the Actor and wait for it to finish
run = client.actor("factrelay/global-phone-compatibility-checker").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "brand": "Apple",
  "model": "iPhone 11 Pro",
  "country": "Taiwan",
  "carrier": "Chunghwa Telecom"
}' |
apify call factrelay/global-phone-compatibility-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,factrelay/global-phone-compatibility-checker"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/PVRaPSVff3ePttVo6/builds/TJrnobxzgICESiwBD/openapi.json
