Browsable Browsable Docs

Skyscanner API

Scrape rendered public Skyscanner flight result pages from a flight query. Partner APIs require credentials.

POST /v1/skyscanner/search

Request Parameters

Name In Type Required Description
destination body string Yes Destination airport, city, or site-specific location slug.
origin body string Yes Origin airport, city, or site-specific location slug.
adults body integer No
depart_date body string No Departure date in the format expected by the source.
limit body integer No Maximum number of results to return.
return_date body string No Optional return date in the format expected by the source.

Response Structure

Async kickoff response

Polled run result response

Sync response

Declared output schema

Code Examples

Async + polling

RUN=$(curl -s -X POST "https://api.browsable.app/v1/skyscanner/search" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"destination":"UK","origin":"US","adults":1,"depart_date":"260701","limit":25,"return_date":"sample"}')
RUN_ID=$(echo "$RUN" | jq -r '.run_id')
while true; do
RESULT=$(curl -s -H "Authorization: Bearer YOUR_API_KEY" "https://api.browsable.app/v1/runs/$RUN_ID")
STATUS=$(echo "$RESULT" | jq -r '.run_status')
if [ "$STATUS" = "succeeded" ] || [ "$STATUS" = "failed" ]; then
echo "$RESULT"
break
fi
sleep 2
done

Sync

curl -X POST "https://api.browsable.app/v1/skyscanner/search" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"destination":"UK","origin":"US","adults":1,"depart_date":"260701","limit":25,"return_date":"sample","_run":{"async":false}}'