C

Agent Restaurant Reservation API — MPP Grade C

reservationsrestaurants
Preview responses and set spending limits for this service through use.mpp.land Free budget controls, response samples, and reliability routing.

On-chain Activity

2 Total txs
0 7d txs
$0.00 7d volume
$0.20 Total volume
1 Unique payers
0 Unique clients
7-day activity ▁▁▁▁▁▁▁

Compliance Checks

All paid ops declare 402 response MUST 10pt
All x-payment-info valid MUST 10pt
Challenge has Cache-Control: no-store MUST 5pt
- Challenge digest on POST SHOULD 3pt
Challenge has expires SHOULD 3pt
Challenge has Problem Details SHOULD 2pt
Challenge has required params MUST 5pt
Challenge has WWW-Authenticate MUST 5pt
Challenge returns 402 MUST 10pt
Correct Content-Type MUST 5pt
Has Cache-Control on discovery SHOULD 5pt
Has input schemas SHOULD 5pt
Has llms.txt SHOULD 5pt
Has /openapi.json at root MUST 10pt
Has required top-level fields MUST 10pt
Served over HTTPS MUST 10pt
Uses standard categories SHOULD 2pt
1 issue
  • Missing 402 response declaration on GET /api/search

Paid Operations (8)

GET /api/me dynamic
Get user profile and Resy link status

Returns the authenticated user's profile including whether their Resy account is linked. Identity-only ($0 auth).

Amount
map[amount:0 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]] map[x402:map[]]]

Parameters

NameInTypeRequiredDescription
userId query string No Required for API key auth. Omit for wallet auth.

Response Schema (200)

FieldTypeDescription
email string -
resy_linked boolean -
resy_linked_at string -
user_id string -
POST /api/account dynamic
Create account and link wallet

Create a new user account. With wallet auth, also links the calling wallet to the account. Identity-only ($0 auth).

Amount
map[amount:0 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]] map[x402:map[]]]

Input Schema

FieldTypeRequiredDescription
email string (email) Yes Email address for the account

Response Schema (200)

FieldTypeDescription
created boolean -
email string (email) -
user_id string (uuid) -
POST /api/link-resy dynamic
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).

Amount
map[amount:0 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]] map[x402:map[]]]

Input Schema

FieldTypeRequiredDescription
code string No OTP code from email (omit for step 1)
em_address string (email) Yes Resy account email address

Response Schema (200)

FieldTypeDescription
message string -
resy_user_id integer -
step string -
GET /api/search dynamic
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. Identity-only ($0 auth).

Amount
map[amount:0 currency:USD mode:fixed]
Currency
-
Method
Intent
-
Non-standard x-payment-info fields: price: map[amount:0 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]] map[x402:map[]]]

Parameters

NameInTypeRequiredDescription
query query string Yes Restaurant name, cuisine, or keyword to search for
city query string No City slug for geo-ranked search. Extract from the user's prompt. Defaults to nyc if omitted.

Response Schema (200)

FieldTypeDescription
city string Echo of the resolved city slug used for this search.
results array[object] -
GET /api/availability dynamic
Check available reservation time slots

Returns available reservation slots for a venue on a given day. Response includes venue_name for display. Identity-only ($0 auth).

Amount
map[amount:0 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]] map[x402:map[]]]

Parameters

NameInTypeRequiredDescription
venue_id query string Yes Resy venue ID (from /api/search)
party_size query integer Yes Number of guests
day query string Yes Date in YYYY-MM-DD format

Response Schema (200)

FieldTypeDescription
day string -
party_size integer -
slots array[object] -
venue_id string -
venue_name string Restaurant name for display
GET /api/reservations dynamic
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).

Amount
map[amount:0 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]] map[x402:map[]]]

Parameters

NameInTypeRequiredDescription
type query string No Which reservations to list. Defaults to upcoming.
limit query integer No Max reservations to return (1-50).
offset query integer No Pagination offset.

Response Schema (200)

FieldTypeDescription
limit integer -
offset integer -
reservations array[object] -
total integer -
type string -
POST /api/book dynamic
Book a reservation ($0.1 USDC)

Book a reservation at the given venue. Requires a linked Resy account. Use a config_id from /api/availability. Costs $0.1 USDC.

Amount
map[amount:0.100000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.100000 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]] map[x402:map[]]]

Input Schema

FieldTypeRequiredDescription
config_id string Yes Slot config token from /api/availability
day string Yes Date in YYYY-MM-DD format
party_size integer Yes Number of guests
venue_id string Yes Resy venue ID

Response Schema (200)

FieldTypeDescription
kind string -
reservation_id integer -
resy_token string -
success boolean -
POST /api/cancel dynamic
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).

Amount
map[amount:0 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]] map[x402:map[]]]

Input Schema

FieldTypeRequiredDescription
resy_token string Yes Reservation token from GET /api/reservations response (field: resy_token)

Response Schema (200)

FieldTypeDescription
refund number Refund amount in reservation currency
success boolean -

Payment Methods

Methods
tempo (from challenge)
Intents
charge (from challenge)
Currencies (discovery)
-
Currency (challenge)
USDC.e on Tempo (Tempo)
Multiple Challenges
No

Recipients

  • 0xC295e19eB630E29a4Dd81f7242E6b51B49486d93
Per-endpoint breakdown
GET /api/availability
0xC295e19eB630E29a4Dd81f7242E6b51B49486d93
GET /api/me
0xC295e19eB630E29a4Dd81f7242E6b51B49486d93
GET /api/reservations
0xC295e19eB630E29a4Dd81f7242E6b51B49486d93
GET /api/search
0xC295e19eB630E29a4Dd81f7242E6b51B49486d93
POST /api/account
0xC295e19eB630E29a4Dd81f7242E6b51B49486d93
POST /api/link-resy
0xC295e19eB630E29a4Dd81f7242E6b51B49486d93

Security

TLS Version
TLSv1.3
Challenge ID Unique
Yes
Challenge ID Length
43
Digest Binding
-

Uptime

Discovery
Reachable (1003ms)
Challenge
Reachable (220ms)
Last Checked

Schema Completeness

Paid Operations
8
With Input Schema
4
With Description
8
4 missing schema
  • GET /api/me
  • GET /api/search
  • GET /api/availability
  • GET /api/reservations

Documentation

Homepage
-
API Reference
-
llms.txt
-

Discovery

OpenAPI URL
https://agentic-reservations.vercel.app/openapi.json
OpenAPI Version
3.1.0
Service Version
1.0.0
Document Size
20772 bytes
Document Hash
3414597d8d85828bd58773bd10d592b0e0a81d7b2c070ddd422976b79f982c2c

Version History (8 snapshots)

  • document hash changed (no semantic differences detected)
  • document hash changed (no semantic differences detected)
Scan snapshots
Date Grade Score Response Status
2026-04-06 C 73% 327ms Up
2026-04-07 C 73% 489ms Up
2026-04-08 C 73% 178ms Up
2026-04-09 C 73% 246ms Up
2026-04-10 C 73% 424ms Up
2026-04-11 C 73% 86ms Up
2026-04-12 C 73% 947ms Up
2026-04-13 C 73% 842ms Up