ForHosting KIT · Data & Files

JSON to HTML table

Show a list of records as a table people can scan: in the example, Ada and Luis become two rows under the headings nombre and rol, and the text Luis <b> stays plain text instead of turning the page bold. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon

Runs in your browser. Free, unlimited — your data never leaves this page.

a styled table, free online

Why people read tables, not raw data

Outside a development team, nobody wants to read raw data, however neatly it is indented, yet the same list of records reads at a glance as a table. A list of orders, a set of survey answers or an inventory count all arrive from some system as data, and sooner or later a person needs to look at them. Building the table by hand for every report is tedious and easy to get wrong, especially once some records have fields that others lack. This tool builds it for you in one step.

How the table is built

Every distinct name found across the records becomes a column with its own heading, and each record becomes one row; a value a record does not have is left as an empty cell, so the table keeps its shape. Special characters are written out safely, which is why Luis <b> in the example shows up as text. A value that holds a nested section is shown in its written form inside the cell. The result is a plain table without styling of its own, so it takes on the look of the page or email you paste it into. For data that is not tabular, the list option shows each record separately.

What happens with missing or inconsistent keys?

The table includes a column for every distinct key found across the array, and any object missing a given key simply shows an empty cell there, so the table shape stays consistent.

Can I customize how the table looks?

The output ships with clean default styling suitable for direct embedding; for full visual control, apply your own CSS to the returned HTML after delivery.

Is the output valid HTML I can embed anywhere?

Yes, the response is standard semantic HTML table markup you can inline into an email, a report, or a web page without additional processing.

Is text like <b> inside my data turned into formatting?

No. Special characters in your values are written out safely, so a name such as Luis <b> in the example appears exactly as typed instead of switching the rest of the table to bold. That also keeps stray code in the data from running.

Can I show the records as a list instead of a table?

Yes. Switch off the table option and each record becomes its own list of names and values. That suits data that is not really tabular, where a wide table with many empty cells would be harder to read.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/data/json-to-html

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/data/json-to-html \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"json":[{"a":1}]}'
{
  "json": [
    {
      "a": 1
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "data.json_to_html",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_mb25
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Nobody outside engineering wants to read raw JSON, no matter how well it is indented, but the same array of records renders instantly as a table anyone can scan. This JSON to HTML table API takes structured data and turns it into a styled HTML table you can drop straight into an email, a report, or a page.

The gap between structured data and a readable page

Building an HTML table by hand for every report is tedious and easy to get wrong, especially once nested fields or optional columns enter the picture. An API returns JSON, a database query exports JSON, an automation pipeline passes JSON between steps — but at some point a human needs to look at that data, and a wall of braces and brackets is not how anyone wants to review a list of orders, a set of survey responses, or a table of inventory counts.

How the conversion works

The service inspects the objects, builds a column from every distinct key it finds across the array, and produces a semantic HTML table with a header row and one row per object, styled with clean default CSS so it looks presentable without any extra work; cells that are missing a given key are rendered empty rather than breaking the table's shape. You call POST /data/json-to-html with a JSON array of objects and get a task_id back immediately, since rendering runs as an asynchronous job.

Why tables remain the clearest way to show tabular data

The HTML table element has been part of the web since its earliest days, and despite decades of alternative layout techniques, nothing communicates rows and columns of comparable data as instantly as an actual table: the eye tracks a column down and a row across without any learning curve. JSON, meanwhile, is built for machines to parse reliably, not for people to scan visually — pairing the two lets each format do what it does best, machine-readable in transit and human-readable on arrival.

Where this fits an automated workflow

Use this step wherever a JSON result needs to reach a non-technical audience: turning an API response into the body of a notification email, embedding a live data snippet into an internal dashboard page, or generating the tabular section of an automated report. It slots naturally after any step that produces or transforms JSON, and the resulting markup is plain HTML that can be inlined into a larger page or email template without a rendering engine on your side.

Delivery, pricing, and status

The rendered HTML table is delivered by a signed webhook, recommended for automated reporting, or a signed link valid for 24 hours; source and output are deleted after the retention window and never used for training. Pricing is a flat $0.002 per request regardless of how many rows the array contains, and a failed task — such as JSON that is not an array of objects — is never charged after the standard three retries. This endpoint is live now.

Turn API results into an email body

Convert a JSON list of new orders into a styled table and embed it directly in a daily summary email, no manual formatting required.

Build the tabular section of an automated report

Generate the HTML table for a weekly metrics report straight from the same JSON your dashboard already consumes, keeping the two perfectly in sync.

Show survey or form data to non-technical reviewers

Render submitted form responses as a table for a stakeholder who has no interest in reading raw JSON but needs to scan the results quickly.

Embed live data snippets in internal pages

Feed a JSON snapshot of inventory or ticket status into a table embedded on an internal status page, refreshed on whatever schedule your pipeline runs.

How do I convert JSON to an HTML table with an API?

Send a JSON array of objects to POST /data/json-to-html, which returns a task_id right away; the styled table markup arrives at your signed webhook or a signed link once rendering finishes.

Is the JSON to HTML table API free?

The tool above runs free in your browser. The API is paid — each call draws from your prepaid ForHosting KIT balance: top up from $10.00 (it never expires), pay each request's published price, and a call with no balance returns HTTP 402. No subscription, no tokens, and a failed task is never charged.

What JSON structure does it expect?

An array of objects works best, since each object becomes a row and its keys become columns; a single object or deeply nested structures may render less predictably.

Can I convert large JSON arrays in bulk?

Yes. Each request is an independent asynchronous task, so you can submit many arrays in parallel and collect each rendered table by webhook as it completes.

What if my JSON is nested rather than flat?

Nested objects or arrays inside a field are rendered as their JSON representation within that cell rather than expanded into extra columns, so flat records produce the cleanest tables.

Read the full KIT documentation →