{
  "openapi": "3.0.1",
  "info": {
    "title": "AU Mobile Coverage — phone signal: Telstra, Optus, Vodafone/TPG",
    "description": "Carrier-predicted outdoor mobile coverage in Australia (ACMA 2026 grades: Good / Moderate / Basic / No Coverage) for Telstra, Optus and TPG/Vodafone, 4G and 5G (TPG with dBm), at coordinates or resampled along a route — with a per-carrier summary of where the phones drop out.",
    "version": "0.5",
    "x-build-id": "xl7q88P5AC8e9fLkp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/davidar~au-mobile-coverage/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-davidar-au-mobile-coverage",
        "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/davidar~au-mobile-coverage/runs": {
      "post": {
        "operationId": "runs-sync-davidar-au-mobile-coverage",
        "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/davidar~au-mobile-coverage/run-sync": {
      "post": {
        "operationId": "run-sync-davidar-au-mobile-coverage",
        "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": {
          "points": {
            "title": "Points",
            "type": "array",
            "description": "Places to check mobile reception at (a house, campsite, caravan park, work site): one row per point with each carrier's predicted 4G/5G grade. Objects `{\"lat\": -27.4648, \"lng\": 153.0190, \"id\": \"brisbane-roma-st\"}` (`lon`/`latitude`/`longitude` also accepted), or `{\"address\": \"12 Smith St, Fitzroy VIC 3065\", \"id\": \"smith-st\"}` to have the address geocoded for you (see Addresses). `id` is optional and echoed back for joining. Australia only. Up to 5000 points per run including route samples.",
            "items": {
              "type": "object"
            }
          },
          "addresses": {
            "title": "Addresses",
            "type": "array",
            "description": "Street addresses or place names to check phone signal at, one per line (`\"12 Smith St, Fitzroy VIC 3065\"`, `\"Coonabarabran NSW\"`). Each is geocoded through the Directions, Routing & Distance Matrix API actor (davidar/openstreetmap-directions-api) under your account — $0.001 per address on that actor, nothing for an address it cannot place — then graded like a point; the row carries the address and the matched place. Australia only; up to 1000 per run. Paid Apify plans only (the free tier has no geocoder: pass `points` with coordinates instead). To keep your own ids, use `points` objects with `address` and `id`.",
            "items": {
              "type": "string"
            }
          },
          "origin": {
            "title": "Origin",
            "type": "string",
            "description": "Where the road trip or drive starts, when you want the route computed for you: a place name or address (`\"Brisbane QLD\"`, `\"Roma St, Brisbane\"`) or `\"lat,lng\"` (`\"-27.4648,153.019\"`, latitude first). Needs `destination`. The route is computed by the Directions, Routing & Distance Matrix API actor (davidar/openstreetmap-directions-api), run under your account: its per-route ($0.003) and per-place-name ($0.001) charges appear on that actor in your billing, not on this one. Free Apify plans get its community-router tier: coordinates only, car only. `polyline` and `coordinates` take precedence when given."
          },
          "destination": {
            "title": "Destination",
            "type": "string",
            "description": "Where the drive ends: a place name or address, or `\"lat,lng\"` (latitude first). Needs `origin`. Routed by the Directions, Routing & Distance Matrix API actor (davidar/openstreetmap-directions-api) under your account — see Origin for what that costs."
          },
          "waypoints": {
            "title": "Waypoints",
            "type": "array",
            "description": "Stops to route through between origin and destination, in order, so coverage is checked on the road you will actually drive (the router takes the shortest road, not necessarily the highway). Each is a string: a place name (`\"Gilgandra NSW\"`) or `\"lat,lng\"`, like origin and destination. Optional, up to 18. Each place name is one geocode charge on the routing actor.",
            "items": {
              "type": "string"
            }
          },
          "profile": {
            "title": "Travel mode",
            "enum": [
              "car",
              "bike",
              "foot",
              "truck",
              "motorcycle",
              "scooter",
              "bus",
              "taxi"
            ],
            "type": "string",
            "description": "How the origin/destination route is travelled, which decides the roads it takes: one of the values below, default `car`. The free-plan community router serves `car` only.",
            "default": "car"
          },
          "polyline": {
            "title": "Route polyline",
            "type": "string",
            "description": "Your own route, if you already have directions from another API: an encoded polyline string (Google Directions `overview_polyline.points`, OSRM, Mapbox, Valhalla). Resampled every `stepKm`; each sample becomes a row with `routeKm`. Pass the directions polyline, not your own sampled points. Takes precedence over `coordinates` and origin/destination; can be combined with `points`."
          },
          "polylinePrecision": {
            "title": "Polyline precision",
            "minimum": 5,
            "maximum": 6,
            "type": "integer",
            "description": "Decoding precision of `polyline`, set by the service that produced it: 5 for Google Directions and OSRM's default; 6 for Mapbox Directions, Valhalla and OSRM `polyline6`.",
            "default": 5
          },
          "coordinates": {
            "title": "Route coordinates",
            "type": "array",
            "description": "Your own route as a list of vertices, instead of a polyline: `[lat, lng]` number pairs, latitude first (the same order as origin/destination), e.g. `[[-27.4648, 153.019], [-28.55, 150.31]]`. Pass the road geometry: vertices are joined by straight lines. A pair in GeoJSON `[lng, lat]` order is refused with a hint, never swapped for you. Ignored when `polyline` is set; takes precedence over origin/destination.",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          "stepKm": {
            "title": "Sample spacing (km)",
            "minimum": 0.1,
            "maximum": 500,
            "type": "number",
            "description": "How often to check coverage along the route, in km between samples (each sample is one row and one charge). The carriers' models are 100 m grids; 5 km catches town/scrub transitions on a highway, 1 km is thorough. Points per run are capped at 5000.",
            "default": 5
          },
          "carriers": {
            "title": "Carriers",
            "type": "array",
            "description": "Which mobile networks to grade, as a list of these values. `telstra` = Telstra retail network (Telstra, Boost). `optus` = Optus network (Optus, amaysim, Coles Mobile…). `tpg` = TPG Telecom / Vodafone network (Vodafone, TPG, iiNet, Kogan, Lebara, felix…), the only one that also returns predicted signal strength in dBm. `telstra_wholesale` = Telstra's MVNO footprint (ALDI Mobile, Belong, Woolworths, Tangerine…), smaller than retail. Default: telstra, optus, tpg. Grades are carrier predictions, outdoor at ground level, not measurements.",
            "items": {
              "type": "string",
              "enum": [
                "telstra",
                "optus",
                "tpg",
                "telstra_wholesale"
              ],
              "enumTitles": [
                "Telstra (retail, incl. Boost)",
                "Optus",
                "Vodafone / TPG (with dBm)",
                "Telstra wholesale (ALDI, Belong, other MVNOs)"
              ]
            },
            "default": [
              "telstra",
              "optus",
              "tpg"
            ]
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many points are checked in parallel (1–8, default 4); leave it unless a run is slow. The carriers' checkers are unofficial shared endpoints; requests per host are capped regardless of this value (Telstra and TPG 2 in flight, ≥120 ms apart; Optus tiles 4).",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}