{
  "openapi": "3.0.1",
  "info": {
    "title": "Visa Sponsor Checker: UK, US H-1B, Canada LMIA (Unofficial)",
    "description": "Check if a company sponsors work visas in the UK (Home Office sponsor register), US (H-1B LCA filings) and Canada (positive LMIA employers). Bulk company lookup, register export and job list enrichment with sponsorship history.",
    "version": "0.1",
    "x-build-id": "mGhcT5fob3l6vW70t"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/messnomore~visa-sponsor-checker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-messnomore-visa-sponsor-checker",
        "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/messnomore~visa-sponsor-checker/runs": {
      "post": {
        "operationId": "runs-sync-messnomore-visa-sponsor-checker",
        "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/messnomore~visa-sponsor-checker/run-sync": {
      "post": {
        "operationId": "run-sync-messnomore-visa-sponsor-checker",
        "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 do you want to do?",
            "enum": [
              "search",
              "enrichJobs"
            ],
            "type": "string",
            "description": "<b>Check companies</b>: look up company names (or, with no names, export register entries). <b>Enrich jobs</b>: add visa sponsorship data to a list of job ads, e.g. the dataset of a job scraper.",
            "default": "search"
          },
          "companyNames": {
            "title": "Company names",
            "type": "array",
            "description": "Companies to check, one per line (up to 5,000). Legal forms, punctuation and country words are ignored: \"Google\" finds \"Google (UK) Limited\" and \"Google LLC\". Leave empty to export register entries with the filters below.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Registers to check. Each company is checked in every selected country (one result row per company and country).",
            "items": {
              "type": "string",
              "enum": [
                "UK",
                "US",
                "CA"
              ],
              "enumTitles": [
                "UK: Home Office register of licensed sponsors",
                "US: H-1B / H-1B1 / E-3 LCA filings (DOL)",
                "Canada: positive LMIA employers (ESDC)"
              ]
            },
            "default": [
              "UK",
              "US",
              "CA"
            ]
          },
          "minConfidence": {
            "title": "Minimum match confidence",
            "minimum": 0.5,
            "maximum": 0.99,
            "type": "number",
            "description": "Matches below this confidence (0.5-0.99) are reported as not found, with close names listed in otherCandidates. 0.8 balances recall and precision; use 0.97 for exact names only.",
            "default": 0.8
          },
          "useAi": {
            "title": "AI check for unclear names",
            "type": "boolean",
            "description": "When a name is ambiguous (\"Amazon\" vs \"Amazon.com Services LLC\" and \"Amazon Filters Ltd\"), an AI model picks the right register entry or says none fits. Included in the price. Free Apify plans get up to 20 AI checks per run; clear names never need one.",
            "default": true
          },
          "includeHistory": {
            "title": "Include yearly history",
            "type": "boolean",
            "description": "Add filings and positions per year (US and Canada) to each row.",
            "default": true
          },
          "towns": {
            "title": "Towns or states (export only)",
            "type": "array",
            "description": "Bulk export filter: keep employers whose town, state or province matches one of these, e.g. \"London\", \"Toronto\", \"CA\" (California). Used only when Company names is empty.",
            "items": {
              "type": "string"
            }
          },
          "routes": {
            "title": "Routes or visa types (export only)",
            "type": "array",
            "description": "Bulk export filter: e.g. \"Skilled Worker\", \"Global Business Mobility\" (UK), \"H-1B\", \"E-3\" (US), \"Global Talent\", \"High-wage\" (Canada).",
            "items": {
              "type": "string"
            }
          },
          "currentOnly": {
            "title": "Currently listed only (export only)",
            "type": "boolean",
            "description": "Bulk export: skip employers missing from the newest release (Canada and US keep older employers for history).",
            "default": true
          },
          "maxResults": {
            "title": "Maximum export rows",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Bulk export cap across all selected countries. Each row is one charged result.",
            "default": 100
          },
          "jobs": {
            "title": "Jobs",
            "type": "array",
            "description": "Enrich jobs mode: job objects with at least a company and a location or country, e.g. {\"title\": \"Data Engineer\", \"company\": \"Revolut\", \"location\": \"London, UK\"}. Up to 10,000; use Dataset for more. Company names and export filters are ignored in this mode."
          },
          "datasetId": {
            "title": "Dataset with jobs",
            "type": "string",
            "description": "Enrich jobs mode: a dataset from another Actor run (e.g. a job scraper). Its items are read and returned with a visaSponsor object added."
          },
          "companyField": {
            "title": "Company field",
            "type": "string",
            "description": "Field holding the company name, e.g. \"companyName\" or \"company.name\". Leave empty to detect common field names automatically."
          },
          "locationField": {
            "title": "Location field",
            "type": "string",
            "description": "Field holding the job location, e.g. \"location\". Leave empty to detect it. The country is inferred from text like \"London, UK\", \"Austin, TX\" or \"Toronto, ON\"."
          },
          "countryField": {
            "title": "Country field",
            "type": "string",
            "description": "Field holding the job country (name or code), if your data has one. Leave empty to detect it."
          },
          "defaultCountry": {
            "title": "Default country",
            "enum": [
              "UK",
              "US",
              "CA"
            ],
            "type": "string",
            "description": "Country used when a job has no recognizable location. Leave empty to skip such jobs (skipped jobs are free)."
          },
          "maxJobs": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many jobs (inline and dataset together).",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}