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
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.
POINTIFY_API_KEY=pt_live_your_key_hereSearch flights
POST to /api/search with your route and dates. Results stream back via Server-Sent Events as each carrier responds.
// 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
}),
}
);Stream results
Read the SSE stream. Each event has a type (result, progress, complete) and a JSON data payload.
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 soonREST API — coming soon. Today the platform is available via the MCP server (below). The endpoints listed here describe the planned REST gateway.
/api/search/api/hotels/search/api/cars/search/api/booking/create-offer/api/book/api/booking/:id/api/booking/:id/cancel/api/alerts/api/alerts/api/alerts/:id/api/stats/trending/api/stats/public/healthConnect 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
{
"mcpServers": {
"pointify-travel": {
"command": "npx",
"args": [
"@pointify/mcp-server"
],
"env": {
"POINTIFY_API_KEY": "pt_live_..."
}
}
}
}Setup Instructions
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"
}
}
}
}Claude Code (CLI)
Add the MCP server to your project via the CLI:
claude mcp add pointify-travel -- npx @pointify/mcp-serverThen set the environment variable in your shell or .env file:
export POINTIFY_API_KEY=pt_live_your_key_hereRemote 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_flightsSearch 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_calendarFind 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_predictionGet 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_pointsCompare 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_cityCheck 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_dealsBrowse 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.createdA new booking was created
booking.confirmedBooking was confirmed and ticketed
booking.canceledA booking was canceled
alert.triggeredA fare alert matched a price drop
alert.mistake_fareA mistake fare was detected
payment.completedPayment was successfully processed
SDKs & Libraries
Official client libraries for your language of choice.
TypeScript / tRPC
Available@pointify/clientType-safe client with full tRPC integration. Auto-generated types.
Python
AvailablepointifySync + async clients, pydantic-validated responses. pip install pointify.
MCP Server
Available@pointify/mcp-serverModel 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