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[]]]

Input Schema

{
  "additionalProperties": false,
  "description": "No input required — user identity is derived from the auth header.",
  "properties": {},
  "type": "object"
}

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.01 USDC)

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

Amount
map[amount:0.010000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.010000 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
success boolean -

Payment Methods

Methods
tempo (from challenge)
Intents
charge (from challenge)
Currencies (discovery)
-
Currency (challenge)
USDC.e on Tempo Mainnet Presto (Tempo Mainnet Presto)
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 (151ms)
Challenge
Reachable (569ms)
Last Checked

Schema Completeness

Paid Operations
8
With Input Schema
5
With Description
8
3 missing schema
  • 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
21055 bytes
Document Hash
c845c34fe70492808ca80d566d4c6d15cdfe071329cc085ecc5318d115ad0633

Version History (30 snapshots)

  • document hash changed (no semantic differences detected)
  • document hash changed (no semantic differences detected)
  • document hash changed (no semantic differences detected)
  • document hash changed (no semantic differences detected)
  • 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
2026-04-14 C 73% 129ms Up
2026-04-15 C 73% 469ms Up
2026-04-16 C 73% 267ms Up
2026-04-17 C 73% 245ms Up
2026-04-18 C 73% 307ms Up
2026-04-19 C 73% 653ms Up
2026-04-20 C 73% 858ms Up
2026-04-21 C 73% 209ms Up
2026-04-22 C 73% 332ms Up
2026-04-23 C 73% 195ms Up
2026-04-24 C 73% 239ms Up
2026-04-25 C 73% 346ms Up
2026-04-26 C 73% 251ms Up
2026-04-27 C 73% 261ms Up
2026-04-28 C 73% 219ms Up
2026-04-29 C 73% 618ms Up
2026-04-30 C 73% 201ms Up
2026-05-01 C 73% 98ms Up
2026-05-02 C 73% 200ms Up
2026-05-03 C 73% 111ms Up
2026-05-04 C 73% 257ms Up
2026-05-05 C 73% 199ms Up