C

JMPR — Luxury Hotels API — MPP Grade C

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

On-chain Activity

118 Total txs
22 7d txs
$0.52 7d volume
$2.67 Total volume
10 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
  • 402 response missing Cache-Control: no-store

Paid Operations (5)

POST /v1/hotels/search dynamic
Search luxury hotels — 5-star, ultra-luxury, boutique

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
Non-standard x-payment-info fields: 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
Luxury hotel property record plus bookable suites & rates

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
Non-standard x-payment-info fields: 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
Reserve a booking — returns a JMPR checkout URL for the end-user

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
Non-standard x-payment-info fields: 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
Get current state of a booking

Read booking state. Identity-gated by MPP credential.source.

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

Parameters

NameInTypeRequiredDescription
booking_id path string Yes -

Response Schema (200)

{
  "$ref": "#/components/schemas/BookingStatusResponse"
}
POST /v1/bookings/{booking_id}/cancel dynamic
Cancel a booking

Cancel a booking before the deadline.

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

Parameters

NameInTypeRequiredDescription
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)

Grade: F (13%) → C (71%)
Grade: C (71%) → F (13%)
  • 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
Grade: D (58%) → C (71%)
  • 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