{
  "openapi": "3.0.1",
  "info": {
    "title": "Mobile Plans Tracker: SIM-Only & Prepaid Plan Prices",
    "description": "Compare mobile plans, SIM-only and prepaid plans from carriers in Malaysia, Singapore and Australia: normalized monthly prices (also in USD), data in GB, 5G, contracts, and the price and data changes since your last run.",
    "version": "0.1",
    "x-build-id": "lTVLGgAKapUKKnl5e"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/messnomore~mobile-plans-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-messnomore-mobile-plans-tracker",
        "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/messnomore~mobile-plans-tracker/runs": {
      "post": {
        "operationId": "runs-sync-messnomore-mobile-plans-tracker",
        "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/messnomore~mobile-plans-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-messnomore-mobile-plans-tracker",
        "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",
            "type": "array",
            "description": "Check every preset carrier in these countries. Leave empty to check only the carriers or URLs below.",
            "items": {
              "type": "string",
              "enum": [
                "MY",
                "SG",
                "AU"
              ],
              "enumTitles": [
                "Malaysia",
                "Singapore",
                "Australia"
              ]
            },
            "default": [
              "MY",
              "SG",
              "AU"
            ]
          },
          "carriers": {
            "title": "Carriers",
            "type": "array",
            "description": "Check only these preset carriers (overrides Countries). Leave empty to use Countries.",
            "items": {
              "type": "string",
              "enum": [
                "my-tunetalk",
                "my-redone",
                "my-umobile",
                "sg-simba",
                "sg-circles",
                "sg-zero1",
                "au-amaysim",
                "au-coles",
                "au-telstra",
                "au-vodafone",
                "au-felix",
                "au-lebara"
              ],
              "enumTitles": [
                "Tune Talk (MY)",
                "redONE (MY)",
                "U Mobile (MY)",
                "SIMBA (SG)",
                "Circles.Life (SG)",
                "Zero1 (SG)",
                "amaysim (AU)",
                "Coles Mobile (AU)",
                "Telstra (AU)",
                "Vodafone (AU)",
                "Felix Mobile (AU)",
                "Lebara (AU)"
              ]
            },
            "default": []
          },
          "planTypes": {
            "title": "Plan types",
            "type": "array",
            "description": "Postpaid, prepaid and SIM-only (no phone, no lock-in) plans.",
            "items": {
              "type": "string",
              "enum": [
                "postpaid",
                "prepaid",
                "sim_only"
              ],
              "enumTitles": [
                "Postpaid",
                "Prepaid",
                "SIM-only"
              ]
            },
            "default": [
              "postpaid",
              "prepaid",
              "sim_only"
            ]
          },
          "compareWithPrevious": {
            "title": "Compare with my previous run",
            "type": "boolean",
            "description": "Label every plan as new, removed, price up/down, data up/down, promo changed or unchanged since your previous run. Your first run compares with the previous weekly check.",
            "default": true
          },
          "onlyChanged": {
            "title": "Only output changed plans",
            "type": "boolean",
            "description": "Skip unchanged plans. You are charged only for the plans in the output, and carriers without changes are not charged.",
            "default": false
          },
          "carrierUrls": {
            "title": "Custom carrier URLs",
            "type": "array",
            "description": "Public plan pages of other carriers, read with AI. One site counts as one carrier (up to 3 pages per site). Up to 10 URLs per run (3 on the free Apify plan). Pages must show their plans without JavaScript. Login, checkout and account pages are not supported.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxPlans": {
            "title": "Maximum plans in the output",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Caps the output (and your cost). The 12 preset carriers have about 120 plans in total.",
            "default": 1000
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}