WildChat-4.8M — Filtered Conversation Subset
Source, license and coverage
Supplier documentation. These claims are separate from the automated sample score. A listing edit date is not a data freshness date.
- License
- odc-by
- Source / creator
- allenai/WildChat-4.8M
- Collection method
- AI2 deployed free ChatGPT and GPT-4 chatbots online; users consented to release their interactions in exchange for free access. Conversations were logged server-side along with model, timestamp, hashed IP, and coarse geolocation. Each turn was scored by the OpenAI Moderations API and Detoxify. PII was redacted from user inputs. This 4.8M release expands earlier WildChat-1M; the published subset here contains 3.2M conversations after filtering out turns flagged as toxic by either moderation pipeline.
- Coverage start
- Not documented
- Coverage end
- Not documented
- Data last updated
- Not documented
- Update schedule
- Not documented
- Geographic and demographic skew toward users who discovered the free chatbot service; not a representative sample of global ChatGPT usage. - Heavy English skew, though many languages appear in the long tail. - Moderation filtering relies on OpenAI Moderations + Detoxify, both of which have known false-positive and false-negative patterns; "non-toxic" should not be taken as safe-for-all-audiences. - Conversations reflect ChatGPT outputs from a specific timeframe; model behavior and capabilities have shifted since. - PII redaction is automated and imperfect — buyers handling user content should apply additional filtering.
Sample structure score: 98.2 / 100
This automated check describes the inspected sample, not factual accuracy, legal rights, representativeness, or the quality of the entire dataset. It is not a customer rating.
Assessed 10 sample records (JSON) on 2026-10-09. All records in the provided sample were checked.
| Check | Points | Evidence |
|---|---|---|
| Populated cells | 48.2 / 50 | 135 of 140 top-level cells contain a value. Null, absent and blank values count as missing; zero and false count as populated. |
| Consistent value types | 30 / 30 | 135 of 135 populated cells match their column's most common observed type. Types are inferred, not checked against real-world truth. |
| Consistent record shape | 20 / 20 | 10 of 10 records have the expected fields. CSV/TSV use the header width; JSON uses the union of observed keys. |
Field-level findings and improvements
Check missing cells and mixed types below. Document intentional missing values or mixed types in your field descriptions. Do not fill legitimate unknowns with invented values just to increase this score.
| Field | Missing cells | Most common type | Other populated types |
|---|---|---|---|
| conversation_hash | 0 / 10 | string | 0 / 10 |
| model | 0 / 10 | string | 0 / 10 |
| timestamp | 0 / 10 | object | 0 / 10 |
| conversation | 0 / 10 | object | 0 / 10 |
| turn | 0 / 10 | number | 0 / 10 |
| language | 0 / 10 | string | 0 / 10 |
| openai_moderation | 0 / 10 | object | 0 / 10 |
| detoxify_moderation | 0 / 10 | object | 0 / 10 |
| toxic | 0 / 10 | boolean | 0 / 10 |
| redacted | 0 / 10 | boolean | 0 / 10 |
| state | 5 / 10 | string | 0 / 5 |
| country | 0 / 10 | string | 0 / 10 |
| hashed_ip | 0 / 10 | string | 0 / 10 |
| header | 0 / 10 | object | 0 / 10 |
About this data
Real user–ChatGPT conversations collected by AI2, filtered using automated toxicity classifiers. Moderation and PII redaction are imperfect; this subset is not guaranteed safe for all audiences.
Retrieve with your agent or Python
Create an account and configure DATABAZAAR_API_KEY. This example retrieves free or already purchased data; it never makes a purchase. For a multi-file dataset, choose a file index from the manifest.
Download the Python examplepython3 retrieve-dataset.py 35def0ab-53be-414a-90c6-c001a37d3250 --output dataset.bin
Full supplier documentation
Schema
| Name | Type | Description |
|---|---|---|
| conversation_hash | VARCHAR | |
| model | VARCHAR | string — underlying model (e.g. gpt-3.5-turbo, gpt-4) |
| timestamp | TIMESTAMP | datetime — conversation time |
| conversation | STRUCT("content" VARCHAR, created BIGINT, "header" STRUCT("accept-language" VARCHAR, "user-agent" VARCHAR), hashed_ip VARCHAR, country VARCHAR, toxic BOOLEAN, redacted BOOLEAN, state VARCHAR, "language" VARCHAR, openai_id VARCHAR, "role" VARCHAR, temperature DOUBLE, "timestamp" TIMESTAMP, token_counter BIGINT, top_p DOUBLE, turn_identifier BIGINT, system_fingerprint VARCHAR, usage STRUCT(completion_tokens BIGINT, completion_tokens_details STRUCT(reasoning_tokens BIGINT, text_tokens BIGINT, audio_tokens BIGINT, accepted_prediction_tokens BIGINT, rejected_prediction_tokens BIGINT), prompt_tokens BIGINT, total_tokens BIGINT, prompt_tokens_details STRUCT(cached_tokens BIGINT, audio_tokens BIGINT)))[] | list[dict] — ordered turns with `role` (user/assistant) and `content` |
| turn | BIGINT | int — number of turns in the conversation |
| language | VARCHAR | string — detected language of the conversation |
| openai_moderation | STRUCT(categories STRUCT(harassment BOOLEAN, "harassment/threatening" BOOLEAN, harassment_threatening BOOLEAN, hate BOOLEAN, "hate/threatening" BOOLEAN, hate_threatening BOOLEAN, illicit BOOLEAN, "illicit/violent" BOOLEAN, illicit_violent BOOLEAN, "self-harm" BOOLEAN, "self-harm/instructions" BOOLEAN, "self-harm/intent" BOOLEAN, self_harm BOOLEAN, self_harm_instructions BOOLEAN, self_harm_intent BOOLEAN, sexual BOOLEAN, "sexual/minors" BOOLEAN, sexual_minors BOOLEAN, violence BOOLEAN, "violence/graphic" BOOLEAN, violence_graphic BOOLEAN), category_applied_input_types STRUCT(harassment VARCHAR[], "harassment/threatening" VARCHAR[], harassment_threatening VARCHAR[], hate VARCHAR[], "hate/threatening" VARCHAR[], hate_threatening VARCHAR[], illicit VARCHAR[], "illicit/violent" VARCHAR[], illicit_violent VARCHAR[], "self-harm" VARCHAR[], "self-harm/instructions" VARCHAR[], "self-harm/intent" VARCHAR[], self_harm VARCHAR[], self_harm_instructions VARCHAR[], self_harm_intent VARCHAR[], sexual VARCHAR[], "sexual/minors" VARCHAR[], sexual_minors VARCHAR[], violence VARCHAR[], "violence/graphic" VARCHAR[], violence_graphic VARCHAR[]), category_scores STRUCT(harassment DOUBLE, "harassment/threatening" DOUBLE, harassment_threatening DOUBLE, hate DOUBLE, "hate/threatening" DOUBLE, hate_threatening DOUBLE, illicit DOUBLE, "illicit/violent" DOUBLE, illicit_violent DOUBLE, "self-harm" DOUBLE, "self-harm/instructions" DOUBLE, "self-harm/intent" DOUBLE, self_harm DOUBLE, self_harm_instructions DOUBLE, self_harm_intent DOUBLE, sexual DOUBLE, "sexual/minors" DOUBLE, sexual_minors DOUBLE, violence DOUBLE, "violence/graphic" DOUBLE, violence_graphic DOUBLE), flagged BOOLEAN)[] | list[dict] — per-turn moderation scores from OpenAI Moderations API |
| detoxify_moderation | STRUCT(identity_attack DOUBLE, insult DOUBLE, obscene DOUBLE, severe_toxicity DOUBLE, sexual_explicit DOUBLE, threat DOUBLE, toxicity DOUBLE)[] | list[dict] — per-turn Detoxify scores |
| toxic | BOOLEAN | bool — overall toxicity flag (false for this subset) |
| redacted | BOOLEAN | bool — whether PII redaction was applied |
| state | VARCHAR | coarse geo metadata derived from IP |
| country | VARCHAR | coarse geo metadata derived from IP |
| hashed_ip | VARCHAR | coarse geo metadata derived from IP |
| header | STRUCT("accept-language" VARCHAR, "user-agent" VARCHAR) |
Sample Data
Preview a sample of the data before downloading.
Public sample only. Sign in to retrieve the full dataset, including free datasets.
For AI Agents
# 1. Add to your agent's MCP config (claude_desktop_config.json or similar):
{
"mcpServers": {
"databazaar": { "command": "npx", "args": ["databazaar-mcp"] }
}
}
# 2. Your agent can then call:
search_datasets({ query: "WildChat-4.8M — Filtered Conve" })
// Found: 35def0ab-53be-414a-90c6-c001a37d3250
get_download_url({ dataset_id: "35def0ab-53be-414a-90c6-c001a37d3250" }) // free — sign in with MCP OAuth first# Free dataset — sign in or use your account API key: curl https://api.databazaar.io/datasets/35def0ab-53be-414a-90c6-c001a37d3250/download-url -H "Authorization: Bearer $DATABAZAAR_API_KEY"