{
  "openapi": "3.0.1",
  "info": {
    "title": "Spain Trade Fair Exhibitors Scraper (IFEMA Madrid)",
    "description": "Export the exhibitor lists of IFEMA Madrid trade fairs (FITUR, Fruit Attraction, SICUR, Intergift, GENERA, Motortec and 30 more) with website, email, address, country, hall, stand, categories and activity. $3 per 1,000 exhibitors.",
    "version": "0.1",
    "x-build-id": "oEbQ5RH63v4xtf3HC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/eurodata-tools~spain-trade-fair-exhibitors/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-eurodata-tools-spain-trade-fair-exhibitors",
        "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/eurodata-tools~spain-trade-fair-exhibitors/runs": {
      "post": {
        "operationId": "runs-sync-eurodata-tools-spain-trade-fair-exhibitors",
        "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/eurodata-tools~spain-trade-fair-exhibitors/run-sync": {
      "post": {
        "operationId": "run-sync-eurodata-tools-spain-trade-fair-exhibitors",
        "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": {
          "fairs": {
            "title": "Trade fairs",
            "type": "array",
            "description": "Pick one or more IFEMA Madrid fairs. You get one row per exhibitor, with the fair name in every row. Fairs that share one catalog (e.g. GENERA + MATELEC) are scraped once.",
            "items": {
              "type": "string",
              "enum": [
                "fitur",
                "fruit-attraction",
                "intergift",
                "genera",
                "matelec",
                "sicur",
                "motortec",
                "construtec",
                "veteco",
                "smart-doors",
                "piscimad",
                "expodental",
                "expomedes",
                "bisutex",
                "madrid-joya",
                "privel",
                "tecma",
                "srr",
                "foro-ciudades",
                "liber",
                "iberpet",
                "anuga-select-iberica",
                "momad",
                "semana-de-la-educacion",
                "look",
                "promogift",
                "expooptica",
                "fiaa",
                "almoneda",
                "guext",
                "feriarte",
                "simo-educacion",
                "vehiculoocasion",
                "sociocare"
              ],
              "enumTitles": [
                "FITUR · tourism & travel",
                "Fruit Attraction · fresh fruit & vegetables",
                "Intergift · gifts & home decoration",
                "GENERA · energy & environment",
                "MATELEC · electrical & electronics industry",
                "SICUR · security & safety",
                "Motortec · automotive aftermarket",
                "CONSTRUTEC · construction materials",
                "VETECO · windows, glass & facades",
                "SMART DOORS · doors, automation & access control",
                "PISCIMAD · swimming pools & wellness",
                "Expodental · dental equipment & products",
                "Expomedes · aesthetic medicine",
                "BISUTEX · costume jewellery & accessories",
                "MADRIDJOYA · jewellery & watches",
                "PRIVEL · private label products",
                "TECMA · urban planning & environment",
                "SRR · recycling & recovery",
                "Foro de las Ciudades · smart & sustainable cities",
                "LIBER · publishing & books",
                "IBERPET · pet industry",
                "Anuga Select Ibérica · food & beverage",
                "MOMAD · fashion, footwear & accessories",
                "Semana de la Educación · education & training",
                "Salón LOOK · beauty & hairdressing",
                "PMG Promogift · promotional products",
                "Expoóptica+Audio · optics & audiology",
                "FIAA · buses & coaches",
                "Antik Almoneda · antiques & collecting",
                "GUEXT · hospitality suppliers",
                "Feriarte · antiques & art galleries",
                "SIMO Educación · education technology",
                "Salón VO · used vehicles",
                "Sociocare · social care"
              ]
            }
          },
          "otherFairs": {
            "title": "Other IFEMA fairs (name or catalog URL)",
            "type": "array",
            "description": "Any other fair with an exhibitor catalog on ifema.es, as its name in the URL (`fitur`, `momad`) or the catalog URL (`https://www.ifema.es/fitur/expositores/catalogo`).",
            "items": {
              "type": "string"
            }
          },
          "maxExhibitorsPerFair": {
            "title": "Max exhibitors per fair",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many exhibitors for each fair. 0 = all exhibitors. Use 50 for a cheap first test.",
            "default": 0
          },
          "countries": {
            "title": "Only exhibitors from these countries",
            "type": "array",
            "description": "ISO codes (`ES`, `PT`, `IT`, `FR`) or English names (`Spain`, `Mexico`). Leave empty for all countries. Exhibitors from other countries are never charged.",
            "items": {
              "type": "string"
            }
          },
          "searchTerm": {
            "title": "Company name contains",
            "type": "string",
            "description": "Keep only exhibitors whose name contains this text, e.g. `hotel` or `bodega`. Uses the catalog's own search."
          },
          "onlyWithContact": {
            "title": "Only exhibitors with an email or website",
            "type": "boolean",
            "description": "Skip exhibitors that published neither an email nor a website in the catalog. Skipped exhibitors are free.",
            "default": false
          },
          "includeCoExhibitors": {
            "title": "Include co-exhibitors",
            "type": "boolean",
            "description": "Companies that exhibit at another exhibitor's stand (for example hotels at a regional tourism board stand). The row says whose stand it is (`coExhibitorOf`).",
            "default": true
          },
          "includeDescription": {
            "title": "Include company description",
            "type": "boolean",
            "description": "The presentation text written by the exhibitor, as plain text.",
            "default": true
          },
          "language": {
            "title": "Catalog language",
            "enum": [
              "en",
              "es"
            ],
            "type": "string",
            "description": "Language of the categories and descriptions when the exhibitor provided both.",
            "default": "en"
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "minimum": 20,
            "maximum": 200,
            "type": "integer",
            "description": "One request per exhibitor. The IFEMA catalog refuses visitors that go much faster than 100 per minute. At 100 per minute, 1,000 exhibitors take about 10 minutes.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Usually not needed. Turn on Apify Proxy if the catalog stops answering.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}