# Kiwi Flight Search Scraper (`ecomscrape/kiwi-flight-search-scraper`)

Extract comprehensive flight data from Kiwi.com's virtual interlining platform. Access prices, routes, airlines, and booking options from 750+ carriers worldwide. Perfect for travel businesses, price comparison, and market research with detailed output including price, duration, and booking data.

- **URL**: https://beta-securitybyobscurity.apify.com/ecomscrape/kiwi-flight-search-scraper.md
- **Developed by:** [ecomscrape](https://beta-securitybyobscurity.apify.com/ecomscrape) (community)
- **Categories:** Travel, Developer tools, Automation
- **Stats:** 6 total users, 5 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$20.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.
You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

# README

## Contact

If you encounter any issues or need to exchange information, please feel free to contact us through the following link:
[My profile](https://apify.com/ecomscrape)

## Kiwi Flight Scraper: Extract Flight Data & Prices Efficiently

### Introduction

Kiwi.com has revolutionized the travel industry with its innovative virtual interlining technology, connecting over 750 carriers that traditionally don't cooperate in online bookings. As an international online travel agency founded in 2012, Kiwi.com provides a fare aggregator and metasearch engine that combines itineraries from carriers using their unique "virtual interlining" concept. For businesses, researchers, and travel professionals who need to analyze flight data systematically, manual searching through Kiwi.com's extensive database becomes time-consuming and inefficient.

The Kiwi.com Flight Scraper addresses this challenge by automating the extraction of comprehensive flight information from search results. Whether you're conducting market research, building travel applications, or analyzing pricing trends across multiple routes, this scraper provides structured access to Kiwi.com's vast flight inventory, including low-cost carriers and unique route combinations that other platforms may not offer.

### Scraper Overview

The Kiwi.com Flight Scraper is designed to extract detailed flight information from Kiwi.com search result pages efficiently. This powerful tool captures not only basic flight details like prices and schedules but also advanced metadata that makes Kiwi.com unique, such as virtual interlining options, travel hacks, and multi-carrier combinations.

Key advantages of this scraper include its ability to handle Kiwi.com's dynamic content loading, extract complex multi-leg journeys, and capture the platform's specialized data fields like "Travel Hack" indicators and "Vanilla" flight classifications. The scraper is particularly valuable for travel industry professionals who need to monitor pricing across unconventional routes that combine different carriers.

Target users include travel agencies looking to compare competitive pricing, researchers analyzing flight market trends, price monitoring services, and developers building travel applications. The scraper's comprehensive data extraction capabilities make it suitable for both commercial use and academic research in transportation and tourism sectors.

#### Detailed Input and Output Specifications

##### Input Format

Example url 1: https://www.kiwi.com/en/search/results/london-united-kingdom/manchester-united-kingdom

Example url 2: https://www.kiwi.com/en/search/results/london-united-kingdom/mexico-city-mexico

Example url 3: https://www.kiwi.com/en/search/results/london-united-kingdom/berlin-germany

Example Screenshot of Flight list by query page:

![](https://i.ibb.co/jvwwdhVw/Screenshot-from-2025-08-18-11-55-05.png)

The scraper accepts JSON configuration with specific parameters:

```json
{
  "max_retries_per_url": 2, // Maximum waiting time when accessing the links you provided.
  "proxy": { // Add a proxy to ensure that during the data collection process, you are not detected as a bot.
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL" 
    ],
    "apifyProxyCountry": "SG" // You should choose an Country that coincides with the Country you want to collect data from
  },
  "max_items_per_url": 20,
  "urls": [ // Links to Flight list by query pages.
    "https://www.kiwi.com/en/search/results/london-united-kingdom/manchester-united-kingdom",
    "https://www.kiwi.com/en/search/results/london-united-kingdom/mexico-city-mexico
    ",
    "https://www.kiwi.com/en/search/results/london-united-kingdom/berlin-germany"
  ]
}
```

**Required Parameters:**

- `urls`: Array of Kiwi Flight search URLs (kiwi.com)
- `max_items_per_url`: Maximum Flights to extract per URL
- `max_retries_per_url`: Retry attempts for failed requests (default: 2)

#### Output Format

```json
[ // List of Flight information
  {
  "outbound": {
    "sector_segments": [
      {
        "segment": {
          "source": {
            "station": {
              "code": "LHR",
              "type": "AIRPORT",
              "city": {
                "name": "London",
                "id": "City:london_gb",
                "legacy_id": "london_gb"
              },
              "id": "Station:airport:LHR",
              "legacy_id": "LHR",
              "name": "Heathrow",
              "gps": {
                "lat": 51.4775,
                "lng": -0.4613889
              },
              "country": {
                "code": "GB",
                "id": "Country:GB"
              }
            },
            "local_time": "2025-12-15T19:05:00",
            "utc_time_iso": "2025-12-15T19:05:00Z"
          },
          "destination": {
            "station": {
              "code": "MAN",
              "type": "AIRPORT",
              "city": {
                "name": "Manchester",
                "id": "City:manchester_gb",
                "legacy_id": "manchester_gb"
              },
              "id": "Station:airport:MAN",
              "legacy_id": "MAN",
              "name": "Manchester",
              "gps": {
                "lat": 53.3536111,
                "lng": -2.275
              },
              "country": {
                "code": "GB",
                "id": "Country:GB"
              }
            },
            "local_time": "2025-12-15T20:10:00",
            "utc_time_iso": "2025-12-15T20:10:00Z"
          },
          "id": "Segment:6bcf2535bfa74605b976d2cf1c0f7e1aa2d6bbb2",
          "duration": 3900,
          "type": "FLIGHT",
          "code": "1380",
          "carrier": {
            "id": "Carrier:207",
            "name": "British Airways",
            "code": "BA"
          },
          "operating_carrier": {
            "id": "Carrier:207",
            "name": "British Airways",
            "code": "BA"
          },
          "cabin_class": "ECONOMY",
          "hidden_destination": null,
          "throwaway_destination": null
        },
        "guarantee": null,
        "layover": null
      }
    ],
    "id": "Sector:6bcf2535bfa74605b976d2cf1c0f7e1aa2d6bbb2~6bcf2535bfa74605b976d2cf1c0f7e1aa2d6bbb2",
    "duration": 3900
  },
  "inbound": {
    "sector_segments": [
      {
        "segment": {
          "destination": {
            "station": {
              "code": "LHR",
              "type": "AIRPORT",
              "city": {
                "name": "London",
                "id": "City:london_gb",
                "legacy_id": "london_gb"
              },
              "id": "Station:airport:LHR",
              "legacy_id": "LHR",
              "name": "Heathrow",
              "gps": {
                "lat": 51.4775,
                "lng": -0.4613889
              },
              "country": {
                "code": "GB",
                "id": "Country:GB"
              }
            },
            "local_time": "2025-12-22T17:30:00",
            "utc_time_iso": "2025-12-22T17:30:00Z"
          },
          "id": "Segment:71636e85e7dc022082765f18b97015b6be62cd83",
          "source": {
            "local_time": "2025-12-22T16:20:00",
            "utc_time_iso": "2025-12-22T16:20:00Z",
            "station": {
              "id": "Station:airport:MAN",
              "legacy_id": "MAN",
              "name": "Manchester",
              "code": "MAN",
              "type": "AIRPORT",
              "gps": {
                "lat": 53.3536111,
                "lng": -2.275
              },
              "city": {
                "legacy_id": "manchester_gb",
                "name": "Manchester",
                "id": "City:manchester_gb"
              },
              "country": {
                "code": "GB",
                "id": "Country:GB"
              }
            }
          },
          "duration": 4200,
          "type": "FLIGHT",
          "code": "1371",
          "carrier": {
            "id": "Carrier:207",
            "name": "British Airways",
            "code": "BA"
          },
          "operating_carrier": {
            "id": "Carrier:207",
            "name": "British Airways",
            "code": "BA"
          },
          "cabin_class": "ECONOMY",
          "hidden_destination": null,
          "throwaway_destination": null
        },
        "guarantee": null,
        "layover": null
      }
    ],
    "id": "Sector:71636e85e7dc022082765f18b97015b6be62cd83~71636e85e7dc022082765f18b97015b6be62cd83",
    "duration": 4200
  },
  "id": "ItineraryReturn:eyJwcm92aWRlcnMiOiJLSVdJLUJBU0lDOktJV0kiLCJyb3V0ZV9kYXRhIjoiQkE6MTM4MDpMSFI6MTc2NTgyNTUwMDpNQU46MTc2NTgyOTQwMDplY29ub215OkZhbHNlOjo6QkF8QkE6MTM3MTpNQU46MTc2NjQyMDQwMDpMSFI6MTc2NjQyNDYwMDplY29ub215OkZhbHNlOjo6QkEiLCJwcmljZSI6IjEyNSJ9",
  "share_id": "eyJyIjoiQkE6MTM4MDpMSFI6MTc2NTgyNTUwMDpNQU46MTc2NTgyOTQwMDplY29ub215OkZhbHNlOjo6QkF8QkE6MTM3MTpNQU46MTc2NjQyMDQwMDpMSFI6MTc2NjQyNDYwMDplY29ub215OkZhbHNlOjo6QkEiLCJpIjpbIjBmNjQwYTJiNGZkNTRmZGMxYTNiZWFmY18wIiwiMGY2NDBhMmI0ZmQ1NGZkYzFhM2JlYWZjXzEiXSwidGhjIjowLCJ0YXQiOjAsInZpIjowLCJ0IjoiUlQifQ==",
  "price": {
    "amount": "125",
    "price_before_discount": "125"
  },
  "price_eur": {
    "amount": "106.883284"
  },
  "provider": {
    "name": "Kiwi.com",
    "code": "KIWI-BASIC",
    "has_high_probability_of_price_change": false,
    "content_provider": null,
    "id": "ItineraryProvider:KIWI-BASIC"
  },
  "bags_info": {
    "included_checked_bags": 0,
    "included_hand_bags": 1,
    "has_no_baggage_supported": false,
    "has_no_checked_baggage": false,
    "checked_bag_tiers": [
      {
        "tier_price": {
          "amount": "105.76"
        },
        "bags": [
          {
            "weight": {
              "value": 23
            }
          }
        ]
      }
    ],
    "hand_bag_tiers": [
      {
        "tier_price": {
          "amount": "0"
        },
        "bags": [
          {
            "weight": {
              "value": 23
            }
          }
        ]
      }
    ],
    "included_personal_item": 1,
    "personal_item_tiers": [
      {
        "tier_price": {
          "amount": "0"
        },
        "bags": [
          {
            "weight": {
              "value": 23
            },
            "height": {
              "value": 30
            },
            "width": {
              "value": 15
            },
            "length": {
              "value": 40
            }
          }
        ]
      }
    ]
  },
  "booking_options": {
    "edges": [
      {
        "node": {
          "token": "HkiXZt_XIBQ-Vdh-9xXtismLvFG8-YohIQ3TsGY9GYG2rr8Rt0i2kLSdnL_wbnkbOTuSH-tlRg5wQNzKEJTucjKRUQiDx4VPHku7GBi5Fpvc_jXQKBaVQoCimOZLyYzTRf9j8HgOd9ctZiYRuT54yb9TM9VXSPktr-E-rDAHI3fHEgP1mCsPkB8pwQS0Sp2ZU7cxlWjTF5jslQfiotlWYutMiXR1VnRvH3xMeJzlqxlt2GIaltp884xDlIwgZLoIhpi4e9JXCOeig7l-ku1ozpGyDASL7W-aWb-Gm9Ydyr3gzQpy5lOTSm0s-iaxCRRHAi5bzCXxKJrbfHeB0cDYMPswI1vrTSR9MIkzwoZtkPd1yKjLofaOzYOM1FG-DsqRts8jGb0QjbgfpqU-iHX9OQRmbc43Bi2pxAGOtbUunOAOp9aF7jCgvM_jJxXTiYkc0FdqpIZkCvatDduuQwsompSsa5S0NN0TpUpcErIO9-FBuzvQanpzexQZfMDjhWsYLfbuU9UYh9X6ZNzawkEOoGZgJA6aaSp-lCVTT5HiwcNBMF2FlRXoOgg9AUpOUAr-vCyFvbC1ILHIZFhIh7-cAfxth6b1jYJM2aVBg5EDA9h39WJ_CseJYGMei-ZqFs1djX4akZXfPVOBUrfUAsDg5h70NoUhniV11TH45lzFjZvnFU0NM15A672sG4yj0i_mH3iam7oGnd8K-ju180EFop3Rv9dAIF2jh5H9A-0s1-2A-FTvu1OvifA2zLQyNfTTGVkaZMzjoTufbLQU2p1ZWtm7nkeVfv6kVg2LiBbWUckZ82-OZae-hl1wh4Ds_q85eUU960vyKRU_shAgYiseNBQsHFtRxO1p-L1H0--nK3j2lE0CCj07mXikG_mLsXPa6pK7e4wL5rRuIbRocz90Px7_QwijvN-NIe3wFQ_kufXrxAY47pDx8Dlcl2YSpdfih6Xg17I4SwHfWLIzjpgvje3kHQzXoivXcGuSXbCMarw3hO2k7uCqPGOhsQSLXx11MpPRankPcuo4PdxK6cn0TCUDULe77KhrlubqAZRCTHXrOGTV24Z71duJGb6Hg3Fbe1CVs9f0D7Mv8OMP-QzZDmJo-KEZAlQBbyIP5gEOxysVR4peVmCuYvaM9mD0onEeOAj64eRXykg0bLEMs-KvlRxxnKEllQjEk7tYdvApjjFQ=",
          "booking_url": "/en/booking/?direct=true&locale=en&currency=usd&passengers=1-0-0&token=HkiXZt_XIBQ-Vdh-9xXtismLvFG8-YohIQ3TsGY9GYG2rr8Rt0i2kLSdnL_wbnkbOTuSH-tlRg5wQNzKEJTucjKRUQiDx4VPHku7GBi5Fpvc_jXQKBaVQoCimOZLyYzTRf9j8HgOd9ctZiYRuT54yb9TM9VXSPktr-E-rDAHI3fHEgP1mCsPkB8pwQS0Sp2ZU7cxlWjTF5jslQfiotlWYutMiXR1VnRvH3xMeJzlqxlt2GIaltp884xDlIwgZLoIhpi4e9JXCOeig7l-ku1ozpGyDASL7W-aWb-Gm9Ydyr3gzQpy5lOTSm0s-iaxCRRHAi5bzCXxKJrbfHeB0cDYMPswI1vrTSR9MIkzwoZtkPd1yKjLofaOzYOM1FG-DsqRts8jGb0QjbgfpqU-iHX9OQRmbc43Bi2pxAGOtbUunOAOp9aF7jCgvM_jJxXTiYkc0FdqpIZkCvatDduuQwsompSsa5S0NN0TpUpcErIO9-FBuzvQanpzexQZfMDjhWsYLfbuU9UYh9X6ZNzawkEOoGZgJA6aaSp-lCVTT5HiwcNBMF2FlRXoOgg9AUpOUAr-vCyFvbC1ILHIZFhIh7-cAfxth6b1jYJM2aVBg5EDA9h39WJ_CseJYGMei-ZqFs1djX4akZXfPVOBUrfUAsDg5h70NoUhniV11TH45lzFjZvnFU0NM15A672sG4yj0i_mH3iam7oGnd8K-ju180EFop3Rv9dAIF2jh5H9A-0s1-2A-FTvu1OvifA2zLQyNfTTGVkaZMzjoTufbLQU2p1ZWtm7nkeVfv6kVg2LiBbWUckZ82-OZae-hl1wh4Ds_q85eUU960vyKRU_shAgYiseNBQsHFtRxO1p-L1H0--nK3j2lE0CCj07mXikG_mLsXPa6pK7e4wL5rRuIbRocz90Px7_QwijvN-NIe3wFQ_kufXrxAY47pDx8Dlcl2YSpdfih6Xg17I4SwHfWLIzjpgvje3kHQzXoivXcGuSXbCMarw3hO2k7uCqPGOhsQSLXx11MpPRankPcuo4PdxK6cn0TCUDULe77KhrlubqAZRCTHXrOGTV24Z71duJGb6Hg3Fbe1CVs9f0D7Mv8OMP-QzZDmJo-KEZAlQBbyIP5gEOxysVR4peVmCuYvaM9mD0onEeOAj64eRXykg0bLEMs-KvlRxxnKEllQjEk7tYdvApjjFQ%3D&searchType=return&searchBags=0.0",
          "tracking_pixel": "https://www.kiwi.com/pixel?affilid=skypicker&currency=USD&flightsId=0f640a2b4fd54fdc1a3beafc_0%7C0f640a2b4fd54fdc1a3beafc_1&from=LHR&lang=en&passengers=1&searchBags=0.0&to=MAN&booking_token=HkiXZt_XIBQ-Vdh-9xXtismLvFG8-YohIQ3TsGY9GYG2rr8Rt0i2kLSdnL_wbnkbOTuSH-tlRg5wQNzKEJTucjKRUQiDx4VPHku7GBi5Fpvc_jXQKBaVQoCimOZLyYzTRf9j8HgOd9ctZiYRuT54yb9TM9VXSPktr-E-rDAHI3fHEgP1mCsPkB8pwQS0Sp2ZU7cxlWjTF5jslQfiotlWYutMiXR1VnRvH3xMeJzlqxlt2GIaltp884xDlIwgZLoIhpi4e9JXCOeig7l-ku1ozpGyDASL7W-aWb-Gm9Ydyr3gzQpy5lOTSm0s-iaxCRRHAi5bzCXxKJrbfHeB0cDYMPswI1vrTSR9MIkzwoZtkPd1yKjLofaOzYOM1FG-DsqRts8jGb0QjbgfpqU-iHX9OQRmbc43Bi2pxAGOtbUunOAOp9aF7jCgvM_jJxXTiYkc0FdqpIZkCvatDduuQwsompSsa5S0NN0TpUpcErIO9-FBuzvQanpzexQZfMDjhWsYLfbuU9UYh9X6ZNzawkEOoGZgJA6aaSp-lCVTT5HiwcNBMF2FlRXoOgg9AUpOUAr-vCyFvbC1ILHIZFhIh7-cAfxth6b1jYJM2aVBg5EDA9h39WJ_CseJYGMei-ZqFs1djX4akZXfPVOBUrfUAsDg5h70NoUhniV11TH45lzFjZvnFU0NM15A672sG4yj0i_mH3iam7oGnd8K-ju180EFop3Rv9dAIF2jh5H9A-0s1-2A-FTvu1OvifA2zLQyNfTTGVkaZMzjoTufbLQU2p1ZWtm7nkeVfv6kVg2LiBbWUckZ82-OZae-hl1wh4Ds_q85eUU960vyKRU_shAgYiseNBQsHFtRxO1p-L1H0--nK3j2lE0CCj07mXikG_mLsXPa6pK7e4wL5rRuIbRocz90Px7_QwijvN-NIe3wFQ_kufXrxAY47pDx8Dlcl2YSpdfih6Xg17I4SwHfWLIzjpgvje3kHQzXoivXcGuSXbCMarw3hO2k7uCqPGOhsQSLXx11MpPRankPcuo4PdxK6cn0TCUDULe77KhrlubqAZRCTHXrOGTV24Z71duJGb6Hg3Fbe1CVs9f0D7Mv8OMP-QzZDmJo-KEZAlQBbyIP5gEOxysVR4peVmCuYvaM9mD0onEeOAj64eRXykg0bLEMs-KvlRxxnKEllQjEk7tYdvApjjFQ=",
          "itinerary_provider": {
            "code": "KIWI-BASIC",
            "name": "Kiwi.com",
            "subprovider": null,
            "has_high_probability_of_price_change": false,
            "content_provider": null,
            "provider_category": null,
            "id": "ItineraryProvider:KIWI-BASIC"
          },
          "price": {
            "amount": "125"
          },
          "price_eur": {
            "amount": "106.88"
          },
          "price_locks": {
            "price_locks_curr": [
              {
                "default": false,
                "price": {
                  "amount": "6.25",
                  "rounded_formatted_value": "$6"
                }
              },
              {
                "default": true,
                "price": {
                  "amount": "12.5",
                  "rounded_formatted_value": "$13"
                }
              },
              {
                "default": false,
                "price": {
                  "amount": "31.25",
                  "rounded_formatted_value": "$31"
                }
              }
            ],
            "price_locks_eur": [
              {
                "default": false,
                "price": {
                  "amount": "5.34",
                  "rounded_formatted_value": "5 €"
                }
              },
              {
                "default": true,
                "price": {
                  "amount": "10.69",
                  "rounded_formatted_value": "11 €"
                }
              },
              {
                "default": false,
                "price": {
                  "amount": "26.72",
                  "rounded_formatted_value": "27 €"
                }
              }
            ]
          },
          "kiwi_product": "KIWI_BASIC",
          "disruption_treatment": "NO_PROTECTION",
          "us_rules_apply": false
        }
      },
      {
        "node": {
          "token": "HD4_wbzR8oVG76Bgka71v3vpzQ1aSLQjSPzDpmE6KwIIJ1h7XP5APOqYSDeF0-9X0x0PyOoQN4T7xeqoz7CldYSucyEO1iz6L2ldJi4a2Hj_fI22IXgsX57FMwDDc3sU8ote6QKxRQCaz-1Wr5IClqIiot5eh4zGvzUojY9F7S7o1r9CE5-ls_CivAOE-nWYSp-eKdy7fE9hTkApuqVborXv3uz7gn5r-0vsIo9tp3T0xNvr2bjREpMUUHIEckHHxeUn8-b4USsW_P-o1a6aiMhSZwKWEGHkTBNuri5munjP86RB2O7MvpRdBuUOHU-Th3dV-c4MP-6hPfwnUfJp_o1eZXB6AGQeVvVCcbMjyH47glpKsJ1NYU2fSssmj9tLefLw6JQVosMMaal69EDe3A335ME1NB4a2DxuarurJMYM83JYVn8Q8KjvxveD2J5ZPFS9g1hVR_wtzRZoiMqtxAExU00LLXTdozOzAKsjRosAGpJm2syvdQ6Kg_yae4D2M6zKjLX0uJNAjkhw8KiriJxWqbfACmMMZdebHUYQDrtvDNxWGmNWfd9WYaFkbmt6rOk14B4-bW6gagjw-MsvOCZNoSO9CZn4fXt8FGA_is9jtwit4h1GPM1j5FdhAamFnBMrYBlJO0afHxJRqD3a07IbvGjUK3T20DT-1284rfszoxWFSZAbP4m2NNZ0AowHmO8cozi0kgkyyxKnjpz4qDlg2OCICoSlDeJQhw7SI9DYPq9UPOKJDqMJoAk7O5va-J5o3JD1VlJGB8pHHnRP9IRIc25nQFAn9a4sN5FyffpG4ip5VcEFd42H5j5P_4UCYYyoOdpum8zIk008hLHHsR6aHqeouD8dVJxzNJF9-aXSzP_BkU2M3t6SbpqYUrrSUXz9gt2NJljnrabHkP_3yKbNcfQjNiwL3YkzHnykUho6b0WACHXm1-61X6JouTCTS6HkNg9ehzPk9-D7zcfLg8gOAu_qwbdQCNvuTq-v2fKwQbQ5TNVSht1wZfUSMTC_Axo9ydkO_oD15EIGJkCQiW5KGrtfinWLdFVNpZYcgoMRzqWDeiazByc52L4AUk50G6fHRaoyUUY6MWgOZAIvlJGStrkXB8JuWRVHXNsqOt_iaSCTotH67k37D7xrdeUSsDE3xV9fJHs8eZM5cFZITA8ERXssocE7qbhR3EYjVwajXErqXFDM8yNmrCKEExUgc_ezgMoTov1CIfpwcqZ--3abe9jU64T_d_X3d6AiwPXel7oFCWIS_kKxO0mDTy2BbtzvW4XJjHIZgPaYkxHjm-dZSqdXSNxgpLuP5KghNHjN11ABX07uvSXqkTGG2DWYHOTZm9u6dvezoHzPf_I6tl6YLyLHdSa5N8k8YLawkMOVfAYU4PflWjuLNYC74plsu1xqNuzp1xH1yUsUgji6IiqCG-XDZuF3yPw3L6KBnrPI=",
          "booking_url": "/en/booking/?direct=true&locale=en&currency=usd&passengers=1-0-0&token=HD4_wbzR8oVG76Bgka71v3vpzQ1aSLQjSPzDpmE6KwIIJ1h7XP5APOqYSDeF0-9X0x0PyOoQN4T7xeqoz7CldYSucyEO1iz6L2ldJi4a2Hj_fI22IXgsX57FMwDDc3sU8ote6QKxRQCaz-1Wr5IClqIiot5eh4zGvzUojY9F7S7o1r9CE5-ls_CivAOE-nWYSp-eKdy7fE9hTkApuqVborXv3uz7gn5r-0vsIo9tp3T0xNvr2bjREpMUUHIEckHHxeUn8-b4USsW_P-o1a6aiMhSZwKWEGHkTBNuri5munjP86RB2O7MvpRdBuUOHU-Th3dV-c4MP-6hPfwnUfJp_o1eZXB6AGQeVvVCcbMjyH47glpKsJ1NYU2fSssmj9tLefLw6JQVosMMaal69EDe3A335ME1NB4a2DxuarurJMYM83JYVn8Q8KjvxveD2J5ZPFS9g1hVR_wtzRZoiMqtxAExU00LLXTdozOzAKsjRosAGpJm2syvdQ6Kg_yae4D2M6zKjLX0uJNAjkhw8KiriJxWqbfACmMMZdebHUYQDrtvDNxWGmNWfd9WYaFkbmt6rOk14B4-bW6gagjw-MsvOCZNoSO9CZn4fXt8FGA_is9jtwit4h1GPM1j5FdhAamFnBMrYBlJO0afHxJRqD3a07IbvGjUK3T20DT-1284rfszoxWFSZAbP4m2NNZ0AowHmO8cozi0kgkyyxKnjpz4qDlg2OCICoSlDeJQhw7SI9DYPq9UPOKJDqMJoAk7O5va-J5o3JD1VlJGB8pHHnRP9IRIc25nQFAn9a4sN5FyffpG4ip5VcEFd42H5j5P_4UCYYyoOdpum8zIk008hLHHsR6aHqeouD8dVJxzNJF9-aXSzP_BkU2M3t6SbpqYUrrSUXz9gt2NJljnrabHkP_3yKbNcfQjNiwL3YkzHnykUho6b0WACHXm1-61X6JouTCTS6HkNg9ehzPk9-D7zcfLg8gOAu_qwbdQCNvuTq-v2fKwQbQ5TNVSht1wZfUSMTC_Axo9ydkO_oD15EIGJkCQiW5KGrtfinWLdFVNpZYcgoMRzqWDeiazByc52L4AUk50G6fHRaoyUUY6MWgOZAIvlJGStrkXB8JuWRVHXNsqOt_iaSCTotH67k37D7xrdeUSsDE3xV9fJHs8eZM5cFZITA8ERXssocE7qbhR3EYjVwajXErqXFDM8yNmrCKEExUgc_ezgMoTov1CIfpwcqZ--3abe9jU64T_d_X3d6AiwPXel7oFCWIS_kKxO0mDTy2BbtzvW4XJjHIZgPaYkxHjm-dZSqdXSNxgpLuP5KghNHjN11ABX07uvSXqkTGG2DWYHOTZm9u6dvezoHzPf_I6tl6YLyLHdSa5N8k8YLawkMOVfAYU4PflWjuLNYC74plsu1xqNuzp1xH1yUsUgji6IiqCG-XDZuF3yPw3L6KBnrPI%3D&searchType=return&searchBags=0.0",
          "tracking_pixel": "https://www.kiwi.com/pixel?affilid=skypicker&currency=USD&flightsId=0f640a2b4fd54fdc1a3beafc_0%7C0f640a2b4fd54fdc1a3beafc_1&from=LHR&lang=en&passengers=1&searchBags=0.0&to=MAN&booking_token=HD4_wbzR8oVG76Bgka71v3vpzQ1aSLQjSPzDpmE6KwIIJ1h7XP5APOqYSDeF0-9X0x0PyOoQN4T7xeqoz7CldYSucyEO1iz6L2ldJi4a2Hj_fI22IXgsX57FMwDDc3sU8ote6QKxRQCaz-1Wr5IClqIiot5eh4zGvzUojY9F7S7o1r9CE5-ls_CivAOE-nWYSp-eKdy7fE9hTkApuqVborXv3uz7gn5r-0vsIo9tp3T0xNvr2bjREpMUUHIEckHHxeUn8-b4USsW_P-o1a6aiMhSZwKWEGHkTBNuri5munjP86RB2O7MvpRdBuUOHU-Th3dV-c4MP-6hPfwnUfJp_o1eZXB6AGQeVvVCcbMjyH47glpKsJ1NYU2fSssmj9tLefLw6JQVosMMaal69EDe3A335ME1NB4a2DxuarurJMYM83JYVn8Q8KjvxveD2J5ZPFS9g1hVR_wtzRZoiMqtxAExU00LLXTdozOzAKsjRosAGpJm2syvdQ6Kg_yae4D2M6zKjLX0uJNAjkhw8KiriJxWqbfACmMMZdebHUYQDrtvDNxWGmNWfd9WYaFkbmt6rOk14B4-bW6gagjw-MsvOCZNoSO9CZn4fXt8FGA_is9jtwit4h1GPM1j5FdhAamFnBMrYBlJO0afHxJRqD3a07IbvGjUK3T20DT-1284rfszoxWFSZAbP4m2NNZ0AowHmO8cozi0kgkyyxKnjpz4qDlg2OCICoSlDeJQhw7SI9DYPq9UPOKJDqMJoAk7O5va-J5o3JD1VlJGB8pHHnRP9IRIc25nQFAn9a4sN5FyffpG4ip5VcEFd42H5j5P_4UCYYyoOdpum8zIk008hLHHsR6aHqeouD8dVJxzNJF9-aXSzP_BkU2M3t6SbpqYUrrSUXz9gt2NJljnrabHkP_3yKbNcfQjNiwL3YkzHnykUho6b0WACHXm1-61X6JouTCTS6HkNg9ehzPk9-D7zcfLg8gOAu_qwbdQCNvuTq-v2fKwQbQ5TNVSht1wZfUSMTC_Axo9ydkO_oD15EIGJkCQiW5KGrtfinWLdFVNpZYcgoMRzqWDeiazByc52L4AUk50G6fHRaoyUUY6MWgOZAIvlJGStrkXB8JuWRVHXNsqOt_iaSCTotH67k37D7xrdeUSsDE3xV9fJHs8eZM5cFZITA8ERXssocE7qbhR3EYjVwajXErqXFDM8yNmrCKEExUgc_ezgMoTov1CIfpwcqZ--3abe9jU64T_d_X3d6AiwPXel7oFCWIS_kKxO0mDTy2BbtzvW4XJjHIZgPaYkxHjm-dZSqdXSNxgpLuP5KghNHjN11ABX07uvSXqkTGG2DWYHOTZm9u6dvezoHzPf_I6tl6YLyLHdSa5N8k8YLawkMOVfAYU4PflWjuLNYC74plsu1xqNuzp1xH1yUsUgji6IiqCG-XDZuF3yPw3L6KBnrPI=",
          "itinerary_provider": {
            "code": "KIWI",
            "name": "Kiwi.com",
            "subprovider": null,
            "has_high_probability_of_price_change": false,
            "content_provider": {
              "code": "KIWI"
            },
            "provider_category": null,
            "id": "ItineraryProvider:KIWI"
          },
          "price": {
            "amount": "143"
          },
          "price_eur": {
            "amount": "122.27"
          },
          "price_locks": {
            "price_locks_curr": [
              {
                "default": false,
                "price": {
                  "amount": "7.15",
                  "rounded_formatted_value": "$7"
                }
              },
              {
                "default": true,
                "price": {
                  "amount": "14.3",
                  "rounded_formatted_value": "$14"
                }
              },
              {
                "default": false,
                "price": {
                  "amount": "35.75",
                  "rounded_formatted_value": "$36"
                }
              }
            ],
            "price_locks_eur": [
              {
                "default": false,
                "price": {
                  "amount": "6.11",
                  "rounded_formatted_value": "6 €"
                }
              },
              {
                "default": true,
                "price": {
                  "amount": "12.23",
                  "rounded_formatted_value": "12 €"
                }
              },
              {
                "default": false,
                "price": {
                  "amount": "30.57",
                  "rounded_formatted_value": "31 €"
                }
              }
            ]
          },
          "kiwi_product": "KIWI_GUARANTEE",
          "disruption_treatment": "DISRUPTION_PROTECTION",
          "us_rules_apply": null
        }
      }
    ]
  },
  "travel_hack": {
    "is_true_hidden_city": false,
    "is_virtual_interlining": false,
    "is_throwaway_ticket": false
  },
  "is_vanilla": true,
  "duration": 8100,
  "pnr_count": 1,
  "legacy_id": "0f640a2b4fd54fdc1a3beafc_0-0f640a2b4fd54fdc1a3beafc_1",
  "stopover": {
    "nights_count": 7,
    "arrival": {
      "type": "AIRPORT",
      "city": {
        "name": "Manchester",
        "id": "City:manchester_gb"
      },
      "id": "Station:airport:MAN"
    },
    "departure": {
      "type": "AIRPORT",
      "city": {
        "name": "Manchester",
        "id": "City:manchester_gb"
      },
      "id": "Station:airport:MAN"
    },
    "duration": 9850
  },
  "last_available": {
    "seats_left": 9
  },
  "is_ryanair": false,
  "benefits_data": {
    "automatic_checkin_available": true,
    "instant_chat_support_available": true,
    "disruption_protection_available": true,
    "guarantee_available": true,
    "guarantee_fee": {
      "rounded_amount": "18"
    },
    "guarantee_fee_eur": {
      "amount": "15.391192"
    },
    "search_reference_price": {
      "rounded_amount": "125"
    }
  },
  "is_air_baggage_bundle_eligible": null,
  "from_url": "https://www.kiwi.com/en/search/results/london-united-kingdom/manchester-united-kingdom"
}, // ... Many other Flight details
] 
```

The scraper returns structured flight data with the following comprehensive fields:

**Outbound/Inbound**: Flight direction indicators crucial for understanding round-trip vs one-way journeys. Outbound refers to the departure flight, while Inbound indicates return flights in round-trip bookings.

**ID & Share ID**: Unique identifiers for each flight option. The ID serves as the primary identifier for the specific flight combination, while Share ID enables sharing or referencing the flight option within Kiwi.com's system.

**Price & Price EUR**: Original currency price and standardized Euro equivalent. This dual pricing format allows for easy comparison across different markets and currencies, essential for international travel analysis.

**Provider**: Indicates the booking source or airline provider. This field helps identify whether the flight is bookable directly through the carrier or requires Kiwi.com's virtual interlining service.

**Bags Info**: Detailed baggage allowance and pricing information. Given that many low-cost carriers have complex baggage policies, this field provides crucial cost transparency for complete trip pricing analysis.

**Booking Options**: Available booking channels and methods. This indicates whether the flight can be booked instantly online, requires phone confirmation, or has other booking restrictions.

**Travel Hack**: Identifies special booking techniques like hidden city ticketing or throwaway ticketing. Kiwi.com offers unique search options and travel hacks including self-transfer, hidden cities ticketing, and throwaway ticketing, making this field valuable for understanding unconventional booking strategies.

**Is Vanilla**: Boolean indicator for straightforward, traditional flight bookings versus complex multi-carrier combinations. Vanilla flights are typically easier to manage and have fewer connection risks.

**Duration**: Total journey time including layovers. Critical for evaluating flight convenience and planning connection times, especially important for virtual interlining connections.

**PNR Count**: Number of separate booking records required. Multiple PNRs indicate separate tickets that passengers must manage independently, affecting rebooking and refund policies.

**Stopover**: Information about intermediate airports and layover duration. Essential for understanding journey complexity and connection feasibility.

**Last Available**: Timestamp indicating when the fare was last confirmed available. Important for dynamic pricing analysis and booking urgency assessment.

**Is Ryanair**: Specific flag for Ryanair flights. Given Ryanair's 2024 partnership with Kiwi.com, this field helps identify flights from this major European low-cost carrier with its specific terms and conditions.

**Benefits Data**: Additional perks or services included with the booking. This might include priority boarding, seat selection, or other value-added services that affect total trip value.

**Is Air Baggage Bundle Eligible**: Indicates if bundled baggage options are available. This field helps identify cost-saving opportunities for travelers with luggage needs.

### Usage Guidelines

To effectively use the Kiwi.com Flight Scraper, start by constructing proper search URLs. Visit Kiwi.com manually and perform your desired searches, then copy the resulting URLs into the input configuration. Ensure your URLs include specific origin-destination pairs rather than generic search pages.

Configure proxy settings appropriately for your target market. Using residential proxies from the same country as your search destination helps ensure accurate local pricing and availability. Set reasonable retry limits and item counts to balance data completeness with scraping efficiency.

Monitor output quality by checking for consistent data across similar routes. If certain fields frequently return empty values, consider adjusting the `max_retries_per_url` parameter or implementing delays between requests. For large-scale operations, implement rate limiting to avoid overwhelming Kiwi.com's servers.

Common troubleshooting includes handling dynamic content loading issues, managing proxy rotation for large datasets, and dealing with Kiwi.com's anti-bot measures. Always respect the website's terms of service and consider reaching out for API access if your usage volume is substantial.

### Benefits and Applications

The Kiwi.com Flight Scraper delivers significant time savings by automating what would otherwise require manual checking of hundreds of flight combinations. For travel agencies, this enables rapid competitive analysis and dynamic pricing strategies. Market researchers gain access to comprehensive data about route availability, pricing trends, and carrier competition across unconventional flight paths.

Real-world applications include building automated price monitoring systems, conducting academic research on aviation markets, developing travel recommendation engines, and analyzing the impact of virtual interlining on flight accessibility. The detailed baggage and booking information enables total cost of ownership analysis, while travel hack indicators provide insights into alternative booking strategies.

The business value extends to revenue optimization for travel companies, cost savings for corporate travel managers, and enhanced customer service through better flight option awareness. The comprehensive metadata captured by this scraper provides competitive intelligence that manual research cannot efficiently achieve.

### Conclusion

The Kiwi.com Flight Scraper transforms manual flight research into automated, comprehensive data collection. By extracting detailed information from one of the world's most innovative flight booking platforms, it provides valuable insights into modern aviation pricing and availability. Whether you're building travel applications, conducting market research, or optimizing business travel costs, this scraper delivers the structured data needed for informed decision-making in today's complex flight booking landscape.

## Your feedback

We are always working to improve Actors' performance. So, if you have any technical feedback about kiwi.com Flight Search Scraper or simply found a bug, please create an issue on the Actor's Issues tab in Apify Console.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the flug list page urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `max_items_per_url` (type: `integer`):

Limit the number of items per URL you want to scrape

## `max_retries_per_url` (type: `integer`):

Limit the number of retries for each URL if the scrape is detected as a bot or the page fails to load

## `proxy` (type: `object`):

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "urls": [
    "https://www.kiwi.com/en/search/results/london-united-kingdom/manchester-united-kingdom"
  ],
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.kiwi.com/en/search/results/london-united-kingdom/manchester-united-kingdom"
    ],
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ecomscrape/kiwi-flight-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.kiwi.com/en/search/results/london-united-kingdom/manchester-united-kingdom"],
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ecomscrape/kiwi-flight-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.kiwi.com/en/search/results/london-united-kingdom/manchester-united-kingdom"
  ],
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ecomscrape/kiwi-flight-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ecomscrape/kiwi-flight-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Kiwi Flight Search Scraper",
        "description": "Extract comprehensive flight data from Kiwi.com's virtual interlining platform. Access prices, routes, airlines, and booking options from 750+ carriers worldwide. Perfect for travel businesses, price comparison, and market research with detailed output including price, duration, and booking data.",
        "version": "0.0",
        "x-build-id": "83A6CeiauFQ1yI5q6"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ecomscrape~kiwi-flight-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ecomscrape-kiwi-flight-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/ecomscrape~kiwi-flight-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-ecomscrape-kiwi-flight-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/ecomscrape~kiwi-flight-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-ecomscrape-kiwi-flight-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the flug list page urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the flug list page urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "max_items_per_url": {
                        "title": "Limit the number of items per URL",
                        "type": "integer",
                        "description": "Limit the number of items per URL you want to scrape"
                    },
                    "max_retries_per_url": {
                        "title": "Limit the number of retries for each URL",
                        "type": "integer",
                        "description": "Limit the number of retries for each URL if the scrape is detected as a bot or the page fails to load"
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your scraper."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
