{
  "openapi": "3.0.1",
  "info": {
    "title": "eSIMDB Scraper",
    "description": "[💰 $2.00 / 1K] Extract eSIM data plans from esimdb.com — prices, data allowance, validity, coverage, 5G, tethering, and promo codes. Filter by 24 named brands across 37 destinations, or leave providers empty to pull every brand eSIMDB lists (160+).",
    "version": "1.0",
    "x-build-id": "4zeQxBXIHdx2aaiLg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~esimdb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-esimdb-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/solidcode~esimdb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-esimdb-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/solidcode~esimdb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-esimdb-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": {
          "countries": {
            "title": "Countries",
            "uniqueItems": true,
            "type": "array",
            "description": "Pick one or more destinations to compare eSIM plans for. Leave empty and select one or more Providers below to pull that brand's entire catalog across every destination. Leave both empty and the scraper defaults to the United States. Example: choose 'United States' and 'Japan' to get every eSIM plan available for those destinations.",
            "items": {
              "type": "string",
              "enum": [
                "usa",
                "uk",
                "france",
                "spain",
                "italy",
                "germany",
                "greece",
                "portugal",
                "netherlands",
                "switzerland",
                "austria",
                "ireland",
                "turkey",
                "japan",
                "china",
                "thailand",
                "vietnam",
                "malaysia",
                "singapore",
                "indonesia",
                "philippines",
                "south-korea",
                "india",
                "hong-kong",
                "taiwan",
                "canada",
                "mexico",
                "brazil",
                "argentina",
                "australia",
                "new-zealand",
                "uae",
                "saudi-arabia",
                "israel",
                "egypt",
                "morocco",
                "south-africa"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "France",
                "Spain",
                "Italy",
                "Germany",
                "Greece",
                "Portugal",
                "Netherlands",
                "Switzerland",
                "Austria",
                "Ireland",
                "Turkey",
                "Japan",
                "China",
                "Thailand",
                "Vietnam",
                "Malaysia",
                "Singapore",
                "Indonesia",
                "Philippines",
                "South Korea",
                "India",
                "Hong Kong",
                "Taiwan",
                "Canada",
                "Mexico",
                "Brazil",
                "Argentina",
                "Australia",
                "New Zealand",
                "United Arab Emirates",
                "Saudi Arabia",
                "Israel",
                "Egypt",
                "Morocco",
                "South Africa"
              ]
            },
            "default": []
          },
          "providers": {
            "title": "Providers",
            "uniqueItems": true,
            "type": "array",
            "description": "Limit results to specific eSIM brands (e.g. Airalo, Nomad, Saily, Ubigi). Leave empty to include every provider. Combine with Countries to get a single brand's plans for a destination — or use providers alone to pull a brand's entire global catalog (can be several thousand plans).",
            "items": {
              "type": "string",
              "enum": [
                "airalo",
                "nomad",
                "saily",
                "ubigi",
                "gigsky",
                "truphone",
                "yesim",
                "bnesim",
                "airhub",
                "esimplus",
                "globalesim",
                "billionconnect",
                "breeze",
                "bytesim",
                "chillaxsim",
                "esim4travel",
                "alosim",
                "jetpac",
                "gomoworld",
                "roamless",
                "instabridge",
                "simoptions",
                "mobimatter",
                "etravelsim"
              ],
              "enumTitles": [
                "Airalo",
                "Nomad",
                "Saily",
                "Ubigi",
                "GigSky",
                "Truphone",
                "Yesim",
                "BNESIM",
                "Airhub",
                "eSIMplus",
                "GlobaleSIM",
                "Billion Connect",
                "Breeze",
                "ByteSIM",
                "ChillaxSIM",
                "eSIM4Travel",
                "aloSIM",
                "Jetpac",
                "GoMoWorld",
                "Roamless",
                "Instabridge",
                "SimOptions",
                "MobiMatter",
                "EtravelSIM"
              ]
            },
            "default": []
          },
          "minData": {
            "title": "Minimum Data (GB)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include plans that give you at least this much data in total, in GB. Per-day plans are measured across their whole validity, so a 1 GB/day plan valid for 30 days counts as 30 GB and a 0.5 GB/day plan valid for 3 days (1.5 GB) is excluded. Truly unlimited plans have no ceiling, so they always qualify. Leave at 0 for no minimum.",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum Price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include plans priced at or below this amount in US dollars. Leave at 0 for no price cap.",
            "default": 0
          },
          "minValidityDays": {
            "title": "Minimum Validity (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include plans valid for at least this many days. Plans that never expire have no end date, so they always qualify. Leave at 0 for no minimum.",
            "default": 0
          },
          "only5G": {
            "title": "5G Plans Only",
            "type": "boolean",
            "description": "When enabled, only include plans that support 5G networks.",
            "default": false
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "JPY",
              "AUD",
              "CAD"
            ],
            "type": "string",
            "description": "Preferred currency for the headline price. A plan uses it when the provider publishes a price in that currency, and stays in US dollars otherwise — prices are always the provider's own, never an estimated conversion. The 'currency' field on each result names the one actually used, and 'usdPrice' is filled on every plan. Outside US dollars, coverage is partial: euro prices appear on roughly a fifth of the catalogue, less for the others.",
            "default": "USD"
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on the total number of plans returned across everything you selected — this is also the maximum you can be billed for, since each plan is one result. It is a ceiling, not a promise: each plan is returned once even when it covers several of the destinations you picked, so a narrow selection can run out of distinct plans and finish under the cap — you are billed only for what came back. Pick several destinations and the cap is split evenly between them, so every destination you chose is represented. Set to 0 for no limit (returns every matching plan). Note: 0 = unlimited can return many thousands of billable plans and take much longer, especially with broad country or provider selections (a single destination can hold over 10,000 plans, and a providers-only run scans all 37 destinations). Start small (e.g. 100) to test before scaling up.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}