Public Supabase RPC endpoints for organizers, hotels, and partners. All endpoints respect RLS policies and require authentication via JWT. GDPR-compliant data access.
All endpoints require a valid Supabase JWT in the Authorization header:
POST https://jhihwzfikvndybbyaoul.supabase.co/rest/v1/rpc/{function_name}
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
apikey: {your_anon_key}
Content-Type: application/json
Tokens are obtained via magic-link OTP at /app/. Token TTL: 60 minutes. Use refreshSession to extend.
Returns a normalized score (0–1) for a given hotel against a published brief. Includes breakdown by criterion.
| Param | Type | Required | Description |
|---|---|---|---|
p_hotel_id | uuid | yes | Hotel UUID |
p_brief_id | uuid | yes | RFP brief UUID |
Returns: {score: 0.78, breakdown: {price: 0.85, location: 0.72,...}}
TOPSIS multi-criteria ranking of hotels for a given RFP. Honors organizer-defined scoring weights and applies mice_role multipliers (event_venue 1.2x, full_service 1.0x).
| Param | Type | Required |
|---|---|---|
p_rfp_id | uuid | yes |
p_limit | integer | no (default 50) |
Returns: ranked list with rank, topsis_score, price_score, location_score, cluster_boost, why_this_hotel array.
AHP-lite weight suggestions based on RFP characteristics (sector, intent, attendees). Returns 4-criterion split summing to 1.0.
Returns: {price: 0.35, location: 0.25, mice_fit: 0.25, response_time: 0.15, rationale: "..."}
Recommends counter-offer terms based on cohort history (sector × city × pax band). Requires N≥5 comparable proposals.
9-factor heuristic returning probability that a given hotel wins a given RFP (0.0–1.0). Factors: completeness, response_rate, mice_fit, price_position, cluster_boost, intent_score, sector_match, history, recency.
Detects price outliers (z-score against cohort), duplicate proposals, and rate manipulation. Severity: low/medium/high.
Adds DDR, F&B, AV, perks to base room rate. Returns per-attendee and total. Used by Compare view.
Hotel-side stats: rankings 30d, response_rate, completeness_pct, RFPs received vs responded, cluster_boost current value.
Returns all data Easy RFP holds about a given hotel or organizer. JSON or ZIP. Includes proposals, sends, field_facts, deltas.
Initiates right-to-be-forgotten flow. Cascades delete in 5 child tables. Confirmation email required (TTL 24h).
OpenTravel-compatible CSV view. Compatible with Cvent, Knowland, AventriOnArena import flows.
| Endpoint type | Limit | Window |
|---|---|---|
| Anonymous (hotel-prefill, dsar) | 30 | 1 hour |
| Authenticated (organizer) | 1000 | 1 hour |
| RPC heavy (TOPSIS, parser) | 100 | 1 hour |
System health: easyhotelrfp.com/status · Uptime target: 99.5% · API response p95: <800ms.
Email [email protected] · GDPR / DSAR: [email protected]
Easy RFP processes RFPs and proposals across multiple currencies. To make rates comparable in a single reporting currency, conversion rules are explicit:
EUR 1,150.00 (from USD 1,247.53 at ECB rate 2026-05-04)Every FX conversion stores: source rate, source date, source provider (ECB / corporate / contract-locked), and the converted amount. Available via audit log export at /app/admin/audit/ in CSV/JSON format.
Easy RFP follows IFRS standard for currency rounding: half-up at 2 decimal places, applied at line-item level. Aggregate totals are computed from rounded line-items (not from unrounded source values), making every total reconcilable to its components.
Organization-level FX configuration via POST /api/v1/organization/fx-config (Enterprise tier). Contact [email protected] for access.