{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/esimfly-net/json-schema/esimfly-net-get-esims-packages-response-schema.json",
  "title": "GetEsimsPackagesResponse",
  "x-generated": "2026-11-07",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/esimfly-net-openapi-generated.yml#/components/schemas/GetEsimsPackagesResponse",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "description": "Indicates request success"
    },
    "data": {
      "type": "object",
      "description": "Payload containing packages and pagination"
    },
    "data.packages": {
      "type": "array",
      "description": "List of Package objects"
    },
    "data.packages[].package_code": {
      "type": "string",
      "description": "Opaque unique package identifier"
    },
    "data.packages[].name": {
      "type": "string",
      "description": "Package display name"
    },
    "data.packages[].region": {
      "type": "string",
      "description": "Region or country name"
    },
    "data.packages[].type": {
      "type": "string",
      "description": "\"local\"|\"regional\"|\"global\"|\"enterprise\""
    },
    "data.packages[].data_amount_gb": {
      "type": "number",
      "description": "Data allowance in GB"
    },
    "data.packages[].validity_days": {
      "type": "integer",
      "description": "Validity period in days"
    },
    "data.packages[].cost": {
      "type": "number",
      "description": "Your cost price in the account currency"
    },
    "data.packages[].currency": {
      "type": "string",
      "description": "Currency code (USD, IQD, EUR)"
    },
    "data.packages[].features": {
      "type": "object",
      "description": "Package features"
    },
    "data.packages[].features.voice_minutes": {
      "type": "integer",
      "description": "Voice minutes included"
    },
    "data.packages[].features.sms_count": {
      "type": "integer",
      "description": "SMS count included"
    },
    "data.packages[].features.is_rechargeable": {
      "type": "boolean",
      "description": "Whether package can be recharged"
    },
    "data.packages[].is_unlimited": {
      "type": "boolean",
      "description": "Unlimited data flag"
    },
    "data.packages[].has_voice": {
      "type": "boolean",
      "description": "Has voice minutes included"
    },
    "data.packages[].has_sms": {
      "type": "boolean",
      "description": "Has SMS included"
    },
    "data.packages[].countries": {
      "type": "array",
      "description": "ISO country codes covered (optional)"
    },
    "data.packages[].locationNetworkList": {
      "type": "array",
      "description": "Detailed network coverage by location"
    },
    "data.packages[].networks": {
      "type": "array",
      "description": "Raw per-network coverage rows (optional)"
    },
    "data.pagination": {
      "type": "object",
      "description": "Pagination info"
    },
    "data.pagination.page": {
      "type": "integer",
      "description": "Current page"
    },
    "data.pagination.limit": {
      "type": "integer",
      "description": "Page size"
    },
    "data.pagination.total": {
      "type": "integer",
      "description": "Total number of packages"
    },
    "data.pagination.total_pages": {
      "type": "integer",
      "description": "Total pages available"
    }
  }
}