# Japan MLIT Negative Info: Punishment & Debarment Checker (`jpmarketdata/japan-negative-info-checker`) Actor

Screen Japanese firms against MLIT's official administrative punishment register, or profile a whole industry: exact totals, punishment-type split, monthly trend and corporate-number coverage across 23 sectors. From $0.02 per check - no subscription. 国交省ネガティブ情報検索サイトの行政処分歴を統計+スクリーニングで1コール化。

- **URL**: https://apify.com/jpmarketdata/japan-negative-info-checker.md
- **Developed by:** [h ichi](https://apify.com/jpmarketdata) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 punishment summaries

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Japan MLIT Negative Info: Punishment & Debarment Checker

**Has this Japanese contractor ever been suspended? Which prefectures punish the most builders, and for what? Is my counterparty on the public-works debarment list?** One call answers it, straight from the government register.

This Actor queries Japan's official **ネガティブ情報等検索サイト** ([MLIT Negative Information Search Site](https://www.mlit.go.jp/nega-inf/)) — the Ministry of Land, Infrastructure, Transport and Tourism's public record of **administrative punishments** handed down to the businesses it regulates. It is the Japanese counterpart of a SAM.gov exclusion check or an FMCSA safety lookup, and MLIT publishes it explicitly so that people can use it when choosing who to do business with.

There is **no API, no CSV and no bulk download**. The alternatives are a paid Japanese SaaS subscription or hunting through PDFs on 58 different prefectural and regional-bureau websites. This Actor turns it into one clean, English-labelled JSON record.

### Two ways to use it

#### 1. Screening — due diligence on named companies

`mode: "screening"` with a list of `companyNames` returns a clean/hit verdict per name:

```json
{
  "type": "screening_result",
  "query": "サンプル建設",
  "hasPunishmentHistory": true,
  "matchCount": 2,
  "punishmentTypes": [{ "punishmentType": "営業停止", "records": 1 },
                      { "punishmentType": "指示", "records": 1 }],
  "latestPunishmentDate": "2026-03-23",
  "oldestPunishmentDate": "2024-07-11",
  "matchedNames": ["サンプル建設株式会社"],
  "matchedCorporateNumbers": ["1234567890123"]
}
````

`matchedCorporateNumbers` carries the 13-digit **corporate number (法人番号)**, so a hit can be joined to your CRM, to the National Tax Agency's corporate registry, or to this Actor's sister — see *Related Actors* below.

#### 2. Statistics — profiling an industry or a region

`mode: "statistics"` returns the *population* picture for a sector (optionally narrowed to one punishing authority, a date range or a punishment type):

| Field | Meaning |
|---|---|
| `totalRecords` | **Exact** count of published punishments matching the query |
| `byPunishmentType` | **Exact** count per punishment type — business suspension, licence revocation, formal instruction… |
| `byPunishmentTypeUnclassified` | Records whose label the register's own dropdown no longer offers, reported instead of silently dropped |
| `byAgency` | Which prefecture or regional bureau issued them |
| `byYearMonth` | The month-by-month enforcement curve |
| `corporateNumberCoverage` | How many records carry a 13-digit corporate number (the rest are sole proprietorships) |
| `latestPunishmentDate` / `oldestPunishmentDate` | **Exact** newest and oldest dated record in scope |
| `coverage` | `complete` when every matching record was read, `partial` otherwise (with a `coverageNote`) |

`mode: "records"` adds every individual punishment as its own record.

### Coverage — 23 sectors

Primary: **建設業者** construction contractors · **宅地建物取引業者** real estate brokers · **マンション管理業者** condominium managers · **賃貸住宅管理業者等** rental housing managers · **指名停止** public-works debarment · **測量業者** surveyors.

Also supported: vehicle maintenance, construction/compensation/geological consultants, real estate appraisal firms, building inspection and structural conformity bodies, housing performance evaluators, home-sharing managers, railway, shipping and air carriers, plus four registers of individual professionals.

> **Note on the data window.** MLIT keeps this register on a **rolling window of roughly the last five years**. A punishment that ages out is removed from the site. "No record" therefore means "no record in the published window", not "never punished" — and a query repeated months later can legitimately return fewer historical records. Every output record carries this as `dataWindowNote`.

### Pricing — from $0.02, no subscription

| Event | Price | When |
|---|---|---|
| Punishment summary | **$0.02** | Per scope analyzed in `statistics` / `records` mode |
| Screening check | **$0.02** | Per company name checked in `screening` mode |
| Punishment record | **$0.002** | Only in `records` mode, or for screening hits |
| Punishment detail | **$0.004** | Only if you enable **Include full punishment details** |

A default run (one sector, one authority, summary only) costs **$0.02**. A scope that returns zero punishments is **never charged** for the summary. Screening bills per name checked — a "clean" verdict is the answer you asked for, and is the most common one.

### Input

| Field | Example | Notes |
|---|---|---|
| `mode` | `"statistics"` | `statistics`, `screening` or `records` |
| `sector` | `"kensetugyousya"` | One of 23 registers (see the dropdown) |
| `agencies` | `["高知県"]`, `["Tokyo"]` | Punishing authority. Japanese or English names. Empty = nationwide. **$0.02 each** |
| `companyNames` | `["サンプル建設"]` | Screening mode. Substring match on the trade name |
| `startYearMonth` / `endYearMonth` | `"2024-04"` / `"2026-03"` | Optional date window |
| `punishmentType` | `"営業停止"` | Optional. Values differ per sector; an invalid one is rejected up front |
| `includeDetails` | `false` | Adds licence number, legal basis, period and stated reason (+$0.004/record) |
| `maxRecords` | `300` | Records read per scope (10 per page) |
| `redactIndividualProprietors` | `true` | See *Personal data* below |

#### Two traps this Actor handles for you

- **The `agencies` filter only exists for four sectors** (construction, real estate, debarment, vehicle maintenance). Send it to any other sector and MLIT silently returns the **unfiltered nationwide** result with a normal `200` — verified byte-identical. This Actor rejects the combination instead of reporting national figures as if they were one prefecture's.
- **An invalid `punishmentType` returns zero hits, not an error** — which reads exactly like a clean result. Values are validated against the sector's own list before any request goes out.

### Personal data

MLIT publishes this register for counterparty due diligence, but parts of it are personal data, so:

- The **representative's name** (代表者) appears on every detail page. It is parsed away and **never** written to the dataset.
- **Four registers list individual professionals** (一級建築士 etc.) where the subject *is* a natural person. Their names are **always** redacted, regardless of settings.
- A record with **no corporate number** is typically a **sole proprietorship** whose trade name is a person's name. It is flagged `isIndividualProprietor` and, while `redactIndividualProprietors` is on (the default), the name is masked.

### 日本語ガイド

#### これは何か

国土交通省の[ネガティブ情報等検索サイト](https://www.mlit.go.jp/nega-inf/)（行政処分歴の公式データベース）を、API のように 1 コールで使えるようにした Actor です。公式 API・CSV 一括ダウンロードは存在せず、代替は有料 SaaS か 58 の自治体・地方整備局に分散した PDF のみです。

#### 使い方

**スクリーニング（取引先の与信・デューデリ）** — `mode` を `screening` にし、`companyNames` に商号を入れると、社名ごとに「処分歴あり／なし」・件数・処分種別・最新処分日・**法人番号**が返ります。法人番号が返るので自社 CRM や国税庁法人番号公表サイトと突合できます。

**統計（業界・地域の分析）** — `mode` を `statistics` にすると、業種・処分行政庁・期間で絞った母集団統計（総件数・処分種別内訳・月次推移・法人番号カバー率・最新／最古処分日）が 1 レコードで返ります。総件数と処分種別内訳は**サンプル推定ではなく実数**です。

**個別レコード** — `mode` を `records` にすると処分 1 件ごとのレコードも出力されます。`includeDetails` を有効にすると許可番号・根拠法令・処分期間・処分理由まで取得します。

#### 料金

処分サマリー **$0.02**／スクリーニング1社 **$0.02**／個別レコード **$0.002**／詳細 **$0.004**。サブスクリプション不要。**0件だったサマリーは課金されません**。

#### 注意事項

- **保持期間は直近5年のローリング**です。5年を過ぎた処分はサイトから削除されるため、「該当なし」は「公表期間内に該当なし」を意味します（`dataWindowNote` として全レコードに付記）。
- 商号の一致は**部分一致**です。ヒットした場合は `matchedNames` と `matchedCorporateNumbers` を必ず自社の記録と照合してください。
- **処分行政庁（`agencies`）で絞れるのは建設業者・宅建業者・指名停止・自動車整備の4業種のみ**です。他業種に指定すると国交省側は全国の結果をそのまま返してしまうため、本 Actor はエラーで停止します。
- \*\*代表者名は取得しません。\*\*個人資格者の登録（一級建築士等）の氏名は常に伏字化し、法人番号のないレコード（個人事業主）は既定で商号を伏字化します。

### Related Actors

- **[Japan Construction & Real Estate License Registry Stats](https://apify.com/jpmarketdata/japan-construction-license-checker)** — the natural companion. That Actor tells you **who is licensed** in a prefecture (exact counts across all 29 construction trades, national vs prefectural licence split, broker business-age profile); this one tells you **who got punished**. Both key on the same licence numbers and corporate numbers, so a screening hit here can be resolved to a licence record there — build a full counterparty profile in two calls.

### Source & limitations

- Source: `https://www.mlit.go.jp/nega-inf/cgi-bin/search.cgi` — a public, login-free government page. `mlit.go.jp` serves no `robots.txt`, and the site's terms carry no automated-access restriction. Requests are throttled to 1.5s.
- Freight trucking operators (貨物自動車運送事業者) live in a **separate MLIT system** with a different schema and are not covered.
- The register is the *published* record. It is not a criminal-record check, and it says nothing about punishments issued by other ministries (financial services, labour, antitrust) or by municipalities acting outside MLIT's remit.

# Actor input Schema

## `mode` (type: `string`):

'statistics' = one summary record per scope (exact totals, punishment-type breakdown, monthly curve, agency mix) for $0.02. 'screening' = a clean/hit due-diligence answer for each name in Company names, $0.02 per name. 'records' = statistics plus every individual punishment record at +$0.002 each.

## `sector` (type: `string`):

Which MLIT register to search. The first six are the primary supported sectors; the rest are smaller registers covered by the same engine. Registers of individual professionals (architects, appraisers) always have their subject names redacted.

## `agencies` (type: `array`):

Limit to the authorities that issued the punishment. Accepts Japanese names (高知県, 東京都, 関東地方整備局, 国土交通省) or English prefecture names (Kochi, Tokyo). Leave empty for nationwide. Each authority is a separate scope and costs $0.02. NOTE: only Construction contractors, Real estate brokers, Public works debarment and Vehicle maintenance carry this filter — other sectors reject it rather than silently returning nationwide figures.

## `companyNames` (type: `array`):

Names to check in 'screening' mode. Matching is a substring match on the registered trade name, so 'サンプル建設' also matches 'サンプル建設工業'. Always verify the returned matchedNames / matchedCorporateNumbers against your own record before acting on a hit.

## `startYearMonth` (type: `string`):

Only punishments dated on or after this month, e.g. 2024-04. Leave empty for the whole published window (roughly the last five years).

## `endYearMonth` (type: `string`):

Only punishments dated on or before this month, e.g. 2026-03. Leave empty for the whole published window.

## `punishmentType` (type: `string`):

Restrict to one punishment type, written exactly as the register does. Values differ per sector — construction uses 許可取消 / 営業停止 / 指示 / 勧告, real estate uses 免許取消 / 業務停止 / 指示 / 行政指導. An unknown value is rejected up front (the site would silently return zero hits, which reads like a clean result). Leave empty for all types.

## `includeDetails` (type: `boolean`):

Off by default. Fetches each record's detail page for the licence number, legal basis, punishment period and the stated reason, at +$0.004 per record and one extra request each. Representative names shown on those pages are never collected.

## `maxRecords` (type: `integer`):

How many individual records to read per scope (10 per result page). Totals and the punishment-type breakdown are exact regardless; this limits the records behind the monthly curve, the agency mix and 'records' mode output.

## `redactIndividualProprietors` (type: `boolean`):

On by default. A record with no 13-digit corporate number is typically a sole proprietorship whose trade name is a person's name, so the name is masked and the record is flagged isIndividualProprietor. Turn off only if you have a lawful basis for processing those names. Registers of individual professionals are always redacted regardless of this setting.

## Actor input object example

```json
{
  "mode": "statistics",
  "sector": "kensetugyousya",
  "agencies": [
    "高知県"
  ],
  "companyNames": [],
  "startYearMonth": "",
  "endYearMonth": "",
  "punishmentType": "",
  "includeDetails": false,
  "maxRecords": 300,
  "redactIndividualProprietors": true
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "agencies": [
        "高知県"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jpmarketdata/japan-negative-info-checker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "agencies": ["高知県"] }

# Run the Actor and wait for it to finish
run = client.actor("jpmarketdata/japan-negative-info-checker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "agencies": [
    "高知県"
  ]
}' |
apify call jpmarketdata/japan-negative-info-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jpmarketdata/japan-negative-info-checker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Japan MLIT Negative Info: Punishment & Debarment Checker",
        "description": "Screen Japanese firms against MLIT's official administrative punishment register, or profile a whole industry: exact totals, punishment-type split, monthly trend and corporate-number coverage across 23 sectors. From $0.02 per check - no subscription. 国交省ネガティブ情報検索サイトの行政処分歴を統計+スクリーニングで1コール化。",
        "version": "0.1",
        "x-build-id": "5Ke2nihxtrcBjucTh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jpmarketdata~japan-negative-info-checker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jpmarketdata-japan-negative-info-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/jpmarketdata~japan-negative-info-checker/runs": {
            "post": {
                "operationId": "runs-sync-jpmarketdata-japan-negative-info-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/jpmarketdata~japan-negative-info-checker/run-sync": {
            "post": {
                "operationId": "run-sync-jpmarketdata-japan-negative-info-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "sector"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "statistics",
                            "screening",
                            "records"
                        ],
                        "type": "string",
                        "description": "'statistics' = one summary record per scope (exact totals, punishment-type breakdown, monthly curve, agency mix) for $0.02. 'screening' = a clean/hit due-diligence answer for each name in Company names, $0.02 per name. 'records' = statistics plus every individual punishment record at +$0.002 each.",
                        "default": "statistics"
                    },
                    "sector": {
                        "title": "Sector (business field)",
                        "enum": [
                            "kensetugyousya",
                            "takuti",
                            "mansyon",
                            "tintai",
                            "shimeiteishi",
                            "sokuryou",
                            "jidousyaseibi",
                            "kensetukonsaru",
                            "tisitu",
                            "hosyou",
                            "hudousangyousya",
                            "siteikakunin",
                            "siteikouzou",
                            "tourokujuutaku",
                            "juutaku",
                            "tetudou",
                            "senpaku",
                            "koukuu",
                            "ikkyuu",
                            "kentikukijun",
                            "kouzoukeisan",
                            "hudousan",
                            "kenchikuchosakensa"
                        ],
                        "type": "string",
                        "description": "Which MLIT register to search. The first six are the primary supported sectors; the rest are smaller registers covered by the same engine. Registers of individual professionals (architects, appraisers) always have their subject names redacted.",
                        "default": "kensetugyousya"
                    },
                    "agencies": {
                        "title": "Punishing authorities (optional)",
                        "type": "array",
                        "description": "Limit to the authorities that issued the punishment. Accepts Japanese names (高知県, 東京都, 関東地方整備局, 国土交通省) or English prefecture names (Kochi, Tokyo). Leave empty for nationwide. Each authority is a separate scope and costs $0.02. NOTE: only Construction contractors, Real estate brokers, Public works debarment and Vehicle maintenance carry this filter — other sectors reject it rather than silently returning nationwide figures.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "companyNames": {
                        "title": "Company names (screening mode)",
                        "type": "array",
                        "description": "Names to check in 'screening' mode. Matching is a substring match on the registered trade name, so 'サンプル建設' also matches 'サンプル建設工業'. Always verify the returned matchedNames / matchedCorporateNumbers against your own record before acting on a hit.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "startYearMonth": {
                        "title": "From (YYYY-MM, optional)",
                        "type": "string",
                        "description": "Only punishments dated on or after this month, e.g. 2024-04. Leave empty for the whole published window (roughly the last five years).",
                        "default": ""
                    },
                    "endYearMonth": {
                        "title": "To (YYYY-MM, optional)",
                        "type": "string",
                        "description": "Only punishments dated on or before this month, e.g. 2026-03. Leave empty for the whole published window.",
                        "default": ""
                    },
                    "punishmentType": {
                        "title": "Punishment type (optional)",
                        "type": "string",
                        "description": "Restrict to one punishment type, written exactly as the register does. Values differ per sector — construction uses 許可取消 / 営業停止 / 指示 / 勧告, real estate uses 免許取消 / 業務停止 / 指示 / 行政指導. An unknown value is rejected up front (the site would silently return zero hits, which reads like a clean result). Leave empty for all types.",
                        "default": ""
                    },
                    "includeDetails": {
                        "title": "Include full punishment details",
                        "type": "boolean",
                        "description": "Off by default. Fetches each record's detail page for the licence number, legal basis, punishment period and the stated reason, at +$0.004 per record and one extra request each. Representative names shown on those pages are never collected.",
                        "default": false
                    },
                    "maxRecords": {
                        "title": "Max records per scope",
                        "minimum": 10,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "How many individual records to read per scope (10 per result page). Totals and the punishment-type breakdown are exact regardless; this limits the records behind the monthly curve, the agency mix and 'records' mode output.",
                        "default": 300
                    },
                    "redactIndividualProprietors": {
                        "title": "Redact sole proprietors",
                        "type": "boolean",
                        "description": "On by default. A record with no 13-digit corporate number is typically a sole proprietorship whose trade name is a person's name, so the name is masked and the record is flagged isIndividualProprietor. Turn off only if you have a lawful basis for processing those names. Registers of individual professionals are always redacted regardless of this setting.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
