Developer Toolkit

Build with the
Pointify API

Integrate flight search, booking, and fare monitoring into your apps. Real-time streaming results, typed SDKs, and production-ready endpoints.

Quick Start

1

Get your API key

Sign up for a Business plan to get API access. Your key starts with pt_live_.

.env
POINTIFY_API_KEY=pt_live_your_key_here
2

Search flights

POST to /api/search with your route and dates. Results stream back via Server-Sent Events as each carrier responds.

search.ts
const res = await fetch(
  'https://api.pointifytravels.dev/api/search',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer pt_live_...',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      origin: 'JFK',
      destination: 'NRT',
      departure_date: '2026-05-15',
      passengers: 1,
      cabin_class: 'business',
      search_type: 'both', // cash + points
    }),
  }
);
3

Stream results

Read the SSE stream. Each event has a type (result, progress, complete) and a JSON data payload.

stream.ts
const reader = res.body.getReader();
const decoder = new TextDecoder();

while (true) {
  const { done, value } = await reader.read();
  if (done) break;

  const lines = decoder.decode(value).split('\n');
  for (const line of lines) {
    if (line.startsWith('data: ')) {
      const event = JSON.parse(line.slice(6));
      if (event.type === 'result') {
        console.log(event.data);
        // { price, carrier, route, ... }
      }
    }
  }
}

API Endpoints

Base URL: https://api.pointifytravels.dev

POST/api/search
POST/api/hotels/search
POST/api/cars/search
POST/api/booking/create-offer
POST/api/book
GET/api/booking/:id
POST/api/booking/:id/cancel
POST/api/alerts
GET/api/alerts
DELETE/api/alerts/:id
GET/api/stats/trending
GET/api/stats/public
GET/health
AI Integration

Connect via MCP

Our Model Context Protocol server lets AI assistants like Claude and ChatGPT search flights, check prices, and create bookings on behalf of users. Connect once and get access to all 5 travel tools.

  • Works with Claude Desktop, Claude Code, and ChatGPT
  • 5 tools: flight search, calendar, fare prediction, points optimizer, hidden city
  • Structured responses with pricing data
  • Auth via API key from your developer dashboard
claude_desktop_config.json
{
  "mcpServers": {
    "pointify-travel": {
      "command": "npx",
      "args": [
        "@pointify/mcp-server"
      ],
      "env": {
        "POINTIFY_API_KEY": "pt_live_..."
      }
    }
  }
}

Setup Instructions

1

Claude Desktop

Open Settings > Developer > Edit Config in Claude Desktop and add the Pointify server to your claude_desktop_config.json:

{
  "mcpServers": {
    "pointify-travel": {
      "command": "npx",
      "args": ["@pointify/mcp-server"],
      "env": {
        "POINTIFY_API_KEY": "pt_live_your_key_here"
      }
    }
  }
}
2

Claude Code (CLI)

Add the MCP server to your project via the CLI:

claude mcp add pointify-travel -- npx @pointify/mcp-server

Then set the environment variable in your shell or .env file:

export POINTIFY_API_KEY=pt_live_your_key_here
3

Remote HTTP MCP (Streamable HTTP)

For server-side integrations or custom MCP clients, connect directly to the hosted endpoint:

Server URL: https://api.pointifytravels.dev/mcp
Auth Header: Authorization: Bearer pt_live_your_key_here
Transport: Streamable HTTP (POST/GET/DELETE)

Available MCP Tools

All tools accept JSON over HTTP. Authentication: Authorization: Bearer pt_your_key

search_flights

Search for flight deals between two airports on a given date. Returns cash fares and/or award availability from multiple sources (Duffel, Google Flights scraper, Seats.aero).

Input Schema

{ origin: string, destination: string, date: string (YYYY-MM-DD), returnDate?: string, cabinClass?: "economy"|"premium_economy"|"business"|"first", searchType?: "cash"|"points"|"all" }

Response

{ results: FlightResult[], source: string, count: number }

Example (curl)

curl -X POST https://api.pointifytravels.dev/mcp/search_flights \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"origin":"JFK","destination":"LHR","date":"2025-06-15","cabinClass":"economy"}'
search_calendar

Find the cheapest travel dates around a target date. Shows a calendar view of minimum prices for flexible date travelers.

Input Schema

{ origin: string, destination: string, targetDate: string (YYYY-MM-DD), daysBefore?: number (default 7), daysAfter?: number (default 7) }

Response

{ calendar: { date: string, minPrice: number, currency: string }[] }

Example (curl)

curl -X POST https://api.pointifytravels.dev/mcp/search_calendar \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"origin":"BOS","destination":"CDG","targetDate":"2025-07-01","daysBefore":5,"daysAfter":5}'
get_prediction

Get a buy/wait/neutral recommendation for a flight fare based on historical patterns and time-based signals.

Input Schema

{ origin: string, destination: string, departureDate: string (YYYY-MM-DD), currentPrice: number }

Response

{ recommendation: "buy"|"wait"|"neutral", confidence: number, reason: string }

Example (curl)

curl -X POST https://api.pointifytravels.dev/mcp/get_prediction \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"origin":"LAX","destination":"NRT","departureDate":"2025-08-20","currentPrice":850}'
optimize_points

Compare points redemption options for a flight and rank them by cents-per-point (CPP) value. Helps decide whether to pay cash or use loyalty points.

Input Schema

{ cashPrice: number, pointsOptions: { program: string, pointsRequired: number }[] }

Response

{ ranked: { program: string, cpp: number, verdict: "excellent"|"good"|"poor" }[] }

Example (curl)

curl -X POST https://api.pointifytravels.dev/mcp/optimize_points \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"cashPrice":1200,"pointsOptions":[{"program":"Chase UR","pointsRequired":60000},{"program":"Amex MR","pointsRequired":75000}]}'
check_hidden_city

Check for hidden city ticketing opportunities where booking through your destination is cheaper than booking directly. Includes risk disclaimers.

Input Schema

{ origin: string, destination: string, departureDate: string (YYYY-MM-DD) }

Response

{ opportunities: { via: string, price: number, savings: number }[], disclaimer: string }

Example (curl)

curl -X POST https://api.pointifytravels.dev/mcp/check_hidden_city \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"origin":"ORD","destination":"DEN","departureDate":"2025-09-10"}'

Webhooks

Get notified in real-time when events happen in your account.

booking.created

A new booking was created

booking.confirmed

Booking was confirmed and ticketed

booking.canceled

A booking was canceled

alert.triggered

A fare alert matched a price drop

alert.mistake_fare

A mistake fare was detected

payment.completed

Payment was successfully processed

SDKs & Libraries

Official client libraries for your language of choice.

TypeScript / tRPC

Available
@pointify/client

Type-safe client with full tRPC integration. Auto-generated types.

Python

Coming Soon
pointify-python

Async client with SSE streaming support. pip installable.

MCP Server

Available
@pointify/mcp-server

Model Context Protocol server for Claude and ChatGPT.

Ready to integrate?

Get API access with a Business plan. Need custom volume or enterprise features?

Ready to find your best fare?

Join travel professionals who never overpay for flights. Free account in 30 seconds.

Create Free Account