# Japan Courts Judgment Scraper (saibansho / 裁判所) (`jungle_synthesizer/courts-go-jp-hanrei-scraper`) Actor

Extract Japanese court judgments from courts.go.jp (裁判所) — Supreme Court, lower courts, IP High Court, administrative, and labor cases. Returns case number, case name, ruling date (wareki + Gregorian), court, ruling type, result, and full-text PDF URL. Free alternative to Westlaw Japan.

- **URL**: https://apify.com/jungle\_synthesizer/courts-go-jp-hanrei-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Business, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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 Courts (裁判所) Judgment Scraper

Scrape Japanese court judgments from [courts.go.jp](https://www.courts.go.jp), the official case database maintained by the Supreme Court of Japan. Returns case metadata, ruling dates in both wareki (令和/平成/昭和) and Gregorian formats, court names, ruling types, results, and direct PDF links for Supreme Court, lower court, IP High Court, administrative, and labor opinions.

---

### Japan Courts Scraper Features

- Extracts 18 fields per judgment — case number, case name, ruling date, court name, ruling type, result, subcategory, and more.
- Converts wareki dates (令和8年4月7日) to Gregorian ISO format (2026-04-07). The code knows 明治 through 令和, so anything post-Meiji-Restoration parses correctly.
- Covers six verticals in one actor: Supreme Court (最高裁判例), recent Supreme Court cases, lower courts (下級裁裁判例), administrative cases (行政事件), labor cases (労働事件), and Intellectual Property High Court (知的財産裁判例).
- Returns direct PDF URLs for every judgment. Download and OCR the full opinion text yourself, or feed the URLs straight into a legal-research pipeline.
- Optional detail-page fetch adds 判示事項 (issue summary) and 参照法条 (referenced laws) to each record.
- Filters by keyword (事件名), exact case number (事件番号), ruling date range, and specific court name.
- No proxies, no rate-limit workarounds, no CAPTCHA solving — courts.go.jp serves clean HTML to anyone who asks.

---

### Who Uses Japan Court Data?

- **Legal tech startups building Japan-market products** — feed structured case law into LegalOn, Holmes, MNTSQ-style AI assistants.
- **Cross-border M&A and IP firms** — track IP High Court rulings, patent disputes, and administrative appeals without a Westlaw Japan subscription.
- **Academic researchers** — build longitudinal datasets of Japanese Supreme Court decisions, which is harder than it sounds with paid databases.
- **Compliance and sanctions teams** — monitor labor and administrative rulings that affect multinational operations in Japan.
- **LLM training pipelines** — ingest the full corpus of Japanese legal reasoning for domain-specific model fine-tuning.
- **Journalists covering Japanese legal affairs** — quick lookup of rulings by keyword or date range, without paying per-query fees to commercial databases.

---

### How Japan Courts Scraper Works

1. Pick a case category — Supreme Court, lower courts, IP High Court, administrative, or labor. You can also choose "recent Supreme Court" for the curated recent-decisions list.
2. Optionally add filters: case name keyword, exact case number, ruling date range, or specific court. Leave them empty to walk the full recent-cases index for that vertical.
3. The scraper paginates through results 30 rows at a time, parses each row into a structured record, and stops when `maxItems` is reached.
4. Enable `includeDetail` to fetch each judgment's detail page for the summary (判示事項) and referenced laws (参照法条). Roughly doubles the run time but returns richer records.

---

### Input

```json
{
  "searchType": "supreme",
  "caseNameKeyword": "",
  "caseNumber": "",
  "rulingDateFrom": "",
  "rulingDateTo": "",
  "courtName": "",
  "includeDetail": false,
  "maxItems": 50
}
````

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `searchType` | string | `"supreme"` | One of `supreme`, `recent_supreme`, `lower`, `admin`, `labor`, `ip`. |
| `caseNameKeyword` | string | `""` | Keyword search on 事件名 (case name). Japanese or romanized. |
| `caseNumber` | string | `""` | Exact case number match (e.g. `令和7(行ヒ)25`). |
| `rulingDateFrom` | string | `""` | Lower bound of ruling date range, Gregorian `YYYY-MM-DD`. |
| `rulingDateTo` | string | `""` | Upper bound of ruling date range, Gregorian `YYYY-MM-DD`. |
| `courtName` | string | `""` | Filter by specific court name (e.g. `最高裁判所`, `東京高等裁判所`). |
| `includeDetail` | boolean | `false` | When true, fetches each detail page for summary and law references. |
| `maxItems` | integer | `50` | Cap on records returned. Set `0` for unlimited (watch the actor timeout). |

#### Examples

**Recent IP High Court decisions with full detail:**

```json
{ "searchType": "ip", "includeDetail": true, "maxItems": 25 }
```

**Supreme Court rulings from 2024:**

```json
{
  "searchType": "supreme",
  "rulingDateFrom": "2024-01-01",
  "rulingDateTo": "2024-12-31",
  "maxItems": 100
}
```

**Keyword search for constitutional cases:**

```json
{ "searchType": "supreme", "caseNameKeyword": "憲法", "maxItems": 50 }
```

***

### Japan Courts Scraper Output Fields

```json
{
  "hanrei_id": "95816",
  "case_number": "令和6(あ)1479",
  "case_name": "各廃棄物の処理及び清掃に関する法律違反被告事件",
  "ruling_date": "2026-04-07",
  "ruling_date_wareki": "令和8年4月7日",
  "court_name": "最高裁判所第三小法廷",
  "court_branch": null,
  "ruling_type": "決定",
  "result": "棄却",
  "original_court": "東京高等裁判所",
  "original_case_number": "令和5(う)1193",
  "category": "supreme",
  "subcategory": null,
  "pdf_url": "https://www.courts.go.jp/assets/hanrei/hanrei-pdf-95816.pdf",
  "detail_url": "https://www.courts.go.jp/hanrei/95816/detail2/index.html",
  "summary_jp": "１　破産手続開始の決定を受けた株式会社を被告人とする刑事事件が係属している場合における破産手続の終了と刑訴法３３９条１項４号にいう…",
  "law_references": null,
  "source_url": "https://www.courts.go.jp/hanrei/search1/index.html?filter%5Brecent%5D=true&offset=0",
  "scraped_at": "2026-04-23T07:46:31.873Z"
}
```

| Field | Type | Description |
|-------|------|-------------|
| `hanrei_id` | string | Internal document ID on courts.go.jp. |
| `case_number` | string | Case number / 事件番号 in wareki format. |
| `case_name` | string | Case name / 事件名 in Japanese. |
| `ruling_date` | string | Ruling date in Gregorian `YYYY-MM-DD`. |
| `ruling_date_wareki` | string | Ruling date in original wareki format (令和/平成/昭和). |
| `court_name` | string | Court name including panel (e.g. 最高裁判所第三小法廷). |
| `court_branch` | string | Court branch or section when distinct from `court_name`. |
| `ruling_type` | string | 判決 (hanketsu/judgment) or 決定 (kettei/decision). |
| `result` | string | Ruling result (破棄自判 / 棄却 / 却下 / 認容 / etc.). |
| `original_court` | string | Lower court for appellate cases (原審裁判所). |
| `original_case_number` | string | Lower court case number (原審事件番号). |
| `category` | string | `supreme`, `recent_supreme`, `lower`, `ip`, `admin`, or `labor`. |
| `subcategory` | string | Tag set such as 特許権, 民事訴訟 when present. |
| `pdf_url` | string | Direct URL to the full-text judgment PDF. |
| `detail_url` | string | URL of the judgment detail page on courts.go.jp. |
| `summary_jp` | string | 判示事項 / 裁判要旨 when available (requires `includeDetail`). |
| `law_references` | string | 参照法条 referenced laws (requires `includeDetail`). |
| `source_url` | string | The listing-page URL this record came from. |
| `scraped_at` | string | ISO-8601 timestamp when the record was extracted. |

***

### FAQ

#### How do I scrape courts.go.jp?

Japan Courts Scraper pulls judgments from the official `/hanrei/search{N}/index.html` endpoints. Pick a `searchType`, add optional filters, and set `maxItems` — that's the whole setup. No login, no proxy.

#### How much does Japan Courts Scraper cost to run?

Japan Courts Scraper uses pay-per-event pricing at $0.10 per run start plus $0.001 per record. A 500-record run costs around $0.60 total. IP High Court and labor verticals usually return smaller batches; Supreme Court has ~67,000 cases available if you want the full archive.

#### What data can I get from courts.go.jp?

Japan Courts Scraper returns 18 fields per judgment, including case number, case name, ruling date (wareki and Gregorian), court name and panel, ruling type, result, the PDF URL, and — optionally — the full summary text and referenced laws from the detail page.

#### Does Japan Courts Scraper need proxies?

Japan Courts Scraper does not need proxies. The target is a Japanese government site that serves clean HTML to any standard user agent, which is more than most scrapers can claim.

#### Can I filter by court or date range?

Japan Courts Scraper accepts `courtName`, `rulingDateFrom`, and `rulingDateTo` filters. The court name filter matches substrings like `最高裁判所` or `東京高等裁判所`. Dates are Gregorian — the actor handles the wareki conversion on the output side, not the input side.

#### How do I get the full opinion text?

Japan Courts Scraper returns a direct `pdf_url` for each judgment. Download the PDF with whatever pipeline you already use for legal research. The actor deliberately does not inline the PDF text — OCR and legal-parsing workflows vary too much to be one-size-fits-all.

***

### Need More Features?

Need custom fields, different filters, or a different target site? File an issue or get in touch.

### Why Use Japan Courts Scraper?

- **Only actor targeting saibansho** — zero competition on Apify, covers all six courts.go.jp verticals in one place.
- **Structured wareki + Gregorian dates** — parses 令和/平成/昭和/大正/明治 eras to ISO format so you can sort, filter, and join on dates without writing your own era converter.
- **Clean output, no proxies** — returns structured JSON with consistent field names, and runs on a direct HTTP crawler with no browser overhead, so it's fast and cheap.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

Please describe how you plan to use the data extracted by this crawler.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

Provide your email address so we can get in touch with you.

## `searchType` (type: `string`):

Which court vertical to search. Supreme = Supreme Court of Japan (最高裁); Recent Supreme = recent Supreme Court decisions; Lower = district/high courts; IP = Intellectual Property High Court (知財高裁); Admin = administrative cases; Labor = labor cases.

## `caseNameKeyword` (type: `string`):

Keyword search in case name (事件名). Accepts Japanese or romanized text. Leave empty to list all cases.

## `caseNumber` (type: `string`):

Exact case number lookup (e.g. '令和7(行ヒ)25'). Leave empty for keyword/date search.

## `rulingDateFrom` (type: `string`):

Start of ruling date range (YYYY-MM-DD, Gregorian). Example: 2024-01-01

## `rulingDateTo` (type: `string`):

End of ruling date range (YYYY-MM-DD, Gregorian). Example: 2025-12-31

## `courtName` (type: `string`):

Filter by specific court (e.g. '最高裁判所', '東京高等裁判所'). Leave empty for all courts in category.

## `includeDetail` (type: `boolean`):

When enabled, fetch each case detail page to extract summary (判示事項/裁判要旨) and law references (参照法条). Roughly 2x slower but returns richer records.

## `maxItems` (type: `integer`):

Maximum number of judgment records to return. Set to 0 for unlimited (subject to actor timeout).

## `proxyConfiguration` (type: `object`):

Proxy settings. courts.go.jp is a government site and does not require proxies — leave disabled for best performance.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "searchType": "supreme",
  "includeDetail": false,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "searchType": "supreme",
    "caseNameKeyword": "",
    "caseNumber": "",
    "rulingDateFrom": "",
    "rulingDateTo": "",
    "courtName": "",
    "includeDetail": false,
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/courts-go-jp-hanrei-scraper").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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "searchType": "supreme",
    "caseNameKeyword": "",
    "caseNumber": "",
    "rulingDateFrom": "",
    "rulingDateTo": "",
    "courtName": "",
    "includeDetail": False,
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/courts-go-jp-hanrei-scraper").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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "searchType": "supreme",
  "caseNameKeyword": "",
  "caseNumber": "",
  "rulingDateFrom": "",
  "rulingDateTo": "",
  "courtName": "",
  "includeDetail": false,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call jungle_synthesizer/courts-go-jp-hanrei-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jungle_synthesizer/courts-go-jp-hanrei-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Japan Courts Judgment Scraper (saibansho / 裁判所)",
        "description": "Extract Japanese court judgments from courts.go.jp (裁判所) — Supreme Court, lower courts, IP High Court, administrative, and labor cases. Returns case number, case name, ruling date (wareki + Gregorian), court, ruling type, result, and full-text PDF URL. Free alternative to Westlaw Japan.",
        "version": "0.1",
        "x-build-id": "B5x6r6D8wcV9smxJ5"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jungle_synthesizer~courts-go-jp-hanrei-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jungle_synthesizer-courts-go-jp-hanrei-scraper",
                "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/jungle_synthesizer~courts-go-jp-hanrei-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jungle_synthesizer-courts-go-jp-hanrei-scraper",
                "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/jungle_synthesizer~courts-go-jp-hanrei-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jungle_synthesizer-courts-go-jp-hanrei-scraper",
                "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": [
                    "sp_intended_usage",
                    "sp_improvement_suggestions"
                ],
                "properties": {
                    "sp_intended_usage": {
                        "title": "What is the intended usage of this data?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Please describe how you plan to use the data extracted by this crawler."
                    },
                    "sp_improvement_suggestions": {
                        "title": "How can we improve this crawler for you?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide any feedback or suggestions for improvements."
                    },
                    "sp_contact": {
                        "title": "Contact Email",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide your email address so we can get in touch with you."
                    },
                    "searchType": {
                        "title": "Case Category",
                        "enum": [
                            "supreme",
                            "recent_supreme",
                            "lower",
                            "admin",
                            "labor",
                            "ip"
                        ],
                        "type": "string",
                        "description": "Which court vertical to search. Supreme = Supreme Court of Japan (最高裁); Recent Supreme = recent Supreme Court decisions; Lower = district/high courts; IP = Intellectual Property High Court (知財高裁); Admin = administrative cases; Labor = labor cases.",
                        "default": "supreme"
                    },
                    "caseNameKeyword": {
                        "title": "Case Name Keyword",
                        "type": "string",
                        "description": "Keyword search in case name (事件名). Accepts Japanese or romanized text. Leave empty to list all cases."
                    },
                    "caseNumber": {
                        "title": "Case Number",
                        "type": "string",
                        "description": "Exact case number lookup (e.g. '令和7(行ヒ)25'). Leave empty for keyword/date search."
                    },
                    "rulingDateFrom": {
                        "title": "Ruling Date From",
                        "type": "string",
                        "description": "Start of ruling date range (YYYY-MM-DD, Gregorian). Example: 2024-01-01"
                    },
                    "rulingDateTo": {
                        "title": "Ruling Date To",
                        "type": "string",
                        "description": "End of ruling date range (YYYY-MM-DD, Gregorian). Example: 2025-12-31"
                    },
                    "courtName": {
                        "title": "Court Name Filter",
                        "type": "string",
                        "description": "Filter by specific court (e.g. '最高裁判所', '東京高等裁判所'). Leave empty for all courts in category."
                    },
                    "includeDetail": {
                        "title": "Include Detail Page Data",
                        "type": "boolean",
                        "description": "When enabled, fetch each case detail page to extract summary (判示事項/裁判要旨) and law references (参照法条). Roughly 2x slower but returns richer records.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "type": "integer",
                        "description": "Maximum number of judgment records to return. Set to 0 for unlimited (subject to actor timeout).",
                        "default": 50
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. courts.go.jp is a government site and does not require proxies — leave disabled for best performance."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
