RedPlanetHQ/core

New Integration: Skyscanner

Open

#512 opened on Feb 24, 2026

 (0 comments) (0 reactions) (1 assignee)TypeScript (184 forks)auto 404
enhancementgood first issueintegrationnew-featurenew-integration

Repository metrics

Stars
 (1,930 stars)
PR merge metrics
 (PR metrics pending)

Description

Description

Add Skyscanner integration to sync travel search data including flight prices, car hire rates, and hotel pricing into CORE.

Reference Implementations

Existing Integrations (use as templates)

  • integrations/github/ - API-based data integration
  • integrations/linear/ - Project management integration
  • integrations/slack/ - For reference

Required Files Structure

integrations/skyscanner/
├── src/
│   ├── index.ts          # Main entry, API key spec
│   ├── schedule.ts       # Sync logic
│   ├── utils.ts          # Skyscanner API utilities
│   ├── account-create.ts # API key setup
│   └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md

Skyscanner Travel API Integration

Authentication Setup

  • Use API Key authentication
  • API keys managed through the Skyscanner Partner Portal
  • All requests require JSON format for request/response bodies
  • All responses localized by market, locale (language), and currency

Key Endpoints

  • POST /flights/live/search/create - Create a flight live price search
  • POST /flights/live/search/poll/{sessionToken} - Poll flight search results
  • POST /flights/indicative/search - Get indicative flight prices
  • POST /carhire/live/search/create - Create a car hire search
  • POST /carhire/live/search/poll/{sessionToken} - Poll car hire results
  • POST /carhire/indicative/search - Get indicative car hire prices
  • POST /hotels/live/search/create - Create a hotel search
  • POST /hotels/live/search/poll/{sessionToken} - Poll hotel results
  • GET /culture/markets - Get supported markets
  • GET /culture/locales - Get supported locales
  • GET /culture/currencies - Get supported currencies

Events to Track

  1. Flight Searches - Flight price queries, price changes, and deal alerts
  2. Car Hire Searches - Car rental price queries and availability
  3. Hotel Searches - Hotel price queries, availability, and deals
  4. Price Trends - Indicative pricing trends over time
  5. Market Data - Locale and currency configuration

Implementation Tasks

  • Set up basic integration structure following integrations/github/src/index.ts pattern
  • Implement API key authentication flow in account-create.ts
  • Create API utilities in utils.ts for flights, car hire, and hotels
  • Implement sync logic in schedule.ts for polling live search results
  • Convert travel search results to CORE activity format
  • Add error handling and rate limiting
  • Create integration documentation
  • Add to integrations/README.md

Technical Notes

  • Live price searches are asynchronous: create a session, then poll for results
  • Every request requires market, locale, and currency parameters for localization
  • Indicative prices are cached/approximate; live prices are real-time from providers
  • API responses include carrier, agent, and place data that needs to be joined with itinerary data
  • Consider caching indicative prices to reduce API calls

Resources

Labels

enhancement, integration, new-feature

Contributor guide