# Hakone Hotels: Tattoo, Vegan & Private Onsen (`a_a2ad/my-actor`) Actor

Compare dated tattoo policies, vegan-related dining conditions and private onsen records for 10 Hakone hotels and ryokan. Select one or many facilities and attributes in one run, with source dates, scopes and unresolved conditions. USD0.005 per available facility-attribute record.

- **URL**: https://apify.com/a_a2ad/my-actor.md
- **Developed by:** [Manabu Omae](https://apify.com/a_a2ad) (community)
- **Security:** Limited permissions
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 travel-constraint attribute 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Hakone Hotels: Tattoo, Vegan & Private Onsen

Compare **dated travel-condition records for 10 Hakone hotels and ryokan**: tattoo policies, vegan-related dining conditions, and private hot-spring bath scopes. Select the facilities and attributes needed for a travel question in one run.

箱根のタトゥー・刺青に関する入浴条件、ヴィーガン関連の食事条件、客室温泉・貸切風呂の記録を、施設と用途を指定して比較できます。

**Source observations: September 7–15, 2026; Gora Kadan tattoo: October 16, 2026.**

**USD0.005 per available facility × attribute record.** A record includes its related bath, meal and room scopes. There is no startup charge or additional buyer platform-usage charge. This is a saved information dataset; a run does not refresh websites or check live room availability.

### Start with a travel question

#### Check tattoo policies at Hakone onsen

```json
{
  "facility_id": "all",
  "attribute": "tattoo"
}
```

**4 dated records / USD0.020.** Compare documented policy scopes, conditions and unresolved points. A record's inclusion does not mean unconditional tattoo acceptance or individual admission.

#### Check vegan meal conditions at Hakone ryokan

```json
{
  "facility_id": "all",
  "attribute": "vegan"
}
```

**8 dated records / USD0.040.** Compare vegan-related dining conditions across the covered properties. Records can describe refusal or uncertainty; vegetarian or allergy accommodation is not automatically strict vegan support.

#### Compare private onsen options at Hakone hotels

```json
{
  "facility_id": "all",
  "attribute": "private_onsen"
}
```

**9 dated records / USD0.045.** Compare recorded room-bath and private-bath scopes. A room's hot-spring bath does not establish tattoo acceptance or availability for a particular stay.

#### Compare selected hotels in one batch

```json
{
  "facility_ids": ["hakone_hatsuhana", "yamanochaya"],
  "attributes": ["tattoo", "vegan", "private_onsen"]
}
```

**6 records / USD0.030.** Use the IDs and available combinations below to tailor a comparison. Set a run budget that covers the complete selection; the Actor does not raise the budget for you.

### Coverage and price

“Included” means a dated information record is available. It does **not** mean that tattoos or vegan requests are accepted. A record can contain a documented refusal or grounded uncertainty with relevant conditions.

| Facility | ID | Tattoo | Vegan-related dining | Private onsen | All available records |
|---|---|---|---|---|---:|
| Hakone Ginyu / 箱根吟遊 | `hakone_ginyu` | — | Included | Included | 2 / USD0.010 |
| Fufu Hakone / ふふ 箱根 | `fufu_hakone` | — | — | Included | 1 / USD0.005 |
| Hakone Suishoen / 箱根・翠松園 | `hakone_suishoen` | — | Included | Included | 2 / USD0.010 |
| THE HIRAMATSU Sengokuhara / 仙石原 | `hiramatsu_sengokuhara` | — | Included | Included | 2 / USD0.010 |
| Hakone Gora Byakudan / 箱根強羅 白檀 | `hakone_gora_byakudan` | — | Included | Included | 2 / USD0.010 |
| Gora Kadan Hakone / 強羅花壇 箱根 | `gora_kadan_hakone` | Included | Included | — | 2 / USD0.010 |
| Hatsuhana / はつはな | `hakone_hatsuhana` | Included | Included | Included | 3 / USD0.015 |
| Madoka no Mori / 円かの杜 | `madokanomori` | Included | — | Included | 2 / USD0.010 |
| Hakone Retreat villa 1/f / 箱根リトリート | `hakone_retreat_villa_1f` | — | Included | Included | 2 / USD0.010 |
| Yama no Chaya / 山の茶屋 | `yamanochaya` | Included | Included | Included | 3 / USD0.015 |
| **Total** | | **4** | **8** | **9** | **21 / USD0.105** |

A dash means no record is offered for that combination; it is not a negative policy verdict. Selecting several facilities and attributes returns only the available combinations in this table. Missing combinations produce no empty billable result.

Private-onsen records include the supported room and shared-facility scopes within one attribute price. Room-bath existence does not establish tattoo acceptance. Dietary records keep hotel meals and named restaurant/menu scopes separate; vegetarian or allergy accommodation is not automatically strict vegan support.

### Observation dates and limits

Source observations date from **September 7–15, 2026**, except the existing Gora Kadan tattoo record, checked **October 16, 2026**. The saved bundle currently offers **21 records across 10 properties**. Calling this Actor does not refresh sources. Every answer should retain the relevant observation dates, scope and unresolved conditions; neither a booking nor individual admission is guaranteed.

### More input options

#### All available records

```json
{
  "facility_id": "all",
  "attribute": "all"
}
```

**21 records / USD0.105.** Set the run's maximum charge to at least **USD0.105** for this complete selection.

#### Existing one-record lookup

An empty input preserves the original Gora Kadan tattoo result:

```json
{}
```

**1 record / USD0.005.** The original `facility_id: "gora_kadan_hakone"`, `attribute: "tattoo"`, `bath_scope: "public_bath"` selectors remain supported. Explicit selectors are recommended when specifying a different travel question.

#### Selector rules

- Use either `facility_id` or `facility_ids`, and either `attribute` or `attributes`, for each dimension.
- `all` is supported only by the singular selectors. Plural selectors take nonempty arrays of the IDs shown above and the attributes `tattoo`, `vegan`, `private_onsen`.
- Omitted facility selectors use Gora Kadan; omitted attribute selectors use tattoo.
- Duplicate selections are deduplicated within the run and do not create extra results.
- `bath_scope` is a compatibility selector only for Gora Kadan tattoo. Omit it for expanded selections; each returned record includes its relevant scopes.
- A selection with no available record, invalid input, or an insufficient finite event budget fails before any Dataset item is written. No empty result is charged.
- Do not place run budget, memory or timeout options inside the Actor input.

### Output

The default Dataset contains one JSON object for each selected available facility-attribute record. The original Gora Kadan tattoo record retains its existing shape.

Other records contain `facility_id`, `facility_name`, `attribute`, `record_id`, `data_version`, `scoped_facts`, `evidence`, `unresolved_conditions` and explicit non-guarantee flags. Each fact preserves its scope, value, evidence IDs and observation dates. A `null` value means the reviewed evidence did not establish the answer; it is not `false`.

Evidence includes source names and check dates. Source-basis labels describe how that historical observation was obtained, not a fresh check today. Website URLs and copied source documents are not part of the result.

The **Overview** Dataset view keeps one row per facility-attribute record. Expanded records show nested `scoped_facts` and `evidence`; the legacy Gora Kadan tattoo row instead shows its top-level `checked_date` and `structured_conditions`. Empty columns reflect these different existing shapes, not a new policy finding. The field schema describes both shapes without requiring either set of optional fields.

### Use with an AI agent

Use the same public Actor, **`a_a2ad/my-actor`**, through the [Apify MCP server](https://mcp.apify.com/?tools=fetch-actor-details,call-actor,get-actor-run,get-dataset-items,a_a2ad/my-actor).

1. Fetch the Actor details to read the current input schema and effective price.
2. Call the Actor with the desired input. Put the maximum charge in the tool's **`callOptions.maxTotalChargeUsd`**, not in the input: `0.005` for one record, `0.030` for the six-record example, or `0.105` for all records. Respect any spending limit set by your operator.
3. If necessary, check that same run with `get-actor-run`, then read its default Dataset with `get-dataset-items`.
4. Retrieve results from the existing run; do not start another run simply to poll or reread them. A new successful run produces a new set of billable results.

Console, API, MCP, schedules and integrations use the same result-based pricing. Reading the existing Dataset does not create another output item or another result charge. Platform access and storage rules still apply.

### Interpretation

Keep the dated scope with every answer. In particular, a named restaurant course does not define all hotel meals; a public-bath tattoo policy does not define every bath; and a room's hot-spring bath does not guarantee an available room. Menu validity dates remain explicit where known. Seek a current booking-specific confirmation when that decision requires it.

# Actor input Schema

## `facility_id` (type: `string`):

Choose one covered Hakone hotel or ryokan ID, or all to compare available records across the listed facilities. Example: hakone_hatsuhana. Do not combine with facility_ids. If neither selector is supplied, the runtime uses gora_kadan_hakone.

## `facility_ids` (type: `array`):

Compare selected Hakone hotels or ryokan in one run, for example \["hakone_hatsuhana", "yamanochaya"]. Use only the listed IDs, without all. Do not combine with facility_id. Repeated IDs are deduplicated; unavailable facility-attribute combinations produce no item.

## `attribute` (type: `string`):

Choose tattoo for tattoo-policy records, vegan for vegan-related dining conditions, private_onsen for private hot-spring bath scopes, or all for every available attribute. Do not combine with attributes. If neither selector is supplied, the runtime uses tattoo. A record can describe support, refusal or uncertainty; inclusion is not acceptance.

## `attributes` (type: `array`):

Select multiple attributes in one run, for example \["tattoo", "private_onsen"]. Do not combine with attribute; all is not an array value. Each available facility-attribute record costs USD0.005 and includes its related scopes. Unknown or conditional findings remain explicit.

## `bath_scope` (type: `string`):

Legacy compatibility selector: public_bath is valid only for the single gora_kadan_hakone tattoo selection. Omit for all other lookups. Relevant bath, meal or room scopes are already included in each available record.

## Actor input object example

```json
{}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("a_a2ad/my-actor").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("a_a2ad/my-actor").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call a_a2ad/my-actor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,a_a2ad/my-actor"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/AghIe6y9zmFKkOeUs/builds/kb9tQUtbLgiCeZOas/openapi.json
