# Japan Subsidies & Grants Scraper (jGrants) 🇯🇵 💰 $5/1K (`datakura/japan-subsidies-scraper`) Actor

Extract Japanese government subsidies & grants from the official jGrants API (Digital Agency): amounts, subsidy rates, deadlines, target industries/regions, full descriptions and application documents — filter by keyword and acceptance status.

- **URL**: https://apify.com/datakura/japan-subsidies-scraper.md
- **Developed by:** [Datakura Studio](https://apify.com/datakura) (community)
- **Categories:** Business, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 subsidy records

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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Subsidies & Grants Scraper — official jGrants data, structured

Extract **Japanese government subsidies and grants (補助金・助成金)** from **jGrants**, the Digital Agency's official subsidy application portal. Keyword search, open-application filtering, and full detail enrichment — amounts, subsidy rates, deadlines, target industries, target regions, employee-size conditions, full descriptions and application-document metadata — returned as clean structured JSON.

The source is an official government API: legal to use, token-free, and exceptionally stable.

### What data does it extract?

| Field | Description |
|---|---|
| `subsidyId` / `code` | jGrants record ID and subsidy code |
| `title` | Subsidy name (e.g. `【久留米市】小規模事業者デジタル化支援補助金`) |
| `catchPhrase` | One-line summary when provided |
| `institution` | Granting institution |
| `targetArea` / `targetAreaDetail` | Target region (`全国` or prefecture) + detail |
| `employeeLimit` | Employee-count condition (e.g. `20名以下`) |
| `maxAmountJpy` | Maximum grant amount in JPY |
| `subsidyRate` | Subsidy rate (e.g. `1/2`, `2/3`) when provided |
| `industries` | Target industries (array) |
| `usePurposes` | Use purposes (array, e.g. `設備整備・IT導入をしたい`) |
| `acceptanceStartAt` / `acceptanceEndAt` | Application window (ISO 8601) |
| `projectEndDeadline` | Project completion deadline |
| `isAcceptingViaJgrants` | Whether applications go through jGrants itself |
| `descriptionText` / `descriptionHtml` | Full description (plain text + original HTML) |
| `officialPageUrl` | Official jGrants detail page |
| `applicationGuidelines` / `applicationForms` / `grantOutlines` | Application document names + sizes |
| `scrapedAt` | ISO timestamp of extraction |

### Sample output

```json
{
  "subsidyId": "a0WJ200000CDbpCMAT",
  "code": "S-00009403",
  "title": "【久留米市】久留米市小規模事業者デジタル化支援補助金（令和８年度）",
  "targetArea": "福岡県",
  "employeeLimit": "20名以下",
  "maxAmountJpy": 200000,
  "industries": ["建設業", "製造業", "卸売業、小売業"],
  "usePurposes": ["設備整備・IT導入をしたい"],
  "acceptanceStartAt": "2026-06-23T23:30:00.000Z",
  "acceptanceEndAt": "2026-12-28T08:15:00.000Z",
  "descriptionText": "市内小規模事業者のデジタル化を支援…",
  "officialPageUrl": "https://www.jgrants-portal.go.jp/subsidy/a0WJ200000CDbpCMAT",
  "applicationForms": [
    { "name": "2-2 支出計画書（第２号様式-2）.xls", "approxSizeBytes": 35841 }
  ],
  "scrapedAt": "2026-07-08T01:20:00.000Z"
}
```

### Input

- **`keywords`** — search terms to sweep (min. 2 chars each); results are merged and **deduplicated**. Broad terms like `補助金` return the whole catalog; combine narrow terms like `デジタル`, `省エネ`, `創業`, `輸出`
- **`acceptingOnly`** — ON (default): only subsidies currently accepting applications; OFF: full catalog
- **`includeDetails`** — ON (default): enrich each record with full description, rates, industries, documents
- **`sort`** / **`order`** — newest first by default; sort by acceptance start/deadline too
- **`maxItems`** — cap on results; you are only charged for what you get

### Pricing (pay per event)

| Usage | Approx. cost |
|---|---|
| 50 subsidies (default) | $0.27 |
| 500 subsidies | $2.52 |
| Full open catalog (~2,400) | ~$12 |

Actor start: $0.02 + $0.005 per subsidy (detail enrichment included). No subscription, no rental fee. A daily "what's new" monitoring run costs pennies.

### Common use cases

- **Grant-consulting lead engine** — 士業/consultants: alert clients the day a matching subsidy opens (region × industry × employee size are all structured fields)
- **SaaS / fintech integrations** — power "subsidies you qualify for" features in accounting, banking or HR products
- **AI agents / RAG pipelines** — full descriptions in every record make this a drop-in source for LLM matching and summarization

### Use from AI agents (MCP)

This Actor can be called as an MCP tool via [Apify MCP server](https://mcp.apify.com). Point your agent to `mcp.apify.com` and search for this Actor by name.

### FAQ

**Is this legal?** Yes. jGrants' public API is operated by Japan's Digital Agency precisely so subsidy information can be reused programmatically. No personal data.

**Why is `maxAmountJpy` sometimes 0 or fields null?** The portal aggregates records from many institutions; not every field is populated at the source. `title`, `targetArea`, acceptance dates and `officialPageUrl` are reliably present.

**Can I get the application files themselves?** The API embeds files as base64 (several MB each), which would blow up dataset items — this Actor returns file names + sizes instead, and every record links to its official page where files are downloadable.

**Does it include municipal subsidies?** It includes everything published on jGrants (national + prefectural + municipal). Some purely local subsidies are never posted to jGrants — that subset is out of scope.

**Something broken?** Open an issue on this Actor's page — fixes ship within 24 hours.

***

*Maintenance notes (internal): list = `GET /exp/v1/public/subsidies?keyword=..&sort=..&order=..&acceptance=0|1` (keyword REQUIRED, min 2 chars, else `{"message":"Bad request"}` HTTP 400). NO pagination — full set in one response (verified count=2418 → len=2418). Detail = `GET /subsidies/id/{id}`; `application_*`/`outline_of_grant` embed base64 file payloads (one record hit 12 MB > Apify's 9 MB item limit — metadata-only mapping is load-bearing). Legitimate empty = `metadata.resultset.count: 0`. Verified 2026-07-08.*

# Actor input Schema

## `keywords` (type: `array`):

Keywords to sweep (each min. 2 characters, Japanese works best). Results are merged and deduplicated. Broad defaults like <code>補助金</code> return the whole catalog; narrow with terms like <code>デジタル</code>, <code>省エネ</code>, <code>創業</code>.

## `acceptingOnly` (type: `boolean`):

ON = only subsidies whose application window is open now. OFF = full catalog including past/upcoming rounds.

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

Enrich each subsidy with the detail record: full description, subsidy rate, target industries, use purposes, application documents and official page URL. Recommended.

## `sort` (type: `string`):

Sort field applied by the jGrants API.

## `order` (type: `string`):

Sort direction.

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

Maximum number of subsidies to return. Keep the default to try the Actor cheaply.

## Actor input object example

```json
{
  "keywords": [
    "補助金"
  ],
  "acceptingOnly": true,
  "includeDetails": true,
  "sort": "created_date",
  "order": "DESC",
  "maxItems": 50
}
```

# 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 = {
    "keywords": [
        "補助金"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datakura/japan-subsidies-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 = { "keywords": ["補助金"] }

# Run the Actor and wait for it to finish
run = client.actor("datakura/japan-subsidies-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 '{
  "keywords": [
    "補助金"
  ]
}' |
apify call datakura/japan-subsidies-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/6s8PlNTkRoioWiduC/builds/Sy45RDLPYX1pqVfKI/openapi.json
