Pointify
Live: MCP server for AI agents

Give your agents
real travel data

Flight search, award availability, fare prediction, points optimization, and hidden-city checks — exposed as MCP tools your AI agent can call today. Connect any MCP client (Claude Desktop, Cursor) or POST JSON-RPC straight to the endpoint. Per-key usage metering, tiered limits. REST API coming soon.

Quick Start

1

Get your API key

Subscribe to a paid plan (Developer recommended for API + MCP), then mint a key in your developer dashboard. Keys start with pt_live_ and are shown once.

.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
// REST API coming soon — see the MCP server below for today's access
const res = await fetch(
  'https://pointifytravels.com/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

Coming soon

REST API — coming soon. Today the platform is available via the MCP server (below). The endpoints listed here describe the planned REST gateway.

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 optimize points on behalf of users. Connect once and get access to all 6 travel tools. Just want to use Pointify inside ChatGPT or Claude (no code)? See the one-click connector.

  • Works with Claude Desktop, Claude Code, ChatGPT, and Cursor
  • 6 tools: flight search, flexible-date calendar, fare prediction, points optimizer, award deal feed, 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. Use the dedicated connector host with OAuth for one-click clients (Claude / ChatGPT custom connectors), or the API-key path for server-to-server calls:

# One-click connector (OAuth 2.1 + PKCE, or paste a pt_ key)
Connector URL: https://mcp.pointifytravels.com/mcp

# Server-to-server (static API key)
Server URL:  https://pointifytravels.com/mcp
Auth Header: Authorization: Bearer pt_live_your_key_here
Transport:   Streamable HTTP (POST/GET/DELETE)

Available MCP Tools

All tools are invoked via JSON-RPC tools/call at the single /mcp endpoint. 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://pointifytravels.com/mcp \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_flights","arguments":{"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://pointifytravels.com/mcp \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_calendar","arguments":{"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://pointifytravels.com/mcp \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_prediction","arguments":{"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://pointifytravels.com/mcp \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"optimize_points","arguments":{"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://pointifytravels.com/mcp \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_hidden_city","arguments":{"origin":"ORD","destination":"DEN","departureDate":"2025-09-10"}}}'
list_deals

Browse the curated award-deal feed — high-value redemptions and current sweet spots, optionally filtered by type.

Input Schema

{ limit?: number (default 12), category?: string (e.g. "flight"|"hotel"|"card") }

Response

{ deals: { title: string, program: string, value: string, url: string }[] }

Example (curl)

curl -X POST https://pointifytravels.com/mcp \
  -H "Authorization: Bearer pt_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_deals","arguments":{"limit":12}}}'

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

Available
pointify

Sync + async clients, pydantic-validated responses. pip install pointify.

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?

Pret a trouver votre meilleur tarif ?

Rejoignez les professionnels du voyage qui ne surpayent jamais. Compte gratuit en 30 secondes.

Creer un compte gratuit