---
title: "Get Deal Feed"
method: GET
path: "/api/deals/feed"
tags: ["deals"]
---

# Get Deal Feed

`GET /api/deals/feed`

## 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/deals/feed`
- Auth: none declared

Return the aggregated deal feed with filtering, sorting, and pagination.

Public endpoint — no authentication required. Results are cached for 15 minutes.

## Query parameters

- `origin` string, nullable: Filter by origin IATA code
- `destination` string, nullable: Filter by destination IATA code
- `program` string, nullable: Filter by points program name
- `deal_type` string, nullable: Filter by deal type: flight, hotel, card, points, package
- `sort_by` string: Sort field: savings_pct, price, expiration
- `page` integer: Page number
- `page_size` integer: Results per page (max 100)

## Response `200`

Successful Response

- DealFeedResponse
  - `deals` DealFeedItem[], required
    - `id` string, required
    - `title` string, required
    - `origin` string
    - `destination` string
    - `price_cash` number, nullable
    - `price_points` integer, nullable
    - `points_program` string
    - `airline` string
    - `hotel_chain` string
    - `deal_type` string
    - `deal_url` string
    - `image_url` string
    - `description` string
    - `savings_pct` number, nullable
    - `is_hot` boolean
    - `source` string
    - `expiration_date` string, nullable
    - `scraped_at` string, nullable
  - `total` integer, required
  - `page` integer, required
  - `page_size` integer, required
  - `has_next` boolean, required

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