# Resy Restaurant Availability Scraper (x402)

> Resy Restaurant Availability Scraper (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.25/call, status unknown (last checked 2026-10-02).

Scrapes Resy for structured restaurant listings with live availability, filters, and details for a given city, date, and party size.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/resy?utm_source=zero.xyz
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/resy-restaurant-availability-scraper-x402-8a836e83
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Z444VEBl8RC63vHOkDZ0R

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability resy-restaurant-availability-scraper-x402-8a836e83 -d '<json body>'
```

Example prompt: Search Resy for available Italian restaurants in New York tomorrow evening at 7pm for a party of 4, and give me their ratings, price range, and reservation links.

## When to prefer this

Use this endpoint when you need live, structured Resy reservation data — including availability status, cuisine, rating, and price range — without managing browser automation or scraping yourself. Prefer this over generic web scrapers when the target is specifically Resy, and over Resy's own API when you need pay-per-call access without a Resy developer account. The no-charge policy on failed or empty runs makes it low-risk for exploratory queries.

## Known failure modes

- No matching restaurants found for the given filters — returns count:0 and empty items array (not charged)
- Invalid date format — use YYYY-MM-DD or 'today'/'tomorrow'
- City slug not recognized by Resy — try the exact city name from a Resy URL
- timeFilter not in HH:MM format causes filter to be ignored or error
- partySize exceeds maximum of 20 — request rejected
- maxPages exceeding 100 returns validation error

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count and an array of restaurant items, each containing restaurantName, restaurantUrl, restaurantId, cuisine, rating, ratingCount, priceRange, and currency fields — filtered to only available slots by default.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "city": {
   "type": "string",
   "default": "New York",
   "description": "City name or city slug from a Resy URL. Ignored when restaurant URLs are supplied."
  },
  "date": {
   "type": "string",
   "default": "tomorrow",
   "description": "Use today or tomorrow in the restaurant city time zone, or a date in YYYY-MM-DD format."
  },
  "query": {
   "type": "string",
   "default": "",
   "description": "Case-insensitive text filter on restaurant names and public descriptions."
  },
  "cuisine": {
   "type": "string",
   "default": "",
   "description": "Case-insensitive filter on the cuisine label, such as Italian."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Maximum restaurant records across all cities. Zero means no item cap."
  },
  "maxPages": {
   "type": "integer",
   "default": 10,
   "maximum": 100,
   "minimum": 1,
   "description": "Maximum finder pages scanned per city. Each page contains up to 50 restaurants."
  },
  "partySize": {
   "type": "integer",
   "default": 2,
   "maximum": 20,
   "minimum": 1,
   "description": "Number of guests used for the live availability check."
  },
  "timeFilter": {
   "type": "string",
   "default": "",
   "description": "Optional time filter in HH:MM format, such as 19:00. Leave blank for all times."
  },
  "onlyAvailable": {
   "type": "boolean",
   "default": true,
   "description": "Exclude restaurants with no visible slots for the chosen date and party size."
  },
  "includeDetails": {
   "type": "boolean",
   "default": true,
   "description": "Request each selected restaurant detail page for address, postal code, phone, and website."
  },
  "restaurantUrls": {
   "type": "array",
   "default": [],
   "description": "Optional Resy restaurant URLs to locate within their city. Leave empty for city discovery."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "rating": null,
    "cuisine": null,
    "currency": null,
    "priceRange": null,
    "ratingCount": null,
    "restaurantId": null,
    "restaurantUrl": null,
    "restaurantName": null
   }
  ],
  "product": "resy"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/resy-restaurant-availability-scraper-x402-8a836e83/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
