C
Agent Restaurant Reservation API
reservationsrestaurants
Preview responses and set spending limits for this service through use.mpp.land
Free budget controls, response samples, and reliability routing.
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 (6)
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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| userId | query | string | No | Required for API key auth. Omit for wallet auth. |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| 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
| Field | Type | Required | Description |
|---|---|---|---|
| string (email) | Yes | Email address for the account |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| created | boolean | - |
| 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
| Field | Type | Required | Description |
|---|---|---|---|
| code | string | No | OTP code from email (omit for step 1) |
| em_address | string (email) | Yes | Resy account email address |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| message | string | - |
| resy_user_id | integer | - |
| step | string | - |
GET /api/search dynamic
Search Resy for restaurants by name
Searches the full Resy venue database and returns the top 5 matches with venue IDs. No auth required.
- 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| query | query | string | Yes | Restaurant name to search for |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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)
| Field | Type | Description |
|---|---|---|
| day | string | - |
| party_size | integer | - |
| slots | array[object] | - |
| venue_id | string | - |
| venue_name | string | Restaurant name for display |
POST /api/book dynamic
Book a reservation ($0.10 USDC)
Book a reservation at the given venue. Requires a linked Resy account. Use a config_id from /api/availability. Costs $0.10 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
| Field | Type | Required | Description |
|---|---|---|---|
| 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)
| Field | Type | Description |
|---|---|---|
| kind | string | - |
| reservation_id | integer | - |
| resy_token | string | - |
| 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/search
- 0xC295e19eB630E29a4Dd81f7242E6b51B49486d93
- POST /api/account
- 0xC295e19eB630E29a4Dd81f7242E6b51B49486d93
- POST /api/book
- 0xC295e19eB630E29a4Dd81f7242E6b51B49486d93
- POST /api/link-resy
- 0xC295e19eB630E29a4Dd81f7242E6b51B49486d93
Security
- TLS Version
- TLSv1.3
- Challenge ID Unique
- Yes
- Challenge ID Length
- 43
- Digest Binding
- -
Uptime
- Discovery
- Reachable (194ms)
- Challenge
- Reachable (315ms)
- Last Checked
Schema Completeness
- Paid Operations
- 6
- With Input Schema
- 3
- With Description
- 6
3 missing schema
- GET /api/me
- GET /api/search
- GET /api/availability
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
- 11849 bytes
- Document Hash
- 9a6ad4ba86e5115c79fa35e2664510cadc48307264894dfef47da3fb614e4b37
Version History (2 snapshots)
Scan snapshots
| Date | Grade | Score | Response | Status |
|---|---|---|---|---|
| 2026-04-06 | C | 73% | 327ms | Up |
| 2026-04-07 | C | 73% | 489ms | Up |