{
  "openapi": "3.0.1",
  "info": {
    "title": "Trade Show Exhibitors Scraper - Exhibitor List, Booth, Website",
    "description": "Exhibitor lists from trade show and expo directories: company, booth, hall, categories, country, website, description, logo. a2z (Personify) and ExpoFP natively; other sites via AI. Company data only.",
    "version": "0.1",
    "x-build-id": "ihvxs0xY2877U0U8b"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tidytools~trade-show-exhibitor-list-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tidytools-trade-show-exhibitor-list-scraper",
        "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/tidytools~trade-show-exhibitor-list-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tidytools-trade-show-exhibitor-list-scraper",
        "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/tidytools~trade-show-exhibitor-list-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tidytools-trade-show-exhibitor-list-scraper",
        "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": {
          "urls": {
            "title": "Exhibitor directories or event websites",
            "type": "array",
            "description": "One URL per line: an exhibitor directory (a2z / Personify, ExpoFP) or the event's own website (the directory it links is detected). Other exhibitor list pages are read with AI extraction. Map Your Show, Swapcard and Cvent directories are not read (their terms or bot protection do not allow automated collection): they get a free \"unsupported\" row. Bare domains are fine. Invalid lines and directories that cannot be read get a free error row.",
            "items": {
              "type": "string"
            }
          },
          "maxExhibitorsPerDirectory": {
            "title": "Max exhibitors per directory",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop taking exhibitors from one directory after this many (after filters). 0 = all exhibitors.",
            "default": 0
          },
          "maxExhibitors": {
            "title": "Max exhibitors (whole run)",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many exhibitor rows in total. You pay only for rows returned.",
            "default": 10000
          },
          "includeDetails": {
            "title": "Read exhibitor profiles (a2z)",
            "type": "boolean",
            "description": "a2z lists show only name and booth: with this on, each exhibitor's public profile page is read for website, address, country, company phone and categories (one extra request per exhibitor, slower). ExpoFP includes these fields anyway.",
            "default": true
          },
          "aiFallback": {
            "title": "AI extraction for other sites",
            "type": "boolean",
            "description": "Directories on other platforms (organiser websites, custom lists) are read with AI into the same columns (rows have source \"ai\" and cost more, see pricing). Off = such URLs get a free \"unsupported\" error row.",
            "default": true
          },
          "keywords": {
            "title": "Keywords (any of)",
            "type": "array",
            "description": "Keep exhibitors whose name, description or categories contain one of these words (case-insensitive), e.g. robot, packaging. Filtered-out exhibitors are free.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Category contains (any of)",
            "type": "array",
            "description": "Keep exhibitors with a product category containing one of these, e.g. Software, Bakery. Directories that publish no categories match nothing.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Country (any of)",
            "type": "array",
            "description": "Keep exhibitors from these countries, e.g. United States, Germany, UK (US/USA/United States and similar names are treated as the same). Directories that publish no country match nothing.",
            "items": {
              "type": "string"
            }
          },
          "httpVia": {
            "title": "Directory requests from",
            "enum": [
              "auto",
              "direct",
              "vm"
            ],
            "type": "string",
            "description": "Where requests to the directory come from. AI-read pages also use our backend and a real browser when needed.",
            "default": "auto"
          },
          "maxConcurrency": {
            "title": "Directories in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many directories are read at the same time.",
            "default": 2
          },
          "requestDelayMs": {
            "title": "Pause between requests to one site (ms)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Keeps the load on each event site low. Profile pages are read at most 3 at a time per run.",
            "default": 300
          },
          "directoryTimeoutSecs": {
            "title": "Time limit per directory (seconds)",
            "minimum": 60,
            "maximum": 7200,
            "type": "integer",
            "description": "A directory that takes longer stops with a timeout error row (rows already returned stay).",
            "default": 1800
          },
          "proxyConfiguration": {
            "title": "Proxy (optional)",
            "type": "object",
            "description": "Only used for requests sent from Apify's network. Apify proxy usage is billed to your Apify account. Not needed for the supported platforms."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}