flysfo APIflysfo.com ↗
Get real-time TSA and TSA PreCheck security checkpoint wait times for all SFO terminals via a single API endpoint.
What is the flysfo API?
The flysfo.com API exposes 1 endpoint — get_security_wait_times — that returns live security checkpoint wait times across every terminal at San Francisco International Airport. Each record in the response includes both general lane and TSA PreCheck lane wait times per checkpoint, reflecting current conditions at the time of the request. This is useful for any application that needs to surface real-time SFO queue data to travelers or operations teams.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/2f83e82a-83e5-4989-b8cd-042ffdaee2e9/get_security_wait_times' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace flysfo-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: SFO Airport SDK — bounded, re-runnable; every call capped."""
from parse_apis.flysfo_com_api import SFO, ParseError
client = SFO()
# Fetch current security checkpoint wait times across all terminals.
for checkpoint in client.checkpoints.list(limit=3):
print(checkpoint.checkpoint, checkpoint.general_wait_time, checkpoint.tsa_precheck_wait_time)
# Get a single checkpoint for quick inspection.
first = client.checkpoints.list(limit=1).first()
try:
print(first.checkpoint, first.general_wait_time)
except ParseError as e:
print(f"error: {e.code}")
print("exercised: checkpoints.list")
Returns current security checkpoint wait times for all SFO terminals. Each checkpoint reports general and TSA PreCheck lane wait times. Wait times are subject to change and reflect live conditions. All gates are accessible from any checkpoint; checkpoint letters reference closest gates (e.g. Checkpoint B for Gate B1).
No input parameters required.
{
"type": "object",
"fields": {
"checkpoints": "array of checkpoint wait time records"
},
"sample": {
"checkpoints": [
{
"checkpoint": "Checkpoint A",
"general_wait_time": "1 mins",
"tsa_precheck_wait_time": "1 mins"
},
{
"checkpoint": "Checkpoint B",
"general_wait_time": "11 mins",
"tsa_precheck_wait_time": "7 mins"
},
{
"checkpoint": "Checkpoint B - Mezzanine Level",
"general_wait_time": "Not Available",
"tsa_precheck_wait_time": "4 mins"
},
{
"checkpoint": "Checkpoint D",
"general_wait_time": "1 mins",
"tsa_precheck_wait_time": "1 mins"
},
{
"checkpoint": "Checkpoint F",
"general_wait_time": "1 mins",
"tsa_precheck_wait_time": "1 mins"
},
{
"checkpoint": "Checkpoint G",
"general_wait_time": "1 mins",
"tsa_precheck_wait_time": "1 mins"
}
]
}
}About the flysfo API
What the API Returns
The single get_security_wait_times endpoint requires no input parameters and returns a checkpoints array. Each element in that array represents one security checkpoint at SFO and carries at minimum: the checkpoint identifier (referenced by letter, indicating closest gates), a general-lane wait time, and a TSA PreCheck-lane wait time. Because the data reflects live conditions, values can shift between consecutive requests.
Checkpoint Coverage
All SFO terminals are covered. Checkpoint letters in the response map to the nearest gate cluster, but as the endpoint description notes, all gates are accessible from any checkpoint — the letter is a proximity reference, not an access restriction. This means a single API call gives you a complete picture of airport-wide security throughput at that moment.
Freshness and Behavior
Wait times are sourced directly from the live SFO passenger information system, so the data is as current as the airport's own display boards. There is no historical data, no trend aggregation, and no filtering by terminal — the endpoint always returns all checkpoints in one response. Applications that need time-series comparisons will need to poll the endpoint and store the results themselves.
The flysfo API is a managed, monitored endpoint for flysfo.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when flysfo.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official flysfo.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display real-time SFO security wait times inside a flight-tracker or airport companion app
- Alert frequent flyers when TSA PreCheck lanes at SFO exceed a self-set threshold
- Feed checkpoint wait times into a departure-time recommendation engine for SFO travelers
- Show side-by-side general vs. PreCheck lane comparisons to help travelers choose a checkpoint
- Integrate live SFO wait times into corporate travel dashboards for teams with frequent SFO routes
- Archive polled wait-time snapshots to build a historical dataset for SFO security queue analysis
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.