{
  "openapi": "3.0.1",
  "info": {
    "title": "Supplier Search API - Find Suppliers by Product and Country",
    "description": "Search a global company database by the products and services a company actually supplies, plus NAICS code, industry, business model, country, employee count, revenue and year founded. Returns firmographics, classifications, contact details and technologies. Pay per result. Bring your own API key.",
    "version": "0.1",
    "x-build-id": "xvejlWv3bbnAqNigN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~supplier-search-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-supplier-search-api",
        "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/nabeelbaghoor~supplier-search-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-supplier-search-api",
        "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/nabeelbaghoor~supplier-search-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-supplier-search-api",
        "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": {
          "productsAny": {
            "title": "Products or services (any of)",
            "type": "array",
            "description": "Find companies that make, sell or provide any one of these products or services. This is the filter that turns a shopping list into a supplier list, because it searches what a company actually offers rather than only its industry label.",
            "items": {
              "type": "string"
            }
          },
          "productsAll": {
            "title": "Products or services (all of)",
            "type": "array",
            "description": "Only return companies matching every one of these products or services. Use this when a supplier has to cover several capabilities at once.",
            "items": {
              "type": "string"
            }
          },
          "productsExclude": {
            "title": "Exclude products or services",
            "type": "array",
            "description": "Drop companies matching any of these terms, which is the quickest way to strip resellers or unrelated lines out of a supplier list.",
            "items": {
              "type": "string"
            }
          },
          "productsStrictness": {
            "title": "Product match strictness",
            "enum": [
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "How much of each company record the product terms are matched against. Level 1 searches business tags only and is the most precise. Level 2 adds page meta information. Level 3 searches everything including descriptions and is the widest."
          },
          "keywordsAny": {
            "title": "Keywords (any of)",
            "type": "array",
            "description": "Free-text terms where any one is enough to match. Use quotes around a phrase to keep the words together.",
            "items": {
              "type": "string"
            }
          },
          "keywordsAll": {
            "title": "Keywords (all of)",
            "type": "array",
            "description": "Free-text terms that must all be present.",
            "items": {
              "type": "string"
            }
          },
          "keywordsExclude": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop companies matching any of these terms.",
            "items": {
              "type": "string"
            }
          },
          "keywordsStrictness": {
            "title": "Keyword match strictness",
            "enum": [
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "How much of each company record the keywords are matched against, on the same 1 to 3 scale as the product strictness."
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Countries to search, either as a full name or an ISO 3166-1 two letter code. Each value is expanded into the location object the provider expects, so plain country names work here.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Structured locations",
            "type": "array",
            "description": "Locations with more detail than a country, as a JSON array of objects. Each object takes a country and optionally a region and a city, for example [{\"country\": \"US\", \"region\": \"California\", \"city\": \"San Francisco\"}]."
          },
          "postcodes": {
            "title": "Postcodes",
            "type": "array",
            "description": "Postcodes to match, for the headquarters or any branch location.",
            "items": {
              "type": "string"
            }
          },
          "industries": {
            "title": "Industries",
            "type": "array",
            "description": "Industries to match, using the provider's own industry names.",
            "items": {
              "type": "string"
            }
          },
          "excludeIndustries": {
            "title": "Exclude industries",
            "type": "array",
            "description": "Industries to leave out.",
            "items": {
              "type": "string"
            }
          },
          "businessCategories": {
            "title": "Business categories",
            "type": "array",
            "description": "Business categories to match, a broader grouping than industry.",
            "items": {
              "type": "string"
            }
          },
          "naicsCodes": {
            "title": "NAICS codes",
            "type": "array",
            "description": "NAICS 2022 codes to match. Both primary and secondary codes are considered.",
            "items": {
              "type": "string"
            }
          },
          "excludeNaicsCodes": {
            "title": "Exclude NAICS codes",
            "type": "array",
            "description": "NAICS codes to leave out.",
            "items": {
              "type": "string"
            }
          },
          "businessModels": {
            "title": "Business models",
            "type": "array",
            "description": "Business models to match, for example manufacturer, distributor or service provider, using the provider's own model names.",
            "items": {
              "type": "string"
            }
          },
          "excludeBusinessModels": {
            "title": "Exclude business models",
            "type": "array",
            "description": "Business models to leave out, which is how you keep resellers out of a manufacturer search.",
            "items": {
              "type": "string"
            }
          },
          "companyTypes": {
            "title": "Company types",
            "type": "array",
            "description": "Company types to match, using the provider's own type names.",
            "items": {
              "type": "string"
            }
          },
          "employeeCountMin": {
            "title": "Minimum employees",
            "minimum": 0,
            "type": "integer",
            "description": "Only return companies with at least this many employees."
          },
          "employeeCountMax": {
            "title": "Maximum employees",
            "minimum": 0,
            "type": "integer",
            "description": "Only return companies with at most this many employees."
          },
          "revenueMin": {
            "title": "Minimum estimated revenue",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum estimated annual revenue, in whole units of the provider's reporting currency (not millions)."
          },
          "revenueMax": {
            "title": "Maximum estimated revenue",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum estimated annual revenue, in whole units of the provider's reporting currency (not millions)."
          },
          "yearFoundedMin": {
            "title": "Founded from year",
            "minimum": 1000,
            "type": "integer",
            "description": "Only return companies founded in or after this year."
          },
          "yearFoundedMax": {
            "title": "Founded to year",
            "minimum": 1000,
            "type": "integer",
            "description": "Only return companies founded in or before this year."
          },
          "companyNames": {
            "title": "Company names",
            "type": "array",
            "description": "Match specific companies by name.",
            "items": {
              "type": "string"
            }
          },
          "companyWebsites": {
            "title": "Company websites",
            "type": "array",
            "description": "Match specific companies by website. The most reliable company key, because a domain is already standardised.",
            "items": {
              "type": "string"
            }
          },
          "joinOperator": {
            "title": "Combine filters with",
            "enum": [
              "and",
              "or"
            ],
            "type": "string",
            "description": "How the filters above are combined. And requires every filter to match, which is what you want almost always. Or returns a company matching any single filter and widens the result set sharply.",
            "default": "and"
          },
          "rawFilters": {
            "title": "Raw filter object",
            "type": "object",
            "description": "A complete filters object that replaces everything above, for query shapes this actor does not model such as nested groups or a filter the provider adds later. Give it as {\"and\": [{\"attribute\": \"...\", \"relation\": \"...\", \"value\": \"...\"}]}."
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 25000,
            "type": "integer",
            "description": "Stop after this many companies (1 to 25,000). You are charged per company returned."
          },
          "pageSize": {
            "title": "Results per request",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many companies to request per API call (1 to 200). Larger pages mean fewer calls against your provider rate limit of one request per second."
          },
          "apiKey": {
            "title": "Client secret",
            "type": "string",
            "description": "Your own client secret for the data provider. Required. Stored securely and never logged."
          },
          "clientId": {
            "title": "Client id",
            "type": "string",
            "description": "The client id that goes with the secret above. Required unless you are pasting an access token you obtained yourself."
          },
          "apiKeyIsAccessToken": {
            "title": "Value is already an access token",
            "type": "boolean",
            "description": "Turn this on if the value in the client secret field is a live bearer token rather than a client secret. The token exchange is then skipped and the value is sent straight through. Tokens last one hour.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}