Realtor.com Scraper with Agents | Enterprise Grade
Pricing
from $0.70 / 1,000 results
Realtor.com Scraper with Agents | Enterprise Grade
Extract US real estate listings from Realtor.com at scale with rich property detail, agent and office data, deep listing metadata, and market insights. Built for enterprise-grade real estate intelligence, lead enrichment, and automated analytics pipelines.
Pricing
from $0.70 / 1,000 results
Rating
0.0
(0)
Developer
Fatih Tahta
Maintained by CommunityActor stats
2
Bookmarked
10
Total users
4
Monthly active users
0.059 hours
Issues response
4 days ago
Last modified
Categories
Share
Realtor.com Scraper
Slug: fatihtahta/realtor-com-scraper
Overview
Realtor.com Scraper collects structured residential real estate listing data, including property identifiers, listing URLs, prices, addresses, room counts, lot and building attributes, listing status, media, agent or office contact details, and source metadata when available. Realtor.com is a major U.S. real estate marketplace, making its public listing data useful for market analysis, inventory monitoring, lead enrichment, and operational reporting. The actor converts location-based searches and supported listing filters into repeatable JSON output that is easier to use in analytics tools, data pipelines, and business applications. It is designed for recurring data acquisition workflows where consistent structure, clear input controls, and predictable dataset delivery matter. Availability and field coverage depend on what Realtor.com publicly exposes at run time.
Why Use This Actor
- Market research and analytics: collect structured extraction results for market intelligence, pricing analysis, inventory trend tracking, and geographic comparison.
- Product and content teams: use normalized listing data to support property experiences, editorial research, content operations, or location-based feature planning.
- Developers and data engineering teams: feed repeatable collection output into downstream systems, ETL jobs, data warehouses, and enrichment pipelines.
- Lead generation and enrichment teams: build or enrich prospect datasets with public property, agent, office, and listing attributes.
- Monitoring and competitive tracking teams: schedule recurring runs to monitor listing changes, availability, price movement, property segments, and operational reporting inputs.
Common Use Cases
- Market intelligence: monitor supply, pricing, availability, property characteristics, listing locations, and category movement across U.S. markets.
- Lead generation: build targeted prospect lists from public property listings, agent records, offices, and listing source details.
- Competitive monitoring: track property availability, price reductions, builder promotions, luxury inventory, or rental market movement.
- Catalog and directory building: populate internal databases with structured public real estate records and searchable property attributes.
- Data enrichment: add current public listing details to CRM, BI, underwriting, investment, or analytics datasets.
- Recurring reporting: schedule periodic runs for dashboards, alerts, geographic comparisons, or trend analysis.
Quick Start
- Add one or more U.S. search locations in
location, such as a city, neighborhood, ZIP code, state, or regional term. - Choose the listing category with
deal_type:buy,rent, orsold. - Set a small
limitfor the first validation run, such as 25 or 50 results per location. - Run the actor in Apify Console.
- Inspect the first dataset records to confirm the fields, coverage, and listing type match your use case.
- Increase coverage, add filters, enable richer details with
enrich_data, or schedule the actor after the output is verified.
Input Parameters
The actor accepts location-based Realtor.com searches with optional listing category, property profile, timing, pricing, size, age, amenity, and collection controls.
| Parameter | Type | Description | Default |
|---|---|---|---|
location | array of strings | Search locations. Add each U.S. city, neighborhood, ZIP code, state, or regional term as a separate item. At least one location is required for normal collection. | – |
deal_type | string | Listing category. Allowed values: buy for for-sale listings, rent for rental listings, sold for sold listings. | buy |
property_type | array of strings | Property categories to include. Allowed values: house, condo, townhome, multi_family, mobile, land, farm. Leave empty to include all available property types. | – |
listing_status | string | Listing status filter. Allowed values: active, pending_contingent. Leave empty to avoid narrowing by status. | – |
home_tours | array of strings | Tour availability filter. Allowed values: open_house, 3d_tour, virtual_tour. | – |
internal_amenities | array of strings | Interior amenity filters. Allowed values: accessibility, basement, central_air, central_heat, den_office, dining_room, elevator, energy_efficient, family_room, fireplace, forced_air, game_room, hardwood_floors, in_home_laundry. | – |
external_amenties | array of strings | Outdoor amenity filters. Allowed values: carport, corner_lot, cul_de_sac, golf_course_lot, horse_facility, pool, rv_boat_parking, spa_hot_tub. | – |
views | array of strings | View and waterfront filters. Allowed values: city_view, golf_view, hill_view, lake_view, ocean_view, river_view, water_front. | – |
community | array of strings | Community amenity filters. Allowed values: community_55_plus, boat_facility, clubhouse, golf_course, horse_facility, park, pool, recreation_facility, security_feature, spa_hot_tub, tennis_court. | – |
expand_radius | string | Search radius around each location, in miles. Allowed values: 1, 2, 5, 10, 25, 50. Leave empty to use the standard location boundary. | – |
max_hoa_fee | string | Maximum monthly HOA fee. Allowed values: no_fee, 50, 100, 200, 300, 400, 500, 750, 1000, 1500, 2000, 2500, 3000. Values are USD per month. | – |
building_type | string | Building format filter. Allowed values: house, row_townhouse, apartment, duplex, triplex, fourplex, garden_home, mobile_home, manufactured_home_mobile, special_purpose, residential_commercial_mix, manufactured_home, commercial_apartment, two_apartment_house, park_model_mobile_home, floathome. | – |
publication_date | string | Listing freshness window. Allowed values: 24_hours, 7_days, 14_days, 21_days, 30_days. | – |
keyword | string | Text term or phrase used to focus results on matching listings. | – |
open_house_only | boolean | Collect only listings with open house availability in the next 7 days. | false |
live_stream_only | boolean | Collect only listings with live stream open house availability in the next 7 days. | false |
price_reduced | boolean | Collect only listings marked as price reduced. | false |
builder_promotions | boolean | Collect only listings with builder promotions. | false |
min_parking | string | Minimum garage spaces. Allowed values: 1, 2, 3, representing 1+, 2+, or 3+ spaces. | – |
storey | string | Storey layout. Allowed values: single_story, two_or_more_stories. | – |
maximize_coverage | boolean | Collect more matching listings for larger searches where broader coverage is preferred. | false |
enrich_data | boolean | Collect richer property listing details, such as full descriptions, detailed features, photo galleries, agent details, and listing source metadata when available. | false |
min_bedroom | string | Minimum bedrooms. Allowed values: studio, 1, 2, 3, 4, 5. | – |
max_bedroom | string | Maximum bedrooms. Allowed values: studio, 1, 2, 3, 4, 5. | – |
min_bathroom | string | Minimum bathrooms. Allowed values: 1, 2, 3, 4, 5. | – |
max_bathroom | string | Maximum bathrooms. Allowed values: 1, 2, 3, 4, 5. | – |
bedroom_count | string | Exact or minimum bedroom count. Allowed values: 1+, 2+, 3+, 4+, 5+, 1, 2, 3, 4, 5. | – |
bathroom_count | string | Exact or minimum bathroom count. Allowed values: 1+, 2+, 3+, 4+, 5+, 1, 2, 3, 4, 5. | – |
limit | integer | Maximum listings to save per location. Minimum value: 1. Leave empty to collect as many matching listings as the run can retrieve. | – |
min_price | integer | Minimum asking price in USD. Minimum value: 0. | – |
max_price | integer | Maximum asking price in USD. Minimum value: 0. | – |
min_building_area | string | Minimum building area in square feet. Allowed values: 500, 750, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750. | – |
max_building_area | string | Maximum building area in square feet. Allowed values: 2250, 2500, 2750, 3000, 3250, 3500, 3750, 5000, 7500, 10000. | – |
min_land_area | string | Minimum lot size. Allowed values: 2000, 3000, 4000, 5000, 7500, 10890, 21780, 43560, 87120, 217800, 435600, 653400, 871200, 2178000, 4356000. Values are square feet, with common acre equivalents shown in the input UI. | – |
max_land_area | string | Maximum lot size. Allowed values: 2000, 3000, 4000, 5000, 7500, 10890, 21780, 43560, 87120, 217800, 435600, 653400, 871200, 2178000, 4356000. Values are square feet, with common acre equivalents shown in the input UI. | – |
min_building_age | string | Minimum building age in years. Allowed values: 1, 3, 5, 10, 15, 20, 25, 30, 50, 75, 100. | – |
max_building_age | string | Maximum building age in years. Allowed values: 1, 3, 5, 10, 15, 20, 25, 30, 50, 75, 100. | – |
min_year_built | string | Earliest year built. Allowed values: 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2010, 2005, 2000, 1990, 1980, 1970, 1960, 1950, 1940, 1930, 1920, 1910, 1900. | – |
max_year_built | string | Latest year built. Allowed values: 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2010, 2005, 2000, 1990, 1980, 1970, 1960, 1950, 1940, 1930, 1920, 1910, 1900. | – |
Choosing Inputs
Start with the smallest input set that represents your target scope: one or more location values, a deal_type, and a conservative limit. Broader locations and fewer filters improve discovery, while narrower filters produce more targeted datasets for a specific segment, price band, property profile, or monitoring workflow. Use publication_date, price_reduced, open_house_only, and builder_promotions when freshness or listing events matter. Use min_price, max_price, room counts, area, lot size, building age, and amenity filters when the output needs to match a clearly defined property profile. Increase limit, enable maximize_coverage, or turn on enrich_data only after validating that the output shape and coverage match your downstream needs.
Example Inputs
Example: For-sale listings in one market
{"location": ["Austin, TX"],"deal_type": "buy","property_type": ["house", "townhome"],"min_price": 500000,"max_price": 1200000,"limit": 50}
Example: Recent rental monitoring
{"location": ["10001", "Brooklyn, NY"],"deal_type": "rent","publication_date": "7_days","min_bedroom": "1","max_price": 4500,"limit": 75}
Example: Broad discovery with richer records
{"location": ["Dallas, TX"],"deal_type": "buy","property_type": ["house"],"maximize_coverage": true,"enrich_data": true,"limit": 100}
Output
Output Destination
The actor saves normalized Realtor.com property listing records to the default Apify dataset. Each item is a property_listing record with stable identifiers, source/audit context, property details, pricing, location, media, contacts, relationships, metrics, and source-specific attributes grouped under predictable nested paths.
The actor may also save an interactive results map in the key-value store when saved listings include coordinates.
Record Envelope And Stable Identifiers
Use record_id as the primary property-level dedupe key. Realtor.com's property and listing IDs are also preserved under entity.external_ids; the listing-specific ID is repeated at listing.listing_id for workflows that track separate listing instances over time.
source_context.source_url records the source URL that produced the item. source_context.listing_url, source_context.canonical_url, and entity.url point to the public listing URL when a permalink is available.
Example: Property Listing Record
{"record_type": "property_listing","record_id": "9287164194","source_context": {"source_name": "Realtor.com","source_domain": "realtor.com","source_url": "https://www.realtor.com/frontdoor/graphql?location=Dallas","canonical_url": "https://www.realtor.com/realestateandhomes-detail/5619-Walnut-Hill-Ln_Dallas_TX_75229_M92871-64194","listing_url": "https://www.realtor.com/realestateandhomes-detail/5619-Walnut-Hill-Ln_Dallas_TX_75229_M92871-64194","seed_type": "query","seed_value": "Dallas","page_index": 1,"external_ids": {"property_id": "9287164194","source_id": "NTTX","source_name": "NTREIS","source_listing_id": "20854653"},"permalink": "5619-Walnut-Hill-Ln_Dallas_TX_75229_M92871-64194","enriched": true,"detail_url": "https://www.realtor.com/realestateandhomes-detail/5619-Walnut-Hill-Ln_Dallas_TX_75229_M92871-64194"},"entity": {"title": "5619 Walnut Hill Ln, Dallas, TX, 75229","url": "https://www.realtor.com/realestateandhomes-detail/5619-Walnut-Hill-Ln_Dallas_TX_75229_M92871-64194","external_ids": {"property_id": "9287164194","listing_id": "2978732073","source_listing_id": "20854653"}},"listing": {"listing_id": "2978732073","listing_status": "for_sale","property_status": "for_sale","is_new_listing": false,"is_featured": false,"posted_at": "2025-02-26T19:21:41Z"},"pricing": {"display_price": "$64,000,000","list_price": 64000000,"currency": "USD","last_sold_date": "1998-04-09T00:00:00","price_per_sqft": 2362,"hoa_fee": 0},"location": {"address": "5619 Walnut Hill Ln","city": "Dallas","state": "Texas","state_code": "TX","postal_code": "75229","country": "USA","county": "Dallas","county_fips": "48113","coordinates": {"latitude": 32.882056,"longitude": -96.810164}},"property": {"property_type": "single_family","beds": 10,"baths": 17,"baths_consolidated": "12.5+","sqft": 27092,"lot_sqft": 683326,"year_built": 1938,"garage": 7},"media": {"photo_count": 40,"images": [{"url": "https://ap.rdcpix.com/primary.jpg","is_primary": true}],"virtual_tours": [{"url": "https://example.com/tour"}]},"contact_details": {"name": "Pogir Pogir","phone": "2143500400","phones": [{"number": "2143500400"}],"email": "pogir@example.com","emails": ["pogir@example.com"],"contacts": {"advertisers": [{"type": "seller","fulfillment_id": "1772008","name": "Pogir Pogir","email": "pogir@example.com","office": {"name": "Briggs Freeman"},"phones": [{"number": "2143500400"}]}]}},"relationships": {"agent": {"type": "seller","fulfillment_id": "1772008","name": "Pogir Pogir","email": "pogir@example.com"},"agency": {"name": "Briggs Freeman"},"source_agents": [{"agent_id": "0613487","name": "Source Agent","source_id": "NTTX","office_id": "BRIG01"}]},"metrics": {"is_popular_by_ldp_views": true},"attributes": {"features": {"details": [{"category": "Interior Features","items": ["Elevator", "Wine cellar"]}],"tags": ["wine_cellar", "swimming_pool"]},"flags": {"is_new_listing": false,"is_price_reduced": true,"has_matterport": false},"lead": {"show_contact_an_agent": true,"lead_type": "co_broke","market_type": "pure"},"marketing": {"products": ["core.agent", "core.broker"],"brand_name": "essentials","is_promoted_listing": false},"source_specific": {"realtor": {"source": {"permalink": "5619-Walnut-Hill-Ln_Dallas_TX_75229_M92871-64194","property_id": "9287164194","id": "NTTX","name": "NTREIS","type": "mls","source_listing_id": "20854653","list_date": "2025-02-26T19:21:41Z"}}}}}
Field Reference
Property Listing Record
record_type (string, required): Stable discriminator. Normal listing rows use property_listing.
record_id (string, required): Primary property-level dedupe key. Usually Realtor.com's property ID.
source_context.source_name / source_domain (string, optional): Source marketplace identity.
source_context.source_url (string, optional): URL that produced the record, useful for audit and troubleshooting.
source_context.canonical_url / listing_url (string, optional): Public Realtor.com listing URLs when available.
source_context.seed_id / seed_type / seed_value / page_index (string, string, string, number; optional): Input context and pagination values that produced the record.
source_context.external_ids (object, optional): Source, MLS, property, community, plan, and listing identifiers when available.
source_context.enriched / detail_url (boolean, string; optional): Indicates whether detail enrichment ran and which listing URL was used.
entity.title / name / url (string, optional): Human-readable listing identity and public listing URL.
entity.external_ids.property_id / listing_id / source_listing_id (string, optional): Source identifiers for deduplication, joins, and recurring syncs.
listing.listing_id / listing_status / property_status (string, optional): Listing-specific ID and status values such as for_sale, for_rent, or sold.
listing.is_new_listing / is_featured (boolean, optional): Source-provided listing and promotion signals when available.
listing.posted_at / updated_at / days_on_market (string, string, number; optional): Source listing timing and market-age values.
listing.open_houses / related_listings (array, optional): Open-house windows and related listing references.
pricing.display_price / list_price / list_price_min / list_price_max / currency (string, number, number, number, string; optional): Price label, numeric price values, and currency.
pricing.sold_price / sold_date / last_sold_date (number, string, string; optional): Sale history and sold listing values when Realtor.com exposes them.
pricing.price_per_sqft / hoa_fee / estimates / mortgage (number, number, object, object; optional): Price-per-area, HOA, estimate, and mortgage fields.
location.address / city / state / state_code / postal_code / country (string, optional): Core address fields. Postal codes remain strings.
location.county / county_fips (string, optional): County labels and FIPS code when available.
location.coordinates.latitude / longitude (number, optional): Coordinates suitable for mapping when available.
location.street_view_url / neighborhoods / search_areas / city_metadata (string, array, array, object; optional): Source-provided mapping and locality context.
property.property_type / sub_type (string, optional): Property category and subtype.
property.beds / baths / baths_consolidated / rooms (number, number, string, array; optional): Room and bathroom values, including source display labels.
property.sqft / lot_sqft / year_built / year_renovated / stories / garage (number, optional): Physical property dimensions and building attributes.
property.description / units / pet_policy (string, array, object; optional): Detail-page description, unit-level rental data, and pet rules.
media.photo_count / images / virtual_tours / videos / floorplans / augmented_gallery (number, array, array, array, array, array; optional): Listing media and gallery data.
contact_details.name / phone / phones / email / emails / contact_url (string or array, optional): Primary contact channels derived from source contact records.
contact_details.contacts (object, optional): Full Realtor.com advertiser, buyer, consumer advertiser, and builder contact structures.
relationships.agent / agents / source_agents / agency / broker / developer / builder / community (object or array, optional): Linked real estate entities preserved from the source.
relationships.related_listings (array, optional): Related listing references when the source returns them.
metrics (object, optional): Source popularity and market-signal fields such as popular-by-views, leads, or saves.
attributes.features (object, optional): Feature details, normalized tags, display tags, and ranked tags.
attributes.flags (object, optional): Boolean listing flags such as price reduction, foreclosure, new construction, Matterport, suppression, and eligibility signals.
attributes.lead (object, optional): Source-provided lead-flow and contact-form eligibility fields.
attributes.marketing (object, optional): Marketing products, promotions, branding, community data, and attribution flags.
attributes.source_specific.realtor.source (object, optional): Realtor.com-specific MLS/provider metadata, source agents, provider URLs, disclaimers, copyright notices, other listings, and application URLs.
Data Quality, Guarantees, And Handling
- Best-effort extraction: fields vary by region, session, listing status, property category, and Realtor.com availability at run time.
- Optional fields: null-check optional nested objects, especially contact details, media, mortgage estimates, source metadata, and detail-only property fields.
- Deduplication: use
record_idfor property-level deduplication, orrecord_id+listing.listing_idwhen storing listing instances separately. - Source-specific data: source-dependent Realtor.com and MLS fields are preserved under
attributes.source_specific.realtorinstead of being dropped or promoted into unrelated top-level columns. - Repeated runs: use stable identifiers and source URLs when syncing data into warehouses, CRMs, search indexes, or operational reporting systems.
Tips For Best Results
- Start with a small
limitto validate the output shape before scaling up. - Use one geography or listing category per run when you need cleaner segmentation.
- Leave optional filters empty when the goal is broad discovery.
- Add filters gradually to understand how each field changes coverage.
- Use
publication_date,price_reduced,open_house_only, orbuilder_promotionsfor monitoring workflows. - Enable
enrich_datawhen descriptions, detailed features, media, source data, or contact details are important. - Use stable identifiers for deduplication when storing results over time.
How to Run on Apify
- Open the Actor in Apify Console.
- Configure the available input fields for the target scope, starting with
locationanddeal_type. - Set the maximum number of outputs to collect with
limit. - Click Start and wait for the run to finish.
- Open the dataset preview to inspect records.
- Download results in JSON, CSV, Excel, or another supported format.
Scheduling & Automation
Scheduling
Automated Data Collection
Use Apify schedules to run the actor automatically and keep real estate datasets fresh for reporting, monitoring, or enrichment workflows. Recurring runs are useful when you need a consistent view of pricing, availability, listing changes, or market movement over time.
- Navigate to Schedules in Apify Console
- Create a new schedule (daily, weekly, or custom cron)
- Configure input parameters
- Enable notifications for run completion
- Add webhooks for automated processing
Integration Options
- CRM enrichment: sync public property, agent, office, and listing attributes into account, lead, or territory records.
- BI dashboards: monitor pricing, inventory, property types, market coverage, and geographic trends over time.
- Data warehouses: store recurring JSON records for historical analysis, modeling, and operational reporting.
- Google Sheets or Airtable: review smaller datasets, validate segments, and coordinate lightweight research workflows.
- Webhooks: trigger validation, alerts, ingestion, or downstream processing after each completed run.
- Data enrichment pipelines: join Realtor.com listing attributes with internal CRM, analytics, underwriting, or market datasets.
Export Formats And Downstream Use
Apify datasets can be exported or consumed by downstream systems for operational workflows, reporting, and automation.
- JSON: for APIs, applications, and data pipelines
- CSV or Excel: for spreadsheet workflows and manual review
- API access: for automated ingestion into internal systems
- BI and warehouses: for reporting, dashboards, and historical analysis
Performance
Estimated execution times:
- Small runs (< 1,000 outputs): ~3-5 minutes
- Medium runs (1,000-5,000 outputs): ~5-15 minutes
- Large runs (5,000+ outputs): ~15-30 minutes
Execution time varies based on filters, result volume, and how much information is returned per record. Highly filtered runs can finish faster, while broad discovery or detail-rich records may take longer.
Limitations
- Availability depends on what Realtor.com publicly exposes at run time.
- Some optional fields may be missing on sparse listings, regional records, or listing categories with limited public data.
- Very broad searches may take longer or require higher limits to capture the desired coverage.
- Target-side changes can affect field availability, naming, or the presence of rich details.
- Regional, account, or availability differences may change visible results.
- Rich media, mortgage estimates, contact information, and source metadata are not guaranteed for every listing.
Troubleshooting
- No results returned: check filters, location spelling, listing category, and whether Realtor.com has matching public records for the selected scope.
- Fewer results than expected: broaden filters, raise
limit, use a broader location, or verify that enough matching records are publicly available. - Some fields are empty: optional fields depend on what each listing publicly provides.
- Run takes longer than expected: reduce scope, lower
limitfor validation, or split broad collection into smaller location or category segments. - Output changed: compare the current output with the field reference and report a small sample if support is needed.
FAQ
What data does this actor collect?
It collects public Realtor.com property listing records, including identifiers, URLs, prices, location, property attributes, listing status, features, media, agent or office contact details, source metadata, and related flags when available.
Can I filter by location, category, date, price, or other criteria?
Yes. The actor supports location searches, deal_type, property type, listing status, publication date, keyword, price range, room counts, building and lot size, building age, year built, amenities, open house availability, builder promotions, and price-reduction filters.
Why did I receive fewer results than my limit?
The limit is a maximum, not a guarantee. A run may return fewer records when the selected location, listing category, or filters have fewer matching public listings.
Can I schedule recurring runs?
Yes. Use Apify schedules to run the actor daily, weekly, or with a custom cron expression for monitoring and recurring reporting.
How do I avoid duplicates across runs?
Use record_id for property-level deduplication. If your workflow tracks separate listing instances, use a composite key such as record_id + listing.listing_id.
Can I export the data to CSV, Excel, or JSON?
Yes. Apify datasets can be exported in JSON, CSV, Excel, and other supported formats.
Does this actor collect private data?
No. The actor is intended for publicly available Realtor.com listing information. Users are responsible for using collected data lawfully and in accordance with applicable terms and regulations.
What should I include when reporting an issue?
Include the input used, the run ID, expected versus actual behavior, and a small output sample if it helps demonstrate the issue. Redact sensitive internal information before sharing.
Compliance & Ethics
Responsible Data Collection
This actor collects publicly available real estate listing information from https://www.realtor.com for legitimate business purposes, including:
- Real estate research and market analysis
- Listing monitoring and operational reporting
- CRM, BI, and data enrichment workflows
This section is informational and not legal advice. Users are responsible for ensuring their use of the actor and its outputs complies with applicable laws, regulations, contractual obligations, and platform terms.
Best Practices
- Use collected data in accordance with applicable laws, regulations, and the target site’s terms
- Respect individual privacy and personal information
- Use data responsibly and avoid disruptive or excessive collection
- Do not use this actor for spamming, harassment, or other harmful purposes
- Follow relevant data protection requirements where applicable, including GDPR and CCPA
Support
For help, use the Actor page or Issues section associated with this actor. Include the input used (redacted if needed), the run ID, expected versus actual behavior, and a small output sample when it helps clarify the issue. Avoid sharing secrets, private credentials, or sensitive internal data in support requests.