{
  "description": "Search ImportYeti by name, product, address, HS code, location or product tag and optionally open profiles for trading partners, recent bills of lading, HS/HTS codes, lanes, carriers and UFLPA flags.",
  "properties": {
    "entityType": {
      "default": "any",
      "description": "Keep only US importers (companies), only overseas suppliers, or both. Search uses ImportYeti's own server-side type filter; HS, location and tag modes filter their supplier/company tables.",
      "editor": "select",
      "enum": [
        "any",
        "company",
        "supplier"
      ],
      "enumTitles": [
        "Companies and suppliers",
        "US companies (importers)",
        "Overseas suppliers"
      ],
      "prefill": "any",
      "sectionCaption": "Filters",
      "sectionDescription": "Optional filters for the entities returned. ImportYeti does not apply recency or minimum shipments on its search endpoint, so those filters run locally over the reachable rows.",
      "title": "Entity type",
      "type": "string"
    },
    "hsCodes": {
      "default": [],
      "description": "2-, 4- or 6-digit HS codes, e.g. 85, 8471, 8507.60, or full /hs-codes/... URLs (mode=byHsCodes). Each code returns its top suppliers, top US companies and recent shipments.",
      "editor": "stringList",
      "prefill": [],
      "title": "HS codes",
      "type": "array"
    },
    "includeProfileDetails": {
      "default": true,
      "description": "Open each matched company or supplier and return its trading partners, recent bills of lading and trade details. Adds one request per profile. Applies to search and URL modes; HS, location and tag pages already contain their tables.",
      "prefill": false,
      "sectionCaption": "Profile details",
      "sectionDescription": "These controls only change what is included when profiles are opened. The daily test keeps them off for the smallest possible run.",
      "title": "Open profiles for details",
      "type": "boolean"
    },
    "includeTradeDetails": {
      "default": true,
      "description": "Emit HS/HTS codes, port lanes, carriers, containers, notify parties, other addresses, tags and monthly history from the opened profile. Only applies when profile details are opened.",
      "prefill": false,
      "title": "Include trade details",
      "type": "boolean"
    },
    "locationType": {
      "default": "supplier",
      "description": "Whether bare country slugs point at the overseas-supplier directory or the US-importer directory. Ignored for full location URLs.",
      "editor": "select",
      "enum": [
        "supplier",
        "company"
      ],
      "enumTitles": [
        "Overseas suppliers",
        "US companies (importers)"
      ],
      "prefill": "supplier",
      "title": "Bare location type",
      "type": "string"
    },
    "locations": {
      "default": [],
      "description": "Country slugs such as china or vietnam, or full /location/... URLs for states, counties and cities (mode=byLocations). Bare slugs use the location type below.",
      "editor": "stringList",
      "prefill": [],
      "title": "Locations",
      "type": "array"
    },
    "maxPartners": {
      "default": 50,
      "description": "Cap the top-supplier or top-customer table per profile. ImportYeti exposes up to 50.",
      "maximum": 50,
      "minimum": 0,
      "prefill": 0,
      "title": "Max partners per profile",
      "type": "integer"
    },
    "maxResults": {
      "default": 25,
      "description": "Maximum records to return in this run. ImportYeti caps a search query at 280 reachable rows (140 per entity type); use more search queries for more. Every profile exposes at most 50 partners and 50 recent shipments.",
      "maximum": 1000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max results",
      "type": "integer"
    },
    "maxShipments": {
      "default": 50,
      "description": "Cap the recent bill-of-lading rows per profile. ImportYeti exposes up to 50.",
      "maximum": 50,
      "minimum": 0,
      "prefill": 0,
      "title": "Max recent shipments per profile",
      "type": "integer"
    },
    "minShipments": {
      "default": 0,
      "description": "Drop entities with fewer than this many lifetime shipments. Applied locally.",
      "maximum": 10000000,
      "minimum": 0,
      "prefill": 0,
      "title": "Minimum shipments",
      "type": "integer"
    },
    "mode": {
      "default": "search",
      "description": "What to scrape. Search matches names, product keywords and address text. URL, HS-code, location and product-tag modes read the corresponding ImportYeti pages directly.",
      "editor": "select",
      "enum": [
        "search",
        "byUrls",
        "byHsCodes",
        "byLocations",
        "byProductTags"
      ],
      "enumTitles": [
        "Search by name, product, or address",
        "Scrape ImportYeti URLs",
        "Find importers & suppliers by HS code",
        "Browse a country, state, or city",
        "Browse a product tag"
      ],
      "prefill": "search",
      "title": "Mode",
      "type": "string"
    },
    "productTags": {
      "default": [],
      "description": "Product-tag slugs such as yoga-mat or lithium-battery, or full /tags/... URLs (mode=byProductTags).",
      "editor": "stringList",
      "prefill": [],
      "title": "Product tags",
      "type": "array"
    },
    "searchQueries": {
      "default": [],
      "description": "Company names, brands, product keywords, or address text (mode=search). One entry per search. ImportYeti searches names, indexed product text and address text; a trademark name works as a brand search, not a separate trademark index.",
      "editor": "stringList",
      "prefill": [
        "apple"
      ],
      "sectionCaption": "What to scrape",
      "sectionDescription": "Choose the input that matches the selected mode. Only the field for the active mode is used; the others can stay empty.",
      "title": "Search queries",
      "type": "array"
    },
    "shipmentRecency": {
      "default": "any",
      "description": "Keep only entities with a shipment in this window. ImportYeti's search API ignores this filter, so it is applied locally to the dates the source returns.",
      "editor": "select",
      "enum": [
        "any",
        "3mo",
        "6mo",
        "12mo",
        "24mo"
      ],
      "enumTitles": [
        "Any time",
        "Last 3 months",
        "Last 6 months",
        "Last 12 months",
        "Last 24 months"
      ],
      "prefill": "any",
      "title": "Most recent shipment within",
      "type": "string"
    },
    "startUrls": {
      "default": [],
      "description": "Company, supplier, HS-code, location, product-tag or search URLs (mode=byUrls). Full https://www.importyeti.com/... links or paths such as company/apple are accepted.",
      "editor": "requestListSources",
      "items": {
        "properties": {
          "url": {
            "description": "Full ImportYeti URL or path, e.g. https://www.importyeti.com/company/apple.",
            "title": "URL",
            "type": "string"
          }
        },
        "type": "object"
      },
      "prefill": [],
      "title": "ImportYeti URLs",
      "type": "array"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "ImportYeti Importer & Supplier Trade Explorer",
  "type": "object"
}
