Disposable Phones

The Disposable Phone Dataset provides structured information on phone numbers associated with disposable, temporary, or virtual providers. This dataset is useful for fraud detection, risk assessment, and identity verification processes. The dataset is updated periodically and is delivered in CSV format for easy integration into various database systems.

Dataset Structure

The dataset contains the following fields:

  • msisdn: The mobile phone number is in international format with + sign.
  • updated_at: The date timestamp when the entry was last updated in the format YYYY-MM-DD.
  • providers: A JSON-formatted array of disposable phone providers associated with the number.

Example Data

msisdn,updated_at,disposable_provider_list
+3197010580467,2025-03-04,"[""quackr.io""]"
+32468799959,2025-03-04,"[""smstome.com""]"
+3197010587412,2025-03-04,"[""quackr.io""]"
+447457413062,2025-03-04,"[""quackr.io""]"
+5522920058491,2025-03-04,"[""sms-man.com""]"
+17804237849,2025-03-04,"[""smsonline.cloud""]"
+447893986803,2025-03-04,"[""quackr.io"", ""smscodeonline.com""]"

Creating the SQL Schema

To store the dataset efficiently in a relational database, the following schema structure is recommended.

Table: disposable_phone_data

This table stores the core dataset information.

CREATE TABLE disposable_phone_data (
    msisdn VARCHAR(20) PRIMARY KEY,
    updated_at DATE NOT NULL,
    providers JSONB NOT NULL
);

Table: disposable_providers (Optional for Normalization)

If you need to normalize the disposable_provider_list field, a separate table can store individual provider associations.

CREATE TABLE disposable_providers (
    id UNIQUEID PRIMARY KEY,
    msisdn VARCHAR(20) REFERENCES disposable_phone_data(msisdn),
    provider_name VARCHAR(255) NOT NULL
);

Importing into PostgreSQL

To import the dataset into PostgreSQL, use the COPY command:

COPY 
	disposable_phone_data(msisdn, updated_at, providers)
FROM 
	'/path/to/disposable_phone_dataset.csv'
DELIMITER ','
CSV HEADER;

Normalizing the Provider List

If using a normalized schema, a script or stored procedure will be needed to split the disposable_provider_list column and insert the individual provider records into the disposable_providers table.

INSERT INTO 
	disposable_providers (msisdn, provider_name)
SELECT 
	msisdn, 
  unnest(string_to_array(replace(providers::TEXT, '"', ''), ','))
FROM 
	disposable_phone_data;