Tools / HTML Table Extractor: Any Web Page Tables to JSON/CSV

HTML Table Extractor: Any Web Page Tables to JSON/CSV

Extract every data table from web pages into clean rows. Input: urls. Output (JSON/CSV): one row per item with sourceUrl, tableIndex, caption, headers, rowCount, columnCount.

Run it on Apify Store →

What it's for

Example input

{
 "urls": [
  "https://en.wikipedia.org/wiki/List_of_largest_companies_in_the_United_States_by_revenue",
  "https://en.wikipedia.org/wiki/List_of_U.S._states_and_territories_by_population",
  "https://example.com",
  "bad ::"
 ],
 "minRows": 3
}

Example output

{
  "sourceUrl": "https://en.wikipedia.org/wiki/List_of_largest_companies_in_the_United_States_by_revenue",
  "tableIndex": 0,
  "caption": null,
  "headers": [
    "Rank",
    "Name",
    "Industry",
    "Revenue (USD millions)",
    "…"
  ],
  "rowCount": 100,
  "columnCount": 7,
  "rows": [
    {
      "Rank": "1",
      "Name": "Walmart",
      "Industry": "Retail",
      "Revenue (USD millions)": "680,985",
      "Revenue growth": "5.1%",
      "Employees": "2,100,000",
      "Headquarters": "Bentonville, Arkansas"
    },
    {
      "Rank": "2",
      "Name": "Amazon",
      "Industry": "Retail and cloud computing",
      "Revenue (USD millions)": "637,959",
      "Revenue growth": "11.0%",
      "Employees": "1,556,000",
      "Headquarters": "Seattle, Washington"
    },
    {
      "Rank": "3",
      "Name": "UnitedHealth Group",
      "Industry": "Healthcare",
      "Revenue (USD millions)": "400,278",
      "Revenue growth": "7.7%",
      "Employees": "400,000",
      "Headquarters": "Minnetonka, Minnesota"
    },
    {
      "Rank": "4",
      "Name": "Apple",
      "Industry": "Technology",
      "Revenue (USD millions)": "391,035",
      "Revenue growth": "2.0%",
      "Employees": "164,000",
      "Headquarters": "Cupertino, California"
    },
    "…"
  ]
}

Input reference

FieldTypeNotes
urls requiredarrayPage URLs
minRowsintegerSkip layout tables smaller than this.
tableIndexinteger-1 = all tables; 0 = first...
respectRobotsbooleanRespect robots.txt
maxConcurrencyintegerMax concurrency

Pricing

Pay per event: Table extracted $0.002. Plus Apify's small per-run start fee. Apify's free plan includes monthly credit to try it.

How to run

  1. Open the Store page and click Try for free.
  2. Fill in the input (or paste the example JSON in the JSON tab).
  3. Click Start, then export results as CSV, Excel or JSON, or call it via the Apify API.
  4. Optional: add a Schedule and a webhook/Slack/email integration for ongoing monitoring.

Open HTML Table Extractor on Apify →