{
  "openapi": "3.0.1",
  "info": {
    "title": "Exportpages Scraper & API - B2B Suppliers & Manufacturers",
    "description": "Exportpages scraper and API for B2B sourcing: search European and global suppliers by product and country. One result = one supplier: company, type, phone, website, address, certificates, founded year, employees, products. No login. $1.00 per 1,000 results.",
    "version": "1.0",
    "x-build-id": "jv30yJSf5PVAY63bt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rel8ble~exportpages-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rel8ble-exportpages-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/rel8ble~exportpages-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rel8ble-exportpages-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/rel8ble~exportpages-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rel8ble-exportpages-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": {
          "searchTerms": {
            "title": "Product or service search terms",
            "type": "array",
            "description": "What to source, in plain English, one per line, e.g. \"cnc machining\", \"valve\", \"packaging machines\". Each term is looked up in the Exportpages category tree and the best matching categories are read. Results are suppliers, not single products.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Exportpages URLs",
            "type": "array",
            "description": "Optional. Category pages (https://exportpages.com/cat/195), company pages (https://exportpages.com/comp/152535), product pages (/prod/133064) or search pages (/search?term=valve), one per line. Language sites such as exportpages.de work too; output is in English.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Supplier countries (optional)",
            "type": "array",
            "description": "Keep suppliers based in these countries: ISO codes (\"DE\", \"CN\") or English names (\"Germany\"), one per line. Empty = all countries. The site filters on this itself, so filtered-out suppliers cost nothing.",
            "items": {
              "type": "string"
            }
          },
          "businessTypes": {
            "title": "Business types (optional)",
            "type": "array",
            "description": "Keep only these: \"Manufacturer\", \"Distributor\", \"Service Provider\", one per line. Empty = all types.",
            "items": {
              "type": "string"
            }
          },
          "certifiedOnly": {
            "title": "Only certified companies",
            "type": "boolean",
            "description": "Optional filter. Keep only companies that list a certificate such as ISO 9001.",
            "default": false
          },
          "requirePhone": {
            "title": "Only suppliers with a phone number",
            "type": "boolean",
            "description": "Optional filter. Skip suppliers without a phone number (turns on the company-page step). Skipped suppliers are not charged.",
            "default": false
          },
          "requireWebsite": {
            "title": "Only suppliers with a website",
            "type": "boolean",
            "description": "Optional filter. Skip suppliers without a website (turns on the company-page step). Skipped suppliers are not charged.",
            "default": false
          },
          "maxResultsPerSearch": {
            "title": "Max suppliers per search term or category URL",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Unique suppliers saved per search term or category URL, integer >= 0. Default 100; 0 = everything the categories list. You pay per supplier, so start small.",
            "default": 100
          },
          "maxCategoriesPerSearch": {
            "title": "Max categories per search term",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. How many matching categories to read per term, biggest first, integer >= 0. Default 3; 0 = all of them. \"valve\" alone matches 60 categories.",
            "default": 3
          },
          "scrapeDetails": {
            "title": "Open each company page (phone, website, address, products)",
            "type": "boolean",
            "description": "Optional boolean. true (default) = open every company page for the phone, website, address, certificates, founded year, employees and products. false = list cards only (name, country, business type, regions, product names): faster, same price.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Optional, advanced. Parallel requests, integer 1-10. Default 4. Leave unset.",
            "default": 4
          },
          "maxRequestRetries": {
            "title": "Max retries per request",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Optional, advanced. Retries per failed or blocked request, integer 0-20; each retry uses a new session. Default 6.",
            "default": 6
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional, advanced. Leave as is. Default {\"useApifyProxy\": false} = automatic: direct connection first, and only requests that get blocked are retried through Apify Proxy (datacenter, then residential). Set your own Apify Proxy groups or proxy URLs to force them for every request.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}