{
  "openapi": "3.0.1",
  "info": {
    "title": "ImportYeti Bill of Lading Scraper — No Login, $1.4/1k",
    "description": "ImportYeti scraper: US customs bills of lading for bulk lists of importers, suppliers, HS codes or addresses. Shipper, consignee, cargo, weight, containers, arrival date. Also company/supplier lead lists with shipment counts. No login or cookies. MCP-ready for AI agents. $1.4 per 1,000 records.",
    "version": "1.0",
    "x-build-id": "Cz8hwcqx28QTwTNZy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fortuitous_pirate~bill-of-lading-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fortuitous_pirate-bill-of-lading-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/fortuitous_pirate~bill-of-lading-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fortuitous_pirate-bill-of-lading-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/fortuitous_pirate~bill-of-lading-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fortuitous_pirate-bill-of-lading-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": {
          "mode": {
            "title": "What to return",
            "enum": [
              "shipments",
              "entities"
            ],
            "type": "string",
            "description": "Shipments: bill of lading rows (shipper, consignee, cargo, weight, containers, arrival date) for each matched importer, supplier or HS code. Companies & suppliers: one row per matching ImportYeti company or supplier (name, type, country, address, total shipments, most recent shipment date) straight from the search index; fast and cheap, good for lead lists.",
            "default": "shipments"
          },
          "searchType": {
            "title": "Search Type",
            "enum": [
              "shipper",
              "consignee",
              "cargo",
              "marks"
            ],
            "type": "string",
            "description": "What Search Query and Queries refer to. Importer/consignee and supplier/shipper searches return that company's most recent US import bills of lading with both parties. Cargo searches take a product keyword (\"lithium batteries\") or an HS code (\"8507\", \"850760\") and return recent shipments of that product with the overseas shipper; ImportYeti does not show the importer on product pages. Carton marks are not published, so that option searches cargo descriptions instead.",
            "default": "consignee"
          },
          "searchQuery": {
            "title": "Search Query",
            "type": "string",
            "description": "One company name (e.g. \"Walmart\", \"Foxconn\"), address (with Search By = Address), product keyword (e.g. \"solar panels\") or HS code (e.g. \"9403\"), interpreted by Search Type. For many at once use the lists below. Ignored when any list or URL is given. Empty input runs a Walmart sample."
          },
          "companies": {
            "title": "US importers (consignees)",
            "type": "array",
            "description": "Bulk list of US importer names, ImportYeti slugs or URLs, e.g. \"Walmart\", \"anker-international\", \"https://www.importyeti.com/company/wal-mart\". Each name is matched to its best ImportYeti company (see Matches per entry).",
            "items": {
              "type": "string"
            }
          },
          "suppliers": {
            "title": "Overseas suppliers (shippers)",
            "type": "array",
            "description": "Bulk list of supplier names, slugs or URLs, e.g. \"Anker Innovations\", \"https://www.importyeti.com/supplier/foxconn-technology\".",
            "items": {
              "type": "string"
            }
          },
          "hsCodes": {
            "title": "HS codes or product keywords",
            "type": "array",
            "description": "Bulk list of HS codes (\"8507\", \"850760\") or product keywords (\"solar panels\"). Keywords are mapped to matching 6-digit HS codes and only shipments whose cargo description contains the keyword are kept.",
            "items": {
              "type": "string"
            }
          },
          "queries": {
            "title": "Queries (use Search Type)",
            "type": "array",
            "description": "Bulk list of names, addresses, keywords or codes, all interpreted by Search Type (and Search By).",
            "items": {
              "type": "string"
            }
          },
          "listUrl": {
            "title": "Import a list (CSV, TXT or Google Sheet link)",
            "type": "string",
            "description": "Link to a CSV/TXT file or a Google Sheet shared as 'anyone with the link'. The first column of each row is read (a header like 'company' is skipped). ImportYeti URLs are auto-detected; other values are interpreted by Search Type."
          },
          "startUrls": {
            "title": "Start URLs (Advanced)",
            "type": "array",
            "description": "Optional. ImportYeti company, supplier or HS-code page URLs (e.g. https://www.importyeti.com/company/wal-mart, https://www.importyeti.com/supplier/foxconn-technology, https://www.importyeti.com/hs-codes/8507). Legacy Port Examiner search URLs are converted to the equivalent name or cargo search.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchBy": {
            "title": "Search by",
            "enum": [
              "name",
              "address"
            ],
            "type": "string",
            "description": "Match importers/suppliers by company name (default) or by address text, e.g. \"Stone Mountain, GA\" or a street name, to find every importer at a location. Does not apply to HS codes.",
            "default": "name"
          },
          "entityType": {
            "title": "Entity type (companies & suppliers mode)",
            "enum": [
              "any",
              "company",
              "supplier"
            ],
            "type": "string",
            "description": "In Companies & suppliers mode, keep only US importers (company), only overseas suppliers, or both. The importer/supplier lists set this automatically.",
            "default": "any"
          },
          "minShipments": {
            "title": "Minimum total shipments",
            "minimum": 0,
            "type": "integer",
            "description": "Only use companies/suppliers with at least this many total shipments on ImportYeti. Filters out one-time importers. Applies to name and address searches, not to pasted URLs. 0 = no filter."
          },
          "lastShipmentWithinMonths": {
            "title": "Active within (months)",
            "minimum": 0,
            "maximum": 120,
            "type": "integer",
            "description": "Only use companies/suppliers whose most recent shipment is within this many months (e.g. 6 or 12). Applies to name and address searches, not to pasted URLs. 0 = no filter."
          },
          "shipmentsWithinDays": {
            "title": "Shipments from the last N days",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only shipments that arrived in the last N days (e.g. 30). Handy for scheduled runs. Combined with Arrival Date From, the later date wins. 0 = no filter."
          },
          "maxItems": {
            "title": "Maximum Items",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of records to return in total. Each company, supplier or HS-code page holds its 50 most recent shipments. Records already pushed are kept if the run stops early.",
            "default": 10
          },
          "maxMatchesPerQuery": {
            "title": "Matches per entry",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many matching companies, suppliers or HS codes to read per name/keyword. Default: 1 per list entry; for the single Search Query it equals Maximum Pages (previous behaviour)."
          },
          "maxShipmentsPerTarget": {
            "title": "Max shipments per company / HS code",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Cap the shipments taken from each matched company, supplier or HS code (each has up to 50 recent ones), so a long list spreads Maximum Items across every entry. 0 = no cap."
          },
          "maxPages": {
            "title": "Maximum Pages",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "For the single Search Query and Start URLs: maximum number of source pages to read (best-matching companies/suppliers or HS codes). Each page is one proxied request and holds the 50 most recent shipments. Bulk lists read every entry, limited by Matches per entry and Maximum Items.",
            "default": 10
          },
          "dateFrom": {
            "title": "Arrival Date From",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Optional. Keep only shipments that arrived on or after this date (YYYY-MM-DD). Only the 50 most recent shipments per page are available, so this narrows results rather than reaching further back."
          },
          "dateTo": {
            "title": "Arrival Date To",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Optional. Keep only shipments that arrived on or before this date (YYYY-MM-DD)."
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Keep Apify residential proxy on. The data source hides shipment data after 25 pageviews per IP address, so every page is fetched through a fresh residential IP. Datacenter proxies are blocked by the source.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}