---
title: "Search Awards As Deals"
method: POST
path: "/api/search/awards/deals"
tags: ["award-search"]
---

# Search Awards As Deals

`POST /api/search/awards/deals`

## Request

- Base URL: `https://api.pointifytravels.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pointifytravels.com/api/search/awards/deals`
- Auth: none declared

Search award availability and return results as ``FlightDeal`` objects.

This endpoint returns the same shape as the main flight search,
making it easy to merge award and cash results on the frontend.

## Request body

- FlightSearchRequest
  - `origin` string, required
  - `destination` string, required
  - `departure_date` string, required
  - `return_date` string, nullable
  - `trip_type` 'one_way' | 'round_trip' | 'multi_city'
  - `passengers` integer
  - `cabin_class` 'economy' | 'premium_economy' | 'business' | 'first'
  - `search_type` 'cash' | 'points' | 'both'

## Response `200`

Successful Response

- FlightDeal[]
  - `id` string, required
  - `segments` FlightSegment[], required
    - `departure_airport` string, required
    - `arrival_airport` string, required
    - `departure_time` string, required
    - `arrival_time` string, required
    - `carrier` string, required
    - `carrier_name` string, required
    - `flight_number` string, required
    - `duration_minutes` integer, required
  - `price_cash` number, nullable
  - `price_currency` string
  - `price_points` integer, nullable
  - `points_program_name` string, nullable
  - `cabin_class` 'economy' | 'premium_economy' | 'business' | 'first', required
  - `stops` integer, required
  - `total_duration_minutes` integer, required
  - `source` 'duffel' | 'seats_aero' | 'google_flights' | 'amex_travel' | 'costco_travel' | 'aaa_travel' | 'sams_club_travel' | 'bjs_travel' | 'chase_ur_portal' | 'amex_mr_portal' | 'arkalis', required
  - `deep_link` string, nullable
  - `seats_remaining` integer, nullable
  - `price_delta_pct` number, nullable
  - `fare_breakdown` FareBreakdown: Cash fare decomposition. Serialized with camelCase keys for the frontend.
    - `baseFare` number, required
    - `taxes` number, required
    - `surcharges` number
    - `totalCash` number, required
  - `award_options` AwardOption[], nullable
    - `programName` string, required
    - `pointsRequired` integer, required
    - `cppValue` number, required
    - `transferFrom` string, nullable
    - `transferRatio` number
    - `transferPartners` string[], nullable
    - `isTransferPartner` boolean
    - `cabinClass` string
    - `estimated` boolean
  - `duffel_offer_id` string, nullable
  - `bookable` boolean
  - `fare_brand_name` string, nullable
  - `cabin_class_marketing_name` string, nullable
  - `refundable` boolean
  - `refund_penalty` string, nullable
  - `changeable` boolean
  - `change_penalty` string, nullable
  - `carry_on_included` boolean
  - `checked_bags_included` integer
  - `seat_selection_included` boolean
  - `alliance` string, nullable
  - `earns_redeemable_miles` boolean, nullable
  - `earns_status_credit` boolean, nullable
  - `cpp` number, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/pointifytravels/apis/pointify-deal-engine.md) · [All operations](https://skmtc.dev/pointifytravels/apis/pointify-deal-engine/llms.txt) · [OpenAPI document](https://skmtc.dev/pointifytravels/apis/pointify-deal-engine/revisions/4350142a4216?raw)
