Back to Directory
A

Agent Restaurant Reservation API

Other
Agent-first API for searching and booking restaurant reservations via Resy, including reservation jobs that book hard-to-get tables the moment reservations open. Supports MPP (Tempo) and x402 (Base/Solana) wallet auth, plus API-key subscription auth ($6/month, first 30 days free, paid operations covered). Instant booking costs $0.01 USDC; a reservation job costs $3.00 USDC. Also serves live restaurant wait times (crowd/line data) at $0.01 USDC per query, and Blackbird restaurant discovery at $0.01 USDC per query — search ~2,000 restaurants by neighborhood/city, with daily-refreshed specials; list queries return 50+ compact results by default (id/name/specials), with fields=full for detail-rich rows. Failed paid operations are refunded — pay only for success.

About Agent Restaurant Reservation API

Review the Service identity, supported languages, protocol versions, and source metadata discovered by the directory.

Service details

Service Id
e69b0c82-1f27-4acd-905f-1b89ab4e20aa
Service origin
https://agentres.dev
ListedSeptember 24, 2026, 6:31 PM
Last checkedSeptember 24, 2026, 7:57 PM

Protocol details

SourceOpenAPI

Endpoints

Endpoint details are saved from the OpenAPI document. Authentication requirements and prices are advertised information, not a verified payment or access guarantee. The document may contain additional endpoints.Open OpenAPI document
POST/api/account

Setup account

Idempotent setup endpoint. The account already exists — it was resolved or created from the verified credential (one account per API key or wallet). An optional email body sets contact metadata; email is never an identity. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/availability

Check available reservation time slots

Returns available reservation slots for a venue on a given day. Response includes venue_name for display. Requires a linked Resy account. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
POST/api/book

Book a reservation

Book a reservation at the given venue. Requires a linked Resy account. Use a config_id from /api/availability. Paid on wallet rails: the 402 challenge carries the exact amount. Covered at $0 for API keys with an active subscription. Payment settles first and is refunded automatically if the booking fails (paid rails only).0.010000 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
POST/api/cancel

Cancel an existing Resy reservation

Cancels a reservation by resy_token. You MUST first call GET /api/reservations to get the resy_token for the reservation the user wants to cancel. Requires a linked Resy account. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/discover/restaurants

Discover Blackbird restaurants

Search and filter the Blackbird restaurant network (~2,000 curated restaurants, mostly NYC and San Francisco) — free-text search plus city/neighborhood filters, with complete specials on every result. Paid on wallet rails: the 402 challenge carries the exact amount. Covered at $0 for API keys with an active subscription. No Resy link required. Blackbird restaurant IDs are separate from Resy venue IDs; to book a discovered restaurant, feed its name into GET /api/search.0.010000 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/discover/restaurants/{restaurant_id}

Blackbird restaurant detail

Full detail for one Blackbird restaurant: locations with addresses, coordinates, time zone, and live open hours per location. Paid on wallet rails: the 402 challenge carries the exact amount. Covered at $0 for API keys with an active subscription. No Resy link required.0.010000 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/discover/restaurants/{restaurant_id}/specials

Cached Blackbird specials for a restaurant

Complete cached specials/offers for one Blackbird restaurant, refreshed daily by the specials cron (DB-only, never a live call) — e.g. Fly-reward multipliers like 'Earn 10x Fly when you pay with Blackbird'. Paid on wallet rails: the 402 challenge carries the exact amount. Covered at $0 for API keys with an active subscription. No Resy link required.0.010000 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
POST/api/link-resy

Link a Resy account via email OTP

Two-step OTP flow. Step 1: send { em_address } to request a code. Step 2: send { em_address, code } to verify and link. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/me

Get user profile and Resy link status

Returns the authenticated user's profile including whether their Resy account is linked. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/reservation-jobs

List this account's reservation jobs

Returns the authenticated account's reservation jobs, newest first. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
POST/api/reservation-jobs/create

Create a reservation job

Create a reservation job that books the table the moment reservations open on Resy. Reservation jobs are best-effort. We attempt the booking the moment reservations open; if your preferred time is taken, we book the closest available time. A booking is not guaranteed. Paid on wallet rails: the 402 challenge carries the exact amount. Covered at $0 for API keys with an active subscription. The body is validated before payment settles. One active job per account/venue/drop day. Failed enqueues and duplicates refund the payment automatically.3.000000 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/reservation-jobs/options

List restaurants that support reservation jobs

Public, no auth. Returns the restaurants bookable via reservation jobs and how many days in advance each booking window opens. Exact opening times are not disclosed; the create response returns the scheduled drop_time.Price unavailable
GET/api/reservation-jobs/{job_id}

Get a reservation job's status

Returns the job with its payment state. When the job is canceled, failed, or timed_out, a paid charge shows status refund_pending and payment.next_step points at the refund claim endpoint. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
POST/api/reservation-jobs/{job_id}/cancel

Cancel a reservation job

Cancels a queued job. Once the worker has claimed it (running), it can no longer be canceled (409 JOB_NOT_CANCELABLE) — the booking outcome settles the charge. Distinct from POST /api/cancel, which cancels a booked reservation. No automatic refund — the paid charge becomes refund_pending; claim it via the refund endpoint. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
POST/api/reservation-jobs/{job_id}/refund

Claim the refund for a terminal reservation job

The delayed, user-claimed refund. Claimable only once the job is canceled, failed, or timed_out. Idempotent — a double-claim returns the existing refund. A refund_failed charge can be claimed again. Subscription-covered jobs have no refund. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/reservations

List the user's existing Resy reservations

Returns the authenticated user's upcoming or past reservations with full venue details (name, address, neighborhood, cuisine, phone) inlined. Requires a linked Resy account. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/search

Search Resy for restaurants by name

Searches the Resy venue database in a given city and returns the top 5 matches with venue IDs. Results are ranked by geographic proximity to the city center, so passing the correct `city` is important when the user mentions one. Requires a linked Resy account. Identity-only ($0 auth).0 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/wait-times

Live restaurant wait times

Every monitored restaurant location with its current wait time, crowd count, and open status (camera-based crowd data). One call returns all locations. Paid on wallet rails: the 402 challenge carries the exact amount. Covered at $0 for API keys with an active subscription. No Resy link required. Wait-time location slugs are separate from Resy venue IDs.0.010000 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.
GET/api/wait-times/history

Historical wait times for a location

Line counts for one monitored location over a time range — raw detection events or bucket aggregates (mean/min/max) via `interval`. Paid on wallet rails: the 402 challenge carries the exact amount. Covered at $0 for API keys with an active subscription.0.010000 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.