seats-aero

Search award flight availability via seats.aero API. Triggers on: award flights, mileage bookings, points redemptions, finding business/first class availability, route availability searches.

7 stars

Best use case

seats-aero is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Search award flight availability via seats.aero API. Triggers on: award flights, mileage bookings, points redemptions, finding business/first class availability, route availability searches.

Teams using seats-aero should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/seats-aero/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/jarrodjs/seats-aero/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/seats-aero/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How seats-aero Compares

Feature / Agentseats-aeroStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Search award flight availability via seats.aero API. Triggers on: award flights, mileage bookings, points redemptions, finding business/first class availability, route availability searches.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Seats.aero Award Flight Search

Search award flight availability across 24 mileage programs using the seats.aero partner API.

## Setup

Before searching, you need a seats.aero API key:

1. If the user hasn't provided an API key, prompt them:
   - "Please provide your seats.aero API key. You can get one at https://seats.aero/partner"
2. Store the key in conversation context for subsequent requests
3. All requests require the header: `Partner-Authorization: Bearer {api_key}`

## Core Capabilities

### 1. Search Routes (`/search`)
Search cached availability across all mileage programs for a specific origin-destination pair.

### 2. Bulk Availability (`/availability`)
Explore all availability from a single mileage program, optionally filtered by region.

### 3. Route Discovery (`/routes`)
Get all routes monitored for a specific mileage program.

### 4. Trip Details (`/trips/{id}`)
Get detailed flight segments and booking links for a specific availability.

## Quick Reference

| Item | Value |
|------|-------|
| Base URL | `https://seats.aero/partnerapi/` |
| Auth Header | `Partner-Authorization: Bearer {key}` |
| Date Format | `YYYY-MM-DD` |

### Cabin Codes
- `Y` = Economy
- `W` = Premium Economy
- `J` = Business
- `F` = First

### Regions
North America, South America, Europe, Africa, Middle East, Asia, Oceania

## Supported Programs

```
aeroplan, alaska, american, aeromexico, azul, copa, delta, emirates,
ethiopian, etihad, finnair, flyingblue, gol, jetblue, lufthansa,
qantas, qatar, sas, saudia, singapore, turkish, united,
virginatlantic, virginaustralia
```

## Common Workflows

### Find availability on a specific route
**User**: "Find business class SFO to Tokyo next month"

1. Use `/search` endpoint with:
   - `origin_airport=SFO`
   - `destination_airport=NRT,HND` (both Tokyo airports)
   - `cabin=J`
   - `start_date` and `end_date` for the date range

### Explore program availability
**User**: "What United awards are available from Europe?"

1. Use `/availability` endpoint with:
   - `source=united`
   - `origin_region=Europe`

### Get booking details
**User**: "Show me details for that flight"

1. Use `/trips/{id}` with the availability ID from previous search
2. Response includes flight segments, times, and booking links

### Check what routes a program covers
**User**: "What routes does Aeroplan monitor?"

1. Use `/routes` endpoint with `source=aeroplan`

## API Parameters Quick Guide

### /search
| Parameter | Required | Description |
|-----------|----------|-------------|
| origin_airport | Yes | 3-letter IATA code |
| destination_airport | Yes | 3-letter IATA code(s), comma-separated |
| cabin | No | Y, W, J, or F (comma-separated for multiple) |
| start_date | No | YYYY-MM-DD |
| end_date | No | YYYY-MM-DD |
| sources | No | Program name(s), comma-separated |
| only_direct | No | true/false |
| take | No | Results per page (default 100) |
| cursor | No | Pagination cursor |

### /availability
| Parameter | Required | Description |
|-----------|----------|-------------|
| source | Yes | Single program name |
| cabin | No | Single cabin code |
| origin_region | No | Filter by origin region |
| destination_region | No | Filter by destination region |
| start_date | No | YYYY-MM-DD |
| end_date | No | YYYY-MM-DD |
| take | No | Results per page |

## Script Usage

For complex or repeated searches, use the Python helper:

```python
from scripts.seats_api import search_availability, format_results

results = search_availability(
    api_key="your_key",
    origin="SFO",
    destination="NRT",
    start_date="2024-03-01",
    end_date="2024-03-31",
    cabins="J,F"
)
print(format_results(results["data"], cabin="J"))
```

See `scripts/seats_api.py` for full API client implementation.

## Response Handling

### Availability Object Fields
- `ID` - Use for `/trips/{id}` lookup
- `Route` - Origin-Destination pair
- `Date` - Flight date
- `YAvailable`, `WAvailable`, `JAvailable`, `FAvailable` - Boolean availability
- `YMileageCost`, etc. - Points required per cabin
- `YDirects`, etc. - Number of direct flights available
- `Source` - Program name
- `ComputedLastSeen` - Data freshness timestamp

### Error Handling
- 401: Invalid or missing API key
- 429: Rate limited, wait and retry
- 404: No results or invalid availability ID

## Tips

1. **Date ranges**: Keep to 30-60 days for faster results
2. **Multiple cabins**: Search J,F together for premium options
3. **Direct flights**: Use `only_direct=true` to filter connections
4. **Pagination**: Use `cursor` from response for more results
5. **Data freshness**: Check `ComputedLastSeen` - older data may be stale

## Reference Documentation

For complete API specification including all fields and response schemas, see `references/api-spec.md`.

Related Skills

paylock

7
from Demerzels-lab/elsamultiskillagent

Non-custodial SOL escrow for AI agent deals.

agent-reputation

7
from Demerzels-lab/elsamultiskillagent

summary: Cross-platform AI agent reputation checker with trust scoring and PayLock escrow recommendations.

Telecom Agent Skill

7
from Demerzels-lab/elsamultiskillagent

Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring.

OpenClaw-Finnhub

7
from Demerzels-lab/elsamultiskillagent

OpenClaw skill for real-time stock quote, and financials via Finnhub API.

```markdown

7
from Demerzels-lab/elsamultiskillagent

# OpenClaw-Last.fm

security-operator

7
from Demerzels-lab/elsamultiskillagent

Runtime security guardrails for OpenClaw agents.

operator-humanizer

7
from Demerzels-lab/elsamultiskillagent

Transform AI-generated text into authentic human writing.

kit-email-operator

7
from Demerzels-lab/elsamultiskillagent

**AI-powered email marketing for Kit (ConvertKit)**.

agora

7
from Demerzels-lab/elsamultiskillagent

Trade prediction markets on Agora — the prediction market exclusively for AI agents. Register, browse markets, trade YES/NO, create markets, earn reputation via Brier scores.

surf-check

7
from Demerzels-lab/elsamultiskillagent

Surf forecast decision engine.

jinko-flight-search

7
from Demerzels-lab/elsamultiskillagent

Search flights and discover travel destinations using the Jinko MCP server. Provides two core capabilities: (1) Destination discovery — find where to travel based on criteria like budget, climate, or activities when the user has no specific destination in mind, and (2) Specific flight search — compare flights between two known cities/airports with flexible dates, cabin classes, and budget filters. Use this skill when the user wants to: search for flights, find cheap flights, discover travel destinations, compare flight prices, plan a trip, find deals from a specific city, or explore where to go. Triggers on any flight-booking, travel-planning, or destination-discovery request. Requires the Jinko MCP server connected at https://mcp.gojinko.com.

mlx-whisper

7
from Demerzels-lab/elsamultiskillagent

Local speech-to-text with MLX Whisper (Apple Silicon optimized, no API key).