{
  "openapi": "3.0.1",
  "info": {
    "title": "UK Visa Sponsor Register: Search and Change Alerts",
    "description": "Search the UK Home Office register of licensed visa sponsors (Skilled Worker, Global Business Mobility and more) by town, county, route, rating or name, or watch it for organisations added, removed or re-rated since your last run. $0.0005 per organisation, $0.002 per change.",
    "version": "0.4",
    "x-build-id": "dYhYwyUcj1GzdvfqK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datagleaner~uk-visa-sponsor-register/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datagleaner-uk-visa-sponsor-register",
        "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/datagleaner~uk-visa-sponsor-register/runs": {
      "post": {
        "operationId": "runs-sync-datagleaner-uk-visa-sponsor-register",
        "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/datagleaner~uk-visa-sponsor-register/run-sync": {
      "post": {
        "operationId": "run-sync-datagleaner-uk-visa-sponsor-register",
        "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": {
          "register": {
            "title": "Register",
            "enum": [
              "workers",
              "students"
            ],
            "type": "string",
            "description": "Which GOV.UK register of licensed sponsors to use. Watch mode keeps a separate baseline for each.",
            "default": "workers"
          },
          "query": {
            "title": "Organisation name contains",
            "type": "string",
            "description": "Case-insensitive text the organisation name must contain, e.g. `care`, `university`, `bank`."
          },
          "towns": {
            "title": "Towns / cities",
            "type": "array",
            "description": "Keep organisations in these towns or cities (exact name, case-insensitive), e.g. `Manchester`.",
            "items": {
              "type": "string"
            }
          },
          "counties": {
            "title": "Counties",
            "type": "array",
            "description": "Keep organisations in these counties as written in the register (many rows leave the county empty; use towns for those).",
            "items": {
              "type": "string"
            }
          },
          "routes": {
            "title": "Routes",
            "type": "array",
            "description": "Keep organisations licensed for a route that contains this text, e.g. `Skilled Worker`, `Senior or Specialist`, `Graduate Trainee`, `Creative Worker`, `Charity Worker`, `Religious Worker`, `International Sportsperson`. For the students register: `Student`, `Child Student`.",
            "items": {
              "type": "string"
            }
          },
          "ratings": {
            "title": "Ratings",
            "type": "array",
            "description": "Keep organisations whose rating starts with one of these: `A`, `B`, `Provisional`. Matches the Worker licence unless you pick a licence type below. For the students register ratings match the sponsor status: `Student Sponsor`, `Probationary`.",
            "items": {
              "type": "string"
            }
          },
          "licenceType": {
            "title": "Licence type",
            "enum": [
              "any",
              "worker",
              "temporary"
            ],
            "type": "string",
            "description": "Restrict to organisations holding a Worker or a Temporary Worker licence. Ignored for the students register.",
            "default": "any"
          },
          "listAll": {
            "title": "List the whole register",
            "type": "boolean",
            "description": "Return every organisation when no filter is set (about 100,000 rows, billed per row). Without any filter or this switch the Actor runs a 5-row example.",
            "default": false
          },
          "watchMode": {
            "title": "Watch mode (changes since last run)",
            "type": "boolean",
            "description": "Compare today's register with the copy saved by your previous run in the named store below and return only new, removed and re-rated organisations (filters still apply). The first run saves a baseline for free.",
            "default": false
          },
          "storeName": {
            "title": "Watch store name",
            "type": "string",
            "description": "Named key-value store holding the previous register. Use a different name for each separate watch (for example one per town filter).",
            "default": "uk-sponsor-register-watch"
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Stop after this many billed rows. In watch mode a capped run does not advance the baseline.",
            "default": 1000
          },
          "sponsorTypes": {
            "title": "Sponsor types (students register)",
            "type": "array",
            "description": "Students register only: keep sponsors whose type contains this text, e.g. `Independent school`, `Higher Education`, `Private provider`, `Publicly funded college`.",
            "items": {
              "type": "string"
            }
          },
          "changeTypes": {
            "title": "Change types (watch mode)",
            "type": "array",
            "description": "Watch mode: limit to these change types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "removed",
                "ratingChanged",
                "statusChanged",
                "routesChanged"
              ]
            },
            "default": []
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}