Zarvo

Find UK padel courts, live availability and public games, then hand booking to the provider.

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
80%
命名の品質
98%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~19,763トークン数(ツール定義)
~18.0 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 15.44%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "padel": {
      "url": "https://zarvo.uk/mcp"
    }
  }
}

リモートエンドポイント

https://zarvo.uk/mcpstreamable-http

できること

ツール一覧

ツール(9)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢search_courts(date, date_range, earliest_time, latest_end_time, duration_minutes, ...)

Use this when a group wants bookable court options near a UK location on one date or across a bounded date range. Searches configured providers, normalizes known whole-court and per-player prices, adds catalogue venue IDs and coordinates, and returns at most the requested limit across all dates. Providers such as MATCHi may return a null anonymous price; those slots remain visible under a price ceiling with price_details.basis unknown and must not be presented as budget matches. Travel time is a straight-line heuristic with a 15% soft-filter tolerance near max_travel_minutes, not live routing. number_of_players affects per-player price only; use singles_court to require explicit singles support. Do not use for venue-only discovery or public games.

入力スキーマ

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "date_range": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        "end": {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        "max_days": {
          "default": 7,
          "type": "integer",
          "minimum": 1,
          "maximum": 14
        }
      },
      "required": [
        "start",
        "end"
      ]
    },
    "earliest_time": {
      "default": "00:00",
      "type": "string",
      "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
    },
    "latest_end_time": {
      "type": "string",
      "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
    },
    "duration_minutes": {
      "description": "Omit to return every duration offered by the provider.",
      "type": "integer",
      "minimum": 30,
      "maximum": 180,
      "multipleOf": 30
    },
    "number_of_players": {
      "default": 4,
      "description": "Used to compute per-player price only. Does not filter court capacity; use singles_court for that.",
      "type": "integer",
      "minimum": 1,
      "maximum": 4
    },
    "singles_court": {
      "default": false,
      "description": "When true, restrict results to courts or venues explicitly identified as supporting singles play.",
      "type": "boolean"
    },
    "provider": {
      "type": "string",
      "enum": [
        "padelstars",
        "playtomic",
        "padelmates",
        "matchi",
        "clubspark",
        "matchpoint"
      ]
    },
    "location": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120
    },
    "radius_km": {
      "default": 10,
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "max_travel_minutes": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 180
    },
    "travel_mode": {
      "default": "drive",
      "type": "string",
      "enum": [
        "drive"
      ]
    },
    "court_type": {
      "type": "string",
      "enum": [
        "indoor",
        "outdoor",
        "covered",
        "unspecified"
      ]
    },
    "max_price_per_player": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "limit": {
      "default": 3,
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "required": [
    "location"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slot_id": {
            "type": "string",
            "minLength": 1
          },
          "provider": {
            "type": "string",
            "enum": [
              "padelstars",
              "playtomic",
              "padelmates",
              "matchi",
              "clubspark",
              "matchpoint"
            ]
          },
          "venue": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "location": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "name",
              "location"
            ],
            "additionalProperties": false
          },
          "court": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "name"
            ],
            "additionalProperties": false
          },
          "starts_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "duration": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "price": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "club_id": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
              },
              {
                "type": "null"
              }
            ]
          },
          "date": {
            "type": "string",
            "format": "date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
          },
          "source": {
            "type": "object",
            "properties": {
              "provider": {
                "type": "string",
                "minLength": 1
              },
              "provider_url": {
                "type": "string",
                "format": "uri"
              },
              "method": {
                "type": "string",
                "enum": [
                  "provider_live_api",
                  "provider_public_page",
                  "catalog_snapshot"
                ]
              }
            },
            "required": [
              "provider",
              "provider_url",
              "method"
            ],
            "additionalProperties": false
          },
          "checked_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "availability": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "available",
                  "unavailable",
                  "unknown"
                ]
              },
              "confidence": {
                "type": "string",
                "enum": [
                  "confirmed_live",
                  "provider_reported",
                  "derived",
                  "unknown"
                ]
              }
            },
            "required": [
              "status",
              "confidence"
            ],
            "additionalProperties": false
          },
          "price_details": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "currency": {
                "type": "string",
                "minLength": 3,
                "maxLength": 3
              },
              "basis": {
                "type": "string",
                "enum": [
                  "whole_court",
                  "per_player",
                  "session",
                  "unknown"
                ]
              },
              "number_of_players": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "calculated_per_player": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "amount",
              "currency",
              "basis",
              "number_of_players",
              "calculated_per_player"
            ],
            "additionalProperties": false
          },
          "travel": {
            "type": "object",
            "properties": {
              "coordinates": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "latitude": {
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90
                      },
                      "longitude": {
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "straight_line_distance_km": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "estimated_duration_minutes": {
                "anyOf": [
                  {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mode": {
                "type": "string",
                "enum": [
                  "drive"
                ]
              },
              "confidence": {
                "type": "string",
                "enum": [
                  "estimated",
                  "unavailable"
                ]
              },
              "method": {
                "type": "string",
                "enum": [
                  "straight_line_heuristic",
                  "not_calculated"
                ]
              }
            },
            "required": [
              "coordinates",
              "straight_line_distance_km",
              "estimated_duration_minutes",
              "mode",
              "confidence",
              "method"
            ],
            "additionalProperties": false
          },
          "travel_estimate_uncertain": {
            "type": "boolean"
          },
          "revalidation": {
            "type": "object",
            "properties": {
              "required": {
                "type": "boolean"
              },
              "recheck_after": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "expires_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "semantics": {
                "type": "string",
                "enum": [
                  "recheck_before_handoff",
                  "rechecked_for_handoff"
                ]
              }
            },
            "required": [
              "required",
              "recheck_after",
              "expires_at",
              "semantics"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "slot_id",
          "provider",
          "venue",
          "court",
          "starts_at",
          "duration",
          "price",
          "currency",
          "club_id",
          "date",
          "source",
          "checked_at",
          "availability",
          "price_details",
          "travel",
          "travel_estimate_uncertain",
          "revalidation"
        ],
        "additionalProperties": false
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "providers": {
          "type": "object",
          "properties": {
            "requested": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "padelstars",
                  "playtomic",
                  "padelmates",
                  "matchi",
                  "clubspark",
                  "matchpoint"
                ]
              }
            },
            "succeeded": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "padelstars",
                  "playtomic",
                  "padelmates",
                  "matchi",
                  "clubspark",
                  "matchpoint"
                ]
              }
            },
            "failed": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "enum": [
                      "padelstars",
                      "playtomic",
                      "padelmates",
                      "matchi",
                      "clubspark",
                      "matchpoint"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "provider",
                  "code"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "requested",
            "succeeded",
            "failed"
          ],
          "additionalProperties": false
        },
        "checked_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "partial": {
          "type": "boolean"
        },
        "result_limit": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "travel_time_is_estimated": {
          "type": "boolean",
          "const": true
        }
      },
      "required": [
        "count",
        "providers",
        "checked_at",
        "partial",
        "result_limit",
        "travel_time_is_estimated"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search_clubs(court_type, racket_rental, facility, location, query, ...)

Use this lightweight directory lookup to find clubs by location and facilities or resolve a club description, nearby landmark, or partial club name into candidate club_id, club_name, and provider values. Put only club-name wording in query; add location when an area was supplied. Use court_type for indoor/outdoor/covered courts, racket_rental for racket hire, and facility for a requested amenity. Preserve these filters when refining a search. Do not infer or pass provider from a club or brand-like name: provider is only an explicit booking-platform hint. If that hint conflicts with the directory, name resolution may return the canonical provider instead. It returns Zarvo club metadata, not live court availability. Follow with get_club for full metadata or get_availability for live slots at a selected provider club.

入力スキーマ

{
  "type": "object",
  "properties": {
    "court_type": {
      "type": "string",
      "enum": [
        "indoor",
        "outdoor",
        "covered",
        "unspecified"
      ]
    },
    "racket_rental": {
      "type": "boolean"
    },
    "facility": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120
    },
    "location": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "provider": {
      "description": "Only filter by provider when the user explicitly names a booking platform. Never infer this from the club name.",
      "type": "string",
      "enum": [
        "padelstars",
        "playtomic",
        "padelmates",
        "matchi",
        "clubspark",
        "matchpoint"
      ]
    },
    "radius_km": {
      "default": 10,
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "limit": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "club_id": {
            "type": "string",
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "club_name": {
            "type": "string",
            "minLength": 1
          },
          "provider": {
            "type": "string",
            "enum": [
              "padelstars",
              "playtomic",
              "padelmates",
              "matchi",
              "clubspark",
              "matchpoint"
            ]
          },
          "address": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "distance_km": {
            "type": "number",
            "minimum": 0
          }
        },
        "required": [
          "club_id",
          "club_name",
          "provider",
          "address",
          "distance_km"
        ],
        "additionalProperties": false
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "result_limit": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "radius_km": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "snapshot_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
        }
      },
      "required": [
        "count",
        "result_limit",
        "radius_km",
        "snapshot_at"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search_public_games(provider, location, radius_km, date, date_range, ...)

Use this when a player wants an existing public padel game with an open spot. Omit date, time, level, and limit filters unless the user requested them; by default it returns every matching game around the location across the next 14 UK days. Returns anonymous match metadata and the provider join page; it never reveals player identities or joins on the user’s behalf. Do not use for empty-court bookings.

入力スキーマ

{
  "type": "object",
  "properties": {
    "provider": {
      "type": "string",
      "enum": [
        "padelstars",
        "playtomic",
        "padelmates",
        "matchi",
        "clubspark",
        "matchpoint"
      ]
    },
    "location": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120
    },
    "radius_km": {
      "default": 10,
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "date": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "date_range": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        "end": {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        "max_days": {
          "default": 14,
          "type": "integer",
          "minimum": 1,
          "maximum": 14
        }
      },
      "required": [
        "start",
        "end"
      ]
    },
    "earliest_time": {
      "type": "string",
      "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
    },
    "player_level": {
      "type": "number",
      "minimum": 1,
      "maximum": 7
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "required": [
    "location"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "game_id": {
            "type": "string",
            "minLength": 1
          },
          "provider": {
            "type": "string",
            "enum": [
              "padelstars",
              "playtomic",
              "padelmates",
              "matchi",
              "clubspark",
              "matchpoint"
            ]
          },
          "venue": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "location": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "name",
              "location"
            ],
            "additionalProperties": false
          },
          "court": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "name"
            ],
            "additionalProperties": false
          },
          "starts_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "sport": {
            "type": "string",
            "minLength": 1
          },
          "gender": {
            "type": "string",
            "enum": [
              "mixed",
              "male",
              "female",
              "unknown"
            ]
          },
          "level": {
            "type": "object",
            "properties": {
              "minimum": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 7
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "maximum": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 7
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "minimum",
              "maximum"
            ],
            "additionalProperties": false
          },
          "players": {
            "type": "object",
            "properties": {
              "joined": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "capacity": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "open_spots": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "joined",
              "capacity",
              "open_spots"
            ],
            "additionalProperties": false
          },
          "counts_for_ranking": {
            "type": "boolean"
          },
          "join_url": {
            "type": "string",
            "format": "uri"
          },
          "source": {
            "type": "object",
            "properties": {
              "provider": {
                "type": "string",
                "minLength": 1
              },
              "provider_url": {
                "type": "string",
                "format": "uri"
              },
              "method": {
                "type": "string",
                "enum": [
                  "provider_live_api",
                  "provider_public_page",
                  "catalog_snapshot"
                ]
              }
            },
            "required": [
              "provider",
              "provider_url",
              "method"
            ],
            "additionalProperties": false
          },
          "checked_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "availability": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "available",
                  "unavailable",
                  "unknown"
                ]
              },
              "confidence": {
                "type": "string",
                "enum": [
                  "confirmed_live",
                  "provider_reported",
                  "derived",
                  "unknown"
                ]
              }
            },
            "required": [
              "status",
              "confidence"
            ],
            "additionalProperties": false
          },
          "price_details": {
            "type": "null"
          },
          "travel": {
            "type": "object",
            "properties": {
              "coordinates": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "latitude": {
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90
                      },
                      "longitude": {
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "straight_line_distance_km": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "estimated_duration_minutes": {
                "anyOf": [
                  {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mode": {
                "type": "string",
                "enum": [
                  "drive"
                ]
              },
              "confidence": {
                "type": "string",
                "enum": [
                  "estimated",
                  "unavailable"
                ]
              },
              "method": {
                "type": "string",
                "enum": [
                  "straight_line_heuristic",
                  "not_calculated"
                ]
              }
            },
            "required": [
              "coordinates",
              "straight_line_distance_km",
              "estimated_duration_minutes",
              "mode",
              "confidence",
              "method"
            ],
            "additionalProperties": false
          },
          "revalidation": {
            "type": "object",
            "properties": {
              "required": {
                "type": "boolean",
                "const": true
              },
              "semantics": {
                "type": "string",
                "const": "provider_controls_join_availability"
              }
            },
            "required": [
              "required",
              "semantics"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "game_id",
          "provider",
          "venue",
          "court",
          "starts_at",
          "sport",
          "gender",
          "level",
          "players",
          "counts_for_ranking",
          "join_url",
          "source",
          "checked_at",
          "availability",
          "price_details",
          "travel",
          "revalidation"
        ],
        "additionalProperties": false
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "providers": {
          "type": "object",
          "properties": {
            "requested": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "padelstars",
                  "playtomic",
                  "padelmates",
                  "matchi",
                  "clubspark",
                  "matchpoint"
                ]
              }
            },
            "succeeded": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "padelstars",
                  "playtomic",
                  "padelmates",
                  "matchi",
                  "clubspark",
                  "matchpoint"
                ]
              }
            },
            "failed": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "enum": [
                      "padelstars",
                      "playtomic",
                      "padelmates",
                      "matchi",
                      "clubspark",
                      "matchpoint"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "provider",
                  "code"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "requested",
            "succeeded",
            "failed"
          ],
          "additionalProperties": false
        },
        "checked_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "partial": {
          "type": "boolean"
        },
        "result_limit": {
          "anyOf": [
            {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "travel_time_is_estimated": {
          "type": "boolean",
          "const": true
        },
        "search": {
          "type": "object",
          "properties": {
            "start_date": {
              "type": "string",
              "format": "date",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
            },
            "end_date": {
              "type": "string",
              "format": "date",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
            },
            "days_checked": {
              "type": "integer",
              "minimum": 1,
              "maximum": 14
            }
          },
          "required": [
            "start_date",
            "end_date",
            "days_checked"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "count",
        "providers",
        "checked_at",
        "partial",
        "result_limit",
        "travel_time_is_estimated",
        "search"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search_activities(provider, location, radius_km, start_date, search_days, ...)

Use this when a player wants scheduled PadelStars activities such as coaching, training, intro sessions, socials, junior sessions, or competitions. Returns live session times, levels, vacancies, prices when published, and the provider booking page. It never joins, books, or pays on the user’s behalf.

入力スキーマ

{
  "type": "object",
  "properties": {
    "provider": {
      "default": "padelstars",
      "type": "string",
      "const": "padelstars"
    },
    "location": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120
    },
    "radius_km": {
      "default": 10,
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "start_date": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "search_days": {
      "default": 7,
      "type": "integer",
      "minimum": 1,
      "maximum": 21
    },
    "earliest_time": {
      "type": "string",
      "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
    },
    "category": {
      "type": "string",
      "enum": [
        "social",
        "coaching",
        "training",
        "intro",
        "junior",
        "competition",
        "league",
        "tournament",
        "other"
      ]
    },
    "player_level": {
      "type": "number",
      "minimum": 1,
      "maximum": 7
    },
    "availability": {
      "default": "available",
      "type": "string",
      "enum": [
        "available",
        "all"
      ]
    },
    "limit": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "required": [
    "location",
    "start_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "minLength": 1
          },
          "provider": {
            "type": "string",
            "enum": [
              "padelstars",
              "playtomic",
              "padelmates",
              "matchi",
              "clubspark",
              "matchpoint"
            ]
          },
          "category": {
            "type": "string",
            "enum": [
              "social",
              "coaching",
              "training",
              "intro",
              "junior",
              "competition",
              "league",
              "tournament",
              "other"
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "venue": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "location": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "name",
              "location"
            ],
            "additionalProperties": false
          },
          "space": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "starts_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "duration": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "level": {
            "type": "object",
            "properties": {
              "minimum": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 7
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "maximum": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 7
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "minimum",
              "maximum"
            ],
            "additionalProperties": false
          },
          "availability": {
            "type": "object",
            "properties": {
              "booked": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "capacity": {
                "anyOf": [
                  {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "open_spots": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "booked",
              "capacity",
              "open_spots"
            ],
            "additionalProperties": false
          },
          "price": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "booking_url": {
            "type": "string",
            "format": "uri"
          },
          "source": {
            "type": "object",
            "properties": {
              "provider": {
                "type": "string",
                "minLength": 1
              },
              "provider_url": {
                "type": "string",
                "format": "uri"
              },
              "method": {
                "type": "string",
                "enum": [
                  "provider_live_api",
                  "provider_public_page",
                  "catalog_snapshot"
                ]
              }
            },
            "required": [
              "provider",
              "provider_url",
              "method"
            ],
            "additionalProperties": false
          },
          "checked_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          }
        },
        "required": [
          "session_id",
          "provider",
          "category",
          "name",
          "venue",
          "space",
          "starts_at",
          "duration",
          "level",
          "availability",
          "price",
          "currency",
          "booking_url",
          "source",
          "checked_at"
        ],
        "additionalProperties": false
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "providers": {
          "type": "object",
          "properties": {
            "requested": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "padelstars",
                  "playtomic",
                  "padelmates",
                  "matchi",
                  "clubspark",
                  "matchpoint"
                ]
              }
            },
            "succeeded": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "padelstars",
                  "playtomic",
                  "padelmates",
                  "matchi",
                  "clubspark",
                  "matchpoint"
                ]
              }
            },
            "failed": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "enum": [
                      "padelstars",
                      "playtomic",
                      "padelmates",
                      "matchi",
                      "clubspark",
                      "matchpoint"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "provider",
                  "code"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "requested",
            "succeeded",
            "failed"
          ],
          "additionalProperties": false
        },
        "checked_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "partial": {
          "type": "boolean"
        },
        "result_limit": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "travel_time_is_estimated": {
          "type": "boolean",
          "const": true
        },
        "search": {
          "type": "object",
          "properties": {
            "start_date": {
              "type": "string",
              "format": "date",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
            },
            "end_date": {
              "type": "string",
              "format": "date",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
            },
            "days_checked": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "start_date",
            "end_date",
            "days_checked"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "count",
        "providers",
        "checked_at",
        "partial",
        "result_limit",
        "travel_time_is_estimated",
        "search"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_club(club_id)

Use this after a Zarvo club ID is known and the user wants its address, coordinates, facilities, racket rental, contact information, official website, or social links. This returns directory metadata, not live availability.

入力スキーマ

{
  "type": "object",
  "properties": {
    "club_id": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
    }
  },
  "required": [
    "club_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "venue_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "id": {
          "type": "string",
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "name": {
          "type": "string",
          "minLength": 1
        },
        "city": {
          "type": "string",
          "minLength": 1
        },
        "slug": {
          "type": "string",
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "public_path": {
          "type": "string",
          "pattern": "^\\/clubs\\/[a-z0-9-]+\\/[a-z0-9-]+$"
        },
        "image_url": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "google_maps_url": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "country_code": {
          "type": "string",
          "minLength": 2,
          "maxLength": 2
        },
        "status": {
          "type": "string",
          "enum": [
            "open",
            "coming_soon",
            "closed"
          ]
        },
        "platform": {
          "type": "string",
          "minLength": 1
        },
        "operator": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "coordinates": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "latitude": {
                  "type": "number",
                  "minimum": -90,
                  "maximum": 90
                },
                "longitude": {
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180
                }
              },
              "required": [
                "latitude",
                "longitude"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "distance_km": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "null"
            }
          ]
        },
        "courts": {
          "type": "object",
          "properties": {
            "indoor": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "outdoor": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "covered": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "unspecified": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "total": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "indoor",
            "outdoor",
            "covered",
            "unspecified",
            "total"
          ],
          "additionalProperties": false
        },
        "price": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "minimum": {
                  "anyOf": [
                    {
                      "type": "number",
                      "minimum": 0
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "maximum": {
                  "anyOf": [
                    {
                      "type": "number",
                      "minimum": 0
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "currency": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3
                }
              },
              "required": [
                "minimum",
                "maximum",
                "currency"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "address": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "racket_rental": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ]
        },
        "facilities": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "details_available": {
          "type": "boolean"
        },
        "details_extracted_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
            },
            {
              "type": "null"
            }
          ]
        },
        "descriptions": {
          "type": "object",
          "properties": {
            "courts": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1
                },
                {
                  "type": "null"
                }
              ]
            },
            "price": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1
                },
                {
                  "type": "null"
                }
              ]
            },
            "racket_rental": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "courts",
            "price",
            "racket_rental"
          ],
          "additionalProperties": false
        },
        "contact": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "phone": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "email": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "website_url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "name",
                "phone",
                "email",
                "website_url"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "social_media_urls": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "required": [
        "id",
        "name",
        "city",
        "slug",
        "public_path",
        "country_code",
        "status",
        "platform",
        "operator",
        "coordinates",
        "distance_km",
        "courts",
        "price",
        "address",
        "racket_rental",
        "facilities",
        "details_available",
        "details_extracted_at",
        "descriptions",
        "contact",
        "social_media_urls"
      ],
      "additionalProperties": false
    },
    "source": {
      "type": "object",
      "properties": {
        "provider": {
          "type": "string",
          "minLength": 1
        },
        "provider_url": {
          "type": "string",
          "format": "uri"
        },
        "method": {
          "type": "string",
          "enum": [
            "provider_live_api",
            "provider_public_page",
            "catalog_snapshot"
          ]
        }
      },
      "required": [
        "provider",
        "provider_url",
        "method"
      ],
      "additionalProperties": false
    },
    "checked_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "snapshot_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "data",
    "source",
    "checked_at",
    "snapshot_at"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_availability(date, date_range, earliest_time, latest_end_time, duration_minutes, ...)

Use this when the user has selected a named provider club and wants its available courts on one date or across a bounded date range. Copy provider and club_name exactly from the selected search_clubs result; never infer provider from the club name. Results include Zarvo club IDs when matched and the total limit applies across all dates. number_of_players affects per-player price only; use singles_court to require explicit singles support. Do not use for a broad nearby search; use search_courts instead.

入力スキーマ

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "date_range": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        "end": {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        "max_days": {
          "default": 7,
          "type": "integer",
          "minimum": 1,
          "maximum": 14
        }
      },
      "required": [
        "start",
        "end"
      ]
    },
    "earliest_time": {
      "default": "00:00",
      "type": "string",
      "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
    },
    "latest_end_time": {
      "type": "string",
      "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
    },
    "duration_minutes": {
      "description": "Omit to return every duration offered by the provider.",
      "type": "integer",
      "minimum": 30,
      "maximum": 180,
      "multipleOf": 30
    },
    "number_of_players": {
      "default": 4,
      "description": "Used to compute per-player price only. Does not filter court capacity; use singles_court for that.",
      "type": "integer",
      "minimum": 1,
      "maximum": 4
    },
    "singles_court": {
      "default": false,
      "description": "When true, restrict results to courts or venues explicitly identified as supporting singles play.",
      "type": "boolean"
    },
    "provider": {
      "type": "string",
      "enum": [
        "padelstars",
        "playtomic",
        "padelmates",
        "matchi",
        "clubspark",
        "matchpoint"
      ]
    },
    "club_name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 160
    },
    "limit": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "required": [
    "provider",
    "club_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slot_id": {
            "type": "string",
            "minLength": 1
          },
          "provider": {
            "type": "string",
            "enum": [
              "padelstars",
              "playtomic",
              "padelmates",
              "matchi",
              "clubspark",
              "matchpoint"
            ]
          },
          "venue": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "location": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "name",
              "location"
            ],
            "additionalProperties": false
          },
          "court": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "name"
            ],
            "additionalProperties": false
          },
          "starts_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "duration": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "price": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "club_id": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
              },
              {
                "type": "null"
              }
            ]
          },
          "date": {
            "type": "string",
            "format": "date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
          },
          "source": {
            "type": "object",
            "properties": {
              "provider": {
                "type": "string",
                "minLength": 1
              },
              "provider_url": {
                "type": "string",
                "format": "uri"
              },
              "method": {
                "type": "string",
                "enum": [
                  "provider_live_api",
                  "provider_public_page",
                  "catalog_snapshot"
                ]
              }
            },
            "required": [
              "provider",
              "provider_url",
              "method"
            ],
            "additionalProperties": false
          },
          "checked_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "availability": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "available",
                  "unavailable",
                  "unknown"
                ]
              },
              "confidence": {
                "type": "string",
                "enum": [
                  "confirmed_live",
                  "provider_reported",
                  "derived",
                  "unknown"
                ]
              }
            },
            "required": [
              "status",
              "confidence"
            ],
            "additionalProperties": false
          },
          "price_details": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "currency": {
                "type": "string",
                "minLength": 3,
                "maxLength": 3
              },
              "basis": {
                "type": "string",
                "enum": [
                  "whole_court",
                  "per_player",
                  "session",
                  "unknown"
                ]
              },
              "number_of_players": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "calculated_per_player": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "amount",
              "currency",
              "basis",
              "number_of_players",
              "calculated_per_player"
            ],
            "additionalProperties": false
          },
          "travel": {
            "type": "object",
            "properties": {
              "coordinates": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "latitude": {
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90
                      },
                      "longitude": {
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "straight_line_distance_km": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "estimated_duration_minutes": {
                "anyOf": [
                  {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mode": {
                "type": "string",
                "enum": [
                  "drive"
                ]
              },
              "confidence": {
                "type": "string",
                "enum": [
                  "estimated",
                  "unavailable"
                ]
              },
              "method": {
                "type": "string",
                "enum": [
                  "straight_line_heuristic",
                  "not_calculated"
                ]
              }
            },
            "required": [
              "coordinates",
              "straight_line_distance_km",
              "estimated_duration_minutes",
              "mode",
              "confidence",
              "method"
            ],
            "additionalProperties": false
          },
          "travel_estimate_uncertain": {
            "type": "boolean"
          },
          "revalidation": {
            "type": "object",
            "properties": {
              "required": {
                "type": "boolean"
              },
              "recheck_after": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "expires_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "semantics": {
                "type": "string",
                "enum": [
                  "recheck_before_handoff",
                  "rechecked_for_handoff"
                ]
              }
            },
            "required": [
              "required",
              "recheck_after",
              "expires_at",
              "semantics"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "slot_id",
          "provider",
          "venue",
          "court",
          "starts_at",
          "duration",
          "price",
          "currency",
          "club_id",
          "date",
          "source",
          "checked_at",
          "availability",
          "price_details",
          "travel",
          "travel_estimate_uncertain",
          "revalidation"
        ],
        "additionalProperties": false
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "providers": {
          "type": "object",
          "properties": {
            "requested": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "padelstars",
                  "playtomic",
                  "padelmates",
                  "matchi",
                  "clubspark",
                  "matchpoint"
                ]
              }
            },
            "succeeded": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "padelstars",
                  "playtomic",
                  "padelmates",
                  "matchi",
                  "clubspark",
                  "matchpoint"
                ]
              }
            },
            "failed": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "enum": [
                      "padelstars",
                      "playtomic",
                      "padelmates",
                      "matchi",
                      "clubspark",
                      "matchpoint"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "provider",
                  "code"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "requested",
            "succeeded",
            "failed"
          ],
          "additionalProperties": false
        },
        "checked_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "partial": {
          "type": "boolean"
        },
        "result_limit": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "travel_time_is_estimated": {
          "type": "boolean",
          "const": true
        }
      },
      "required": [
        "count",
        "providers",
        "checked_at",
        "partial",
        "result_limit",
        "travel_time_is_estimated"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢recheck_slot(slot_id, number_of_players, date, earliest_time, latest_end_time, ...)

Optional standalone check. get_booking_handoff already revalidates before returning a URL; call this only to confirm availability without proceeding to handoff. It never books, holds inventory, takes payment, or returns checkout.

入力スキーマ

{
  "type": "object",
  "properties": {
    "slot_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "number_of_players": {
      "default": 4,
      "type": "integer",
      "minimum": 1,
      "maximum": 4
    },
    "date": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "earliest_time": {
      "type": "string",
      "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
    },
    "latest_end_time": {
      "type": "string",
      "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
    },
    "duration_minutes": {
      "type": "integer",
      "minimum": 30,
      "maximum": 180,
      "multipleOf": 30
    }
  },
  "required": [
    "slot_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

出力スキーマ

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "available"
        },
        "checked_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "data": {
          "type": "object",
          "properties": {
            "slot_id": {
              "type": "string",
              "minLength": 1
            },
            "provider": {
              "type": "string",
              "enum": [
                "padelstars",
                "playtomic",
                "padelmates",
                "matchi",
                "clubspark",
                "matchpoint"
              ]
            },
            "venue": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "location": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "id",
                "name",
                "location"
              ],
              "additionalProperties": false
            },
            "court": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "id",
                "name"
              ],
              "additionalProperties": false
            },
            "starts_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            "duration": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "price": {
              "anyOf": [
                {
                  "type": "number",
                  "minimum": 0
                },
                {
                  "type": "null"
                }
              ]
            },
            "currency": {
              "type": "string",
              "minLength": 3,
              "maxLength": 3
            },
            "club_id": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "date": {
              "type": "string",
              "format": "date",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
            },
            "source": {
              "type": "object",
              "properties": {
                "provider": {
                  "type": "string",
                  "minLength": 1
                },
                "provider_url": {
                  "type": "string",
                  "format": "uri"
                },
                "method": {
                  "type": "string",
                  "enum": [
                    "provider_live_api",
                    "provider_public_page",
                    "catalog_snapshot"
                  ]
                }
              },
              "required": [
                "provider",
                "provider_url",
                "method"
              ],
              "additionalProperties": false
            },
            "checked_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            "availability": {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "enum": [
                    "available",
                    "unavailable",
                    "unknown"
                  ]
                },
                "confidence": {
                  "type": "string",
                  "enum": [
                    "confirmed_live",
                    "provider_reported",
                    "derived",
                    "unknown"
                  ]
                }
              },
              "required": [
                "status",
                "confidence"
              ],
              "additionalProperties": false
            },
            "price_details": {
              "type": "object",
              "properties": {
                "amount": {
                  "anyOf": [
                    {
                      "type": "number",
                      "minimum": 0
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "currency": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3
                },
                "basis": {
                  "type": "string",
                  "enum": [
                    "whole_court",
                    "per_player",
                    "session",
                    "unknown"
                  ]
                },
                "number_of_players": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "calculated_per_player": {
                  "anyOf": [
                    {
                      "type": "number",
                      "minimum": 0
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "amount",
                "currency",
                "basis",
                "number_of_players",
                "calculated_per_player"
              ],
              "additionalProperties": false
            },
            "travel": {
              "type": "object",
              "properties": {
                "coordinates": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "latitude": {
                          "type": "number",
                          "minimum": -90,
                          "maximum": 90
                        },
                        "longitude": {
                          "type": "number",
                          "minimum": -180,
                          "maximum": 180
                        }
                      },
                      "required": [
                        "latitude",
                        "longitude"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "straight_line_distance_km": {
                  "anyOf": [
                    {
                      "type": "number",
                      "minimum": 0
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "estimated_duration_minutes": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "drive"
                  ]
                },
                "confidence": {
                  "type": "string",
                  "enum": [
                    "estimated",
                    "unavailable"
                  ]
                },
                "method": {
                  "type": "string",
                  "enum": [
                    "straight_line_heuristic",
                    "not_calculated"
                  ]
                }
              },
              "required": [
                "coordinates",
                "straight_line_distance_km",
                "estimated_duration_minutes",
                "mode",
                "confidence",
                "method"
              ],
              "additionalProperties": false
            },
            "travel_estimate_uncertain": {
              "type": "boolean"
            },
            "revalidation": {
              "type": "object",
              "properties": {
                "required": {
                  "type": "boolean"
                },
                "recheck_after": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "expires_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "semantics": {
                  "type": "string",
                  "enum": [
                    "recheck_before_handoff",
                    "rechecked_for_handoff"
                  ]
                }
              },
              "required": [
                "required",
                "recheck_after",
                "expires_at",
                "semantics"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "slot_id",
            "provider",
            "venue",
            "court",
            "starts_at",
            "duration",
            "price",
            "currency",
            "club_id",
            "date",
            "source",
            "checked_at",
            "availability",
            "price_details",
            "travel",
            "travel_estimate_uncertain",
            "revalidation"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "checked_at",
        "data"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "unavailable"
        },
        "checked_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "slot_id": {
          "type": "string",
          "minLength": 1
        },
        "reason": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "status",
        "checked_at",
        "slot_id",
        "reason"
      ],
      "additionalProperties": false
    }
  ]
}
🟡create_game_plan(age_confirmed, original_request, slot_ids, mode)

Use this only when the user explicitly wants to organise one to three selected court options with other people. Rechecks each selected slot, creates an expiring Zarvo plan, and returns separate guest and private organiser links. This changes Zarvo state but does not book a court.

入力スキーマ

{
  "type": "object",
  "properties": {
    "age_confirmed": {
      "type": "boolean"
    },
    "original_request": {
      "type": "string",
      "minLength": 3,
      "maxLength": 4000
    },
    "slot_ids": {
      "minItems": 1,
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 2048
      }
    },
    "mode": {
      "type": "string",
      "enum": [
        "choose_one",
        "book_all"
      ]
    }
  },
  "required": [
    "original_request",
    "slot_ids",
    "mode"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

出力スキーマ

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "public_id": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "string",
          "enum": [
            "draft",
            "collecting",
            "ready",
            "awaiting_booking",
            "confirmed",
            "cancelled",
            "expired"
          ]
        },
        "plan_url": {
          "type": "string",
          "format": "uri"
        },
        "organiser_url": {
          "type": "string",
          "format": "uri"
        },
        "organiser_link": {
          "type": "string",
          "format": "uri"
        },
        "expires_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
        },
        "candidate_count": {
          "type": "integer",
          "minimum": 1,
          "maximum": 3
        },
        "mode": {
          "type": "string",
          "const": "choose_one"
        },
        "guest_url": {
          "type": "string",
          "format": "uri"
        },
        "guest_link": {
          "type": "string",
          "format": "uri"
        }
      },
      "required": [
        "public_id",
        "status",
        "plan_url",
        "organiser_url",
        "organiser_link",
        "expires_at",
        "candidate_count",
        "mode",
        "guest_url",
        "guest_link"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "public_id": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "string",
          "enum": [
            "draft",
            "collecting",
            "ready",
            "awaiting_booking",
            "confirmed",
            "cancelled",
            "expired"
          ]
        },
        "plan_url": {
          "type": "string",
          "format": "uri"
        },
        "organiser_url": {
          "type": "string",
          "format": "uri"
        },
        "organiser_link": {
          "type": "string",
          "format": "uri"
        },
        "expires_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
        },
        "candidate_count": {
          "type": "integer",
          "minimum": 1,
          "maximum": 3
        },
        "mode": {
          "type": "string",
          "const": "book_all"
        },
        "guest_url": {
          "type": "string",
          "format": "uri"
        },
        "guest_links": {
          "minItems": 1,
          "maxItems": 3,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "slot_id": {
                "type": "string",
                "minLength": 1
              },
              "guest_link": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": [
              "slot_id",
              "guest_link"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "public_id",
        "status",
        "plan_url",
        "organiser_url",
        "organiser_link",
        "expires_at",
        "candidate_count",
        "mode",
        "guest_url",
        "guest_links"
      ],
      "additionalProperties": false
    }
  ]
}
🟢get_booking_handoff(slot_id, number_of_players)

Use this directly after the user chooses a slot. It revalidates the provider slot and returns status unavailable with a reason if the slot was taken, or status available with a provider handoff URL and current price. The user completes login, booking, and payment on the provider site; Zarvo does not reserve inventory or complete checkout.

入力スキーマ

{
  "type": "object",
  "properties": {
    "slot_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "number_of_players": {
      "default": 4,
      "type": "integer",
      "minimum": 1,
      "maximum": 4
    }
  },
  "required": [
    "slot_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

出力スキーマ

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "slot_id": {
          "type": "string",
          "minLength": 1
        },
        "provider": {
          "type": "string",
          "enum": [
            "padelstars",
            "playtomic",
            "padelmates",
            "matchi",
            "clubspark",
            "matchpoint"
          ]
        },
        "venue": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "name": {
              "type": "string",
              "minLength": 1
            },
            "location": {
              "type": "string",
              "minLength": 1
            }
          },
          "required": [
            "id",
            "name",
            "location"
          ],
          "additionalProperties": false
        },
        "court": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "name": {
              "type": "string",
              "minLength": 1
            }
          },
          "required": [
            "id",
            "name"
          ],
          "additionalProperties": false
        },
        "starts_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "duration": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "price": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "null"
            }
          ]
        },
        "currency": {
          "type": "string",
          "minLength": 3,
          "maxLength": 3
        },
        "booking_url": {
          "type": "string",
          "format": "uri"
        },
        "prepared_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "status": {
          "type": "string",
          "const": "available"
        },
        "handoff_url": {
          "type": "string",
          "format": "uri"
        },
        "current_price": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "null"
            }
          ]
        },
        "source": {
          "type": "object",
          "properties": {
            "provider": {
              "type": "string",
              "minLength": 1
            },
            "provider_url": {
              "type": "string",
              "format": "uri"
            },
            "method": {
              "type": "string",
              "enum": [
                "provider_live_api",
                "provider_public_page",
                "catalog_snapshot"
              ]
            }
          },
          "required": [
            "provider",
            "provider_url",
            "method"
          ],
          "additionalProperties": false
        },
        "checked_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "availability": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "available",
                "unavailable",
                "unknown"
              ]
            },
            "confidence": {
              "type": "string",
              "enum": [
                "confirmed_live",
                "provider_reported",
                "derived",
                "unknown"
              ]
            }
          },
          "required": [
            "status",
            "confidence"
          ],
          "additionalProperties": false
        },
        "price_details": {
          "type": "object",
          "properties": {
            "amount": {
              "anyOf": [
                {
                  "type": "number",
                  "minimum": 0
                },
                {
                  "type": "null"
                }
              ]
            },
            "currency": {
              "type": "string",
              "minLength": 3,
              "maxLength": 3
            },
            "basis": {
              "type": "string",
              "enum": [
                "whole_court",
                "per_player",
                "session",
                "unknown"
              ]
            },
            "number_of_players": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "calculated_per_player": {
              "anyOf": [
                {
                  "type": "number",
                  "minimum": 0
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "amount",
            "currency",
            "basis",
            "number_of_players",
            "calculated_per_player"
          ],
          "additionalProperties": false
        },
        "revalidation": {
          "type": "object",
          "properties": {
            "required": {
              "type": "boolean"
            },
            "recheck_after": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "expires_at": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "semantics": {
              "type": "string",
              "enum": [
                "recheck_before_handoff",
                "rechecked_for_handoff"
              ]
            }
          },
          "required": [
            "required",
            "recheck_after",
            "expires_at",
            "semantics"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "slot_id",
        "provider",
        "venue",
        "court",
        "starts_at",
        "duration",
        "price",
        "currency",
        "booking_url",
        "prepared_at",
        "status",
        "handoff_url",
        "current_price",
        "source",
        "checked_at",
        "availability",
        "price_details",
        "revalidation"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "unavailable"
        },
        "slot_id": {
          "type": "string",
          "minLength": 1
        },
        "checked_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "current_price": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "null"
            }
          ]
        },
        "reason": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "status",
        "slot_id",
        "checked_at",
        "current_price",
        "reason"
      ],
      "additionalProperties": false
    }
  ]
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 9 件