{
  "openapi": "3.0.1",
  "info": {
    "title": "Fuel Prices France, Spain & Portugal: Gas Stations",
    "description": "Live fuel prices at every petrol station in France, Spain and Portugal from official government feeds. Diesel, petrol 95, E10, 98, LPG and more in EUR per litre, one schema. Search by radius, get the cheapest stations, or run a change-only price feed for fleets.",
    "version": "0.1",
    "x-build-id": "Ygw7ke0gXShq5Z7wN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maliksaid~europe-fuel-prices/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maliksaid-europe-fuel-prices",
        "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/maliksaid~europe-fuel-prices/runs": {
      "post": {
        "operationId": "runs-sync-maliksaid-europe-fuel-prices",
        "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/maliksaid~europe-fuel-prices/run-sync": {
      "post": {
        "operationId": "run-sync-maliksaid-europe-fuel-prices",
        "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": "Countries to collect. Leave empty to collect France, Spain and Portugal.",
            "items": {
              "type": "string",
              "enum": [
                "FR",
                "ES",
                "PT"
              ],
              "enumTitles": [
                "France",
                "Spain",
                "Portugal"
              ]
            },
            "default": [
              "FR",
              "ES",
              "PT"
            ]
          },
          "fuelTypes": {
            "title": "Fuel types",
            "type": "array",
            "description": "Keep only these fuel types, mapped to one standard name across the three countries. Stations that sell none of them are skipped. Leave empty to keep every fuel. The first fuel type is also the one Cheapest stations sorts by.",
            "items": {
              "type": "string",
              "enum": [
                "diesel",
                "diesel_premium",
                "petrol_95",
                "petrol_95_e10",
                "petrol_95_premium",
                "petrol_98",
                "petrol_98_e10",
                "petrol_98_premium",
                "e85",
                "lpg",
                "cng",
                "lng",
                "biodiesel",
                "renewable_diesel",
                "agricultural_diesel",
                "adblue",
                "hydrogen"
              ],
              "enumTitles": [
                "Diesel (B7): FR Gazole, ES Gasóleo A, PT Gasóleo simples",
                "Premium diesel: ES Gasóleo Premium, PT Gasóleo especial",
                "Petrol 95 E5: FR SP95, ES Gasolina 95 E5, PT Gasolina simples 95",
                "Petrol 95 E10: FR E10, ES Gasolina 95 E10",
                "Premium petrol 95: ES 95 E5 Premium, PT Gasolina especial 95",
                "Petrol 98: FR SP98, ES Gasolina 98 E5, PT Gasolina 98",
                "Petrol 98 E10: ES Gasolina 98 E10",
                "Premium petrol 98: PT Gasolina especial 98",
                "E85 bioethanol: FR E85, ES Gasolina 95 E85",
                "LPG autogas: FR GPLc, ES GLP, PT GPL Auto",
                "CNG, per kg: ES, PT",
                "LNG, per kg: ES, PT",
                "Biodiesel: ES Biodiesel, PT Biodiesel B15",
                "Renewable diesel (HVO): ES",
                "Agricultural or red diesel: ES Gasóleo B, PT Gasóleo colorido",
                "AdBlue: ES",
                "Hydrogen, per kg: ES"
              ]
            },
            "default": []
          },
          "latitude": {
            "title": "Latitude",
            "type": "string",
            "description": "Optional search point, in decimal degrees. Example: 40.4168 for Madrid. Set it together with longitude."
          },
          "longitude": {
            "title": "Longitude",
            "type": "string",
            "description": "Optional search point, in decimal degrees. Example: -3.7038 for Madrid. West of Greenwich is negative."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Keep stations within this distance of the search point. Used only when latitude and longitude are set. Results are sorted nearest first.",
            "default": 10
          },
          "cheapestN": {
            "title": "Cheapest stations",
            "minimum": 0,
            "type": "integer",
            "description": "Return only the N cheapest stations for the first selected fuel type (diesel when no fuel type is selected). 0 turns this off.",
            "default": 0
          },
          "maxPriceAgeDays": {
            "title": "Maximum price age (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop prices that the station has not updated for more than this many days. Some stations keep old prices for months. 0 keeps every price.",
            "default": 0
          },
          "includeRestricted": {
            "title": "Include restricted stations (Spain)",
            "type": "boolean",
            "description": "Spain also lists stations that sell only to members or fleets. Turn this on to include them.",
            "default": false
          },
          "changesOnly": {
            "title": "Change-only price feed",
            "type": "boolean",
            "description": "Return only stations that are new or whose price changed since the last change-only run with the same state key. Schedule the Actor with this on to receive a price feed. The first run returns every matching station.",
            "default": false
          },
          "stateKey": {
            "title": "Change feed state key",
            "type": "string",
            "description": "Name of the price memory that the change-only feed uses. Use a different key for each separate watch list.",
            "default": "default"
          },
          "maxItems": {
            "title": "Maximum stations",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after saving this many stations. The default keeps test runs short and cheap. Set 0 for no limit. A full France, Spain and Portugal snapshot is about 24,000 stations.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}