JMPR — Luxury Hotels API — MPP Grade C
On-chain Activity
Compliance Checks
1 issue
- 402 response missing Cache-Control: no-store
Paid Operations (5)
POST /v1/hotels/search dynamic
Search curated luxury hotels in a city for given dates. Best for queries asking for the best, premium, 5-star, ultra-luxury, boutique, or concierge-grade hotels. Returns up to `page_size` properties with name, address, lowest visible nightly price, and a representative image. Complements general-purpose travel APIs (StableTravel, Amadeus-backed) which cover broad mid-market inventory; JMPR is the curated luxury layer.
- Amount
- map[amount:0.020000 currency:USD mode:fixed]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
price: map[amount:0.020000 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]]]
Input Schema
{
"$ref": "#/components/schemas/HotelSearchRequest"
}
Response Schema (200)
{
"$ref": "#/components/schemas/HotelSearchResponse"
}
POST /v1/hotels/detail dynamic
Full luxury property record plus (with dates) bookable rooms. Full record for a curated 5-star, ultra-luxury, or boutique hotel: amenities, policies, images, descriptions, concierge notes. With dates, also returns bookable rooms — premium suites, villas, and per-(room_code, rate_code) rate options for the window. Flat $0.02 regardless of dates: even the no-dates path issues a paid upstream call, and the dates path gets a free upgrade (info + rooms fanned out concurrently). Pricing the no-dates variant lower would encourage agents to call twice — defeating the consolidation.
- Amount
- map[amount:0.020000 currency:USD mode:fixed]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
price: map[amount:0.020000 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]]]
Input Schema
{
"anyOf": [
{
"$ref": "#/components/schemas/HotelDetailRequest"
},
{
"type": "null"
}
],
"title": "Body"
}
Response Schema (200)
{
"$ref": "#/components/schemas/HotelDetailResponse"
}
POST /v1/bookings/reserve dynamic
Create a reservation and return a checkout URL for the end-user. The agent presents the returned checkout_url to its end-user, who completes payment on a JMPR-hosted page. JMPR notifies the agent of final state via the standard booking status endpoint.
- Amount
- map[amount:0.050000 currency:USD mode:fixed]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
price: map[amount:0.050000 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]]]
Input Schema
{
"anyOf": [
{
"$ref": "#/components/schemas/ReserveRequest"
},
{
"type": "null"
}
],
"title": "Body"
}
Response Schema (200)
{
"$ref": "#/components/schemas/ReserveResponse"
}
GET /v1/bookings/{booking_id} dynamic
Read booking state. Identity-gated by MPP credential.source.
- Amount
- map[amount:0.010000 currency:USD mode:fixed]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| booking_id | path | string | Yes | - |
Response Schema (200)
{
"$ref": "#/components/schemas/BookingStatusResponse"
}
POST /v1/bookings/{booking_id}/cancel dynamic
Cancel a booking before the deadline.
- Amount
- map[amount:0.050000 currency:USD mode:fixed]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
price: map[amount:0.050000 currency:USD mode:fixed] protocols: [map[mpp:map[currency:0x20C000000000000000000000b9537d11c60E8b50 intent:charge method:tempo]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| booking_id | path | string | Yes | - |
Response Schema (200)
{
"$ref": "#/components/schemas/CancelResponse"
}
Payment Methods
- Methods
- tempo (from challenge)
- Intents
- charge (from challenge)
- Currencies (discovery)
- -
- Multiple Challenges
- No
Recipients
- 0x2F5f9bFd4bA323e27e905b4F27fA7a1694E68C9F
Per-endpoint breakdown
- GET /v1/bookings/{booking_id}
- 0x2F5f9bFd4bA323e27e905b4F27fA7a1694E68C9F
- POST /v1/bookings/reserve
- 0x2F5f9bFd4bA323e27e905b4F27fA7a1694E68C9F
- POST /v1/bookings/{booking_id}/cancel
- 0x2F5f9bFd4bA323e27e905b4F27fA7a1694E68C9F
- POST /v1/hotels/detail
- 0x2F5f9bFd4bA323e27e905b4F27fA7a1694E68C9F
Security
- TLS Version
- TLSv1.3
- Challenge ID Unique
- Yes
- Challenge ID Length
- 43
- Digest Binding
- -
Uptime
- Discovery
- Reachable (195ms)
- Challenge
- Reachable (192ms)
- Last Checked
Schema Completeness
- Paid Operations
- 5
- With Input Schema
- 3
- With Description
- 5
2 missing schema
- GET /v1/bookings/{booking_id}
- POST /v1/bookings/{booking_id}/cancel
Documentation
- Homepage
- -
- API Reference
- -
- llms.txt
- -
Discovery
- OpenAPI URL
- https://agent.jmpr.world/openapi.json
- OpenAPI Version
- 3.1.0
- Service Version
- 0.1.0
- Document Size
- 26985 bytes
- Document Hash
- 934e7c4bd502edeee4afed368f5a27411cbf7a469c8bde30ebd354b15ce89df8
Version History (29 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)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- new endpoint: GET /v1/bookings/{booking_id}
- new endpoint: POST /v1/bookings/reserve
- new endpoint: POST /v1/bookings/{booking_id}/cancel
- document hash changed (no semantic differences detected)
Scan snapshots
| Date | Grade | Score | Response | Status |
|---|---|---|---|---|
| 2026-05-08 | D | 58% | 318ms | Up |
| 2026-05-09 | D | 58% | 286ms | Up |
| 2026-05-10 | D | 58% | 193ms | Up |
| 2026-05-11 | D | 58% | 211ms | Up |
| 2026-05-12 | D | 58% | 186ms | Up |
| 2026-05-13 | D | 58% | 181ms | Up |
| 2026-05-14 | D | 58% | 225ms | Up |
| 2026-05-15 | D | 58% | 208ms | Up |
| 2026-05-16 | D | 58% | 265ms | Up |
| 2026-05-17 | D | 58% | 188ms | Up |
| 2026-05-18 | D | 58% | 1426ms | Up |
| 2026-05-19 | D | 58% | 188ms | Up |
| 2026-05-20 | D | 58% | 199ms | Up |
| 2026-05-21 | D | 58% | 179ms | Up |
| 2026-05-22 | D | 58% | 211ms | Up |
| 2026-05-23 | D | 58% | 181ms | Up |
| 2026-05-24 | D | 58% | 190ms | Up |
| 2026-05-25 | D | 58% | 180ms | Up |
| 2026-05-26 | D | 58% | 184ms | Up |
| 2026-05-27 | D | 58% | 213ms | Up |
| 2026-05-28 | D | 58% | 208ms | Up |
| 2026-05-29 | C | 71% | 231ms | Up |
| 2026-05-30 | C | 71% | 189ms | Up |
| 2026-05-31 | C | 71% | 188ms | Up |
| 2026-06-01 | C | 71% | 190ms | Up |
| 2026-06-02 | C | 71% | 1246ms | Up |
| 2026-06-03 | C | 71% | 209ms | Up |
| 2026-06-04 | C | 71% | 180ms | Up |
| 2026-06-05 | C | 71% | 196ms | Up |