# Resy Restaurant Availability Scraper

> Resy Restaurant Availability Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.25/call, status unknown (last checked 2026-10-02).

Scrapes Resy for restaurant listings with live availability slots, filtering by city, date, party size, cuisine, and time

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/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-0ee0138e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_IDEhpcIdLLotOq6zssOSJ

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-0ee0138e -d '<json body>'
```

Example prompt: Search Resy for available Italian restaurants in New York tomorrow evening for 2 people around 7:00 PM and show me their ratings and price ranges.

## When to prefer this

Use this endpoint when an agent needs to discover or verify real-time Resy restaurant availability for a specific city, date, party size, or cuisine — especially when the user is planning a dining experience and needs live slot data. Prefer this over generic web search when structured Resy data (ratings, price range, bookable times) is required.

## Known failure modes

- No restaurants found matching the filters returns an empty items array (not charged)
- Invalid date format causes a validation error
- City slug not recognized by Resy returns empty results
- Resy blocks the scraper resulting in a failed run (not charged)
- Restaurant URL supplied is not a valid Resy URL
- Party size exceeds maximum of 20 causes a validation error

## How this service works

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

## Output

Returns a JSON array of restaurant records including restaurant name, Resy URL, restaurant ID, cuisine type, rating, rating count, price range, currency, and available reservation slots for the requested date and party size. Only restaurants with visible availability are included 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-0ee0138e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
