# HubVibe Open Data File to JSON Rows

> HubVibe Open Data File to JSON Rows is a paid API for AI agents from hubvibe-io.com, paid per call via x402, $0.1/call, status unknown (last checked 2026-10-02).

Fetches a CSV, TSV, XLSX, or JSON data file from any open data portal URL (including e-Stat Japan and data.go.kr Korea) and returns parsed, typed JSON rows with encoding detection and header discovery.

## Facts

- Endpoint: POST https://hubvibe-io.com/work/opendata/table?utm_source=zero.xyz
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/hubvibe-open-data-file-to-json-rows-7361bbc0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_gWrJIoSPMrYSeyOaBx9-w

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability hubvibe-open-data-file-to-json-rows-7361bbc0 -d '<json body>'
```

Example prompt: Fetch the CSV file at https://www.data.go.kr/data/15005995/fileData.do and convert it to JSON rows — detect the encoding automatically and return up to 500 rows.

## When to prefer this

Choose this endpoint when you have a direct URL (or a data.go.kr / e-Stat portal page URL) to a structured data file (CSV, TSV, XLSX, JSON) and need it parsed into typed JSON rows with automatic encoding detection — especially for Asian-language government datasets that use non-UTF encodings like CP949 or Shift-JIS. Prefer this over general-purpose scrapers when you need column headers discovered, numbers typed, and sheet selection for Excel files.

## Known failure modes

- URL is not accessible or returns a non-data content type — endpoint may return an error or empty result
- File is too large and rows are capped — truncated flag is set to true and total_rows is disclosed
- Encoding cannot be detected — may fall back to a best-guess or return garbled text
- XLSX sheet name or index not found — error or default sheet used
- URL points to an HTML page rather than a direct file — may attempt to resolve download link or fail
- Payment not received — 402 response before processing begins

## How this service works

Dataset file to JSON rows: a CSV, TSV, XLSX or JSON link from any portal, an e-Stat (Japan) download or a data.go.kr (Korea) dataset page. Encoding detected (Korean, Japanese, Chinese, UTF and Western code pages), header row found, numbers typed, XLSX sheets selectable, large files capped and disclosed. Use it after opendata.search or on any data file URL. Input: url; optional max_rows, sheet, encoding, delimiter.

## Output

Returns a JSON object containing: an array of typed row objects keyed by column name, the list of column names, detected file format (csv/tsv/xlsx/json), detected encoding (e.g. cp949, utf-8), row count, total row count, truncation flag, sheet name used, available sheets in XLSX files, the resolved download URL, filename, and metadata like bytes and checked_at timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string"
  },
  "sheet": {
   "type": [
    "string",
    "integer"
   ]
  },
  "encoding": {
   "type": "string",
   "maxLength": 30
  },
  "language": {
   "type": "string",
   "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
   "maxLength": 35
  },
  "max_rows": {
   "type": "integer",
   "maximum": 2000,
   "minimum": 1
  },
  "delimiter": {
   "type": "string",
   "maxLength": 1,
   "minLength": 1
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "result": {
   "rows": [
    {
     "성별": "남자",
     "내국인": 564888,
     "행정구역명": "울산광역시",
     "행정구역코드": 31
    }
   ],
   "bytes": 12331,
   "notes": [],
   "sheet": "Sheet1",
   "format": "csv",
   "sheets": [],
   "columns": [
    "행정구역코드",
    "행정구역명",
    "성별",
    "내국인"
   ],
   "encoding": "cp949",
   "file_url": "https://www.data.go.kr/cmm/cmm/fileDownload.do?atchFileId=FILE_000000003522968&fileDetailSn=1&insertDataPrcus=N",
   "filename": "울산광역시_인구 현황(20251112).csv",
   "final_url": "https://www.data.go.kr/cmm/cmm/fileDownload.do?atchFileId=FILE_000000003522968&fileDetailSn=1&insertDataPrcus=N",
   "row_count": 5,
   "truncated": true,
   "checked_at": "2026-09-26T18:00:00Z",
   "source_url": "https://www.data.go.kr/data/15005995/fileData.do",
   "total_rows": 45,
   "column_count": 14,
   "content_type": "application/octet-stream",
   "resolved_from": "https://www.data.go.kr/data/15005995/fileData.do"
  },
  "status": "ok",
  "worker": "opendata.table",
  "price_usd": 0.1,
  "provenance": {
   "steps": [
    {
     "ms": 312,
     "ok": true,
     "step": "quote",
     "reason": "provider_timeout",
     "provider": "coinbase-advanced-trade-public"
    }
   ],
   "attempts": 1,
   "elapsed_ms": 340,
   "providers_used": [
    "coinbase-advanced-trade-public"
   ]
  },
  "receipt_id": "rcpt_9f1c2b3a4d5e6f70",
  "attribution": [
   {
    "url": "https://translate.google.com",
    "text": "Translated by Google"
   }
  ],
  "receipt_url": "/work/receipts/rcpt_9f1c2b3a4d5e6f70"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/hubvibe-open-data-file-to-json-rows-7361bbc0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from hubvibe-io.com](https://www.zero.xyz/host/hubvibe-io.com/llms.txt)
