{
  "openapi": "3.0.1",
  "info": {
    "title": "Green Card Sponsors: PERM Data by Job, City & Salary",
    "description": "Find green card sponsors and visa sponsorship companies in official DOL PERM data (FY2020-2026), no login. Filter by job title, city and salary; approval rates. Export data, run via API, schedule and monitor runs, or integrate with other tools.",
    "version": "0.1",
    "x-build-id": "16diO7q9ahdQbNLba"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/chimey_forearm~perm-green-card-sponsors/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-chimey_forearm-perm-green-card-sponsors",
        "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/chimey_forearm~perm-green-card-sponsors/runs": {
      "post": {
        "operationId": "runs-sync-chimey_forearm-perm-green-card-sponsors",
        "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/chimey_forearm~perm-green-card-sponsors/run-sync": {
      "post": {
        "operationId": "run-sync-chimey_forearm-perm-green-card-sponsors",
        "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": {
          "fiscalYears": {
            "title": "Fiscal years",
            "type": "array",
            "description": "Which DOL PERM disclosure files to search. <code>latest</code> = the newest file (FY2026, decisions Oct 1, 2025 to Jun 30, 2026). Use a year like <code>2025</code>, a range like <code>2022-2026</code>, or <code>all</code> (FY2020 to today). A fiscal year runs Oct 1 to Sep 30.",
            "default": [
              "latest"
            ],
            "items": {
              "type": "string"
            }
          },
          "outputMode": {
            "title": "Output",
            "enum": [
              "cases",
              "employers"
            ],
            "type": "string",
            "description": "<b>cases</b> = one row per PERM case. <b>employers</b> = one row per sponsoring employer with case counts, approval rate, median offered wage, top job titles, worksites and law firms.",
            "default": "cases"
          },
          "employerNames": {
            "title": "Employer name contains",
            "type": "array",
            "description": "Keep cases whose employer (legal or trade name) contains ANY of these words, e.g. <code>microsoft</code>, <code>amazon</code>, <code>mayo clinic</code>. Matches at the start of a word, so <code>meta</code> does not match \"Metal Works\". Empty = all employers.",
            "items": {
              "type": "string"
            }
          },
          "jobTitleKeywords": {
            "title": "Job title contains",
            "type": "array",
            "description": "Keep cases whose job title contains ANY of these, e.g. <code>software engineer</code>, <code>data scientist</code>, <code>nurse</code>.",
            "items": {
              "type": "string"
            }
          },
          "socCodes": {
            "title": "SOC occupation codes (prefix)",
            "type": "array",
            "description": "Standard Occupational Classification codes, matched as a prefix: <code>15-1252</code> = Software Developers, <code>15-</code> = all computer and math jobs, <code>29-1141</code> = Registered Nurses.",
            "items": {
              "type": "string"
            }
          },
          "worksiteStates": {
            "title": "Worksite states",
            "type": "array",
            "description": "2-letter codes or full names of the state where the job is, e.g. <code>CA</code>, <code>TX</code>, <code>New York</code>.",
            "items": {
              "type": "string"
            }
          },
          "worksiteCities": {
            "title": "Worksite city contains",
            "type": "array",
            "description": "e.g. <code>Seattle</code>, <code>Austin</code>, <code>New York</code>.",
            "items": {
              "type": "string"
            }
          },
          "statuses": {
            "title": "Case status",
            "type": "array",
            "description": "<b>certified</b> (includes \"Certified - Expired\", i.e. approved but not used within 180 days), <b>certified_only</b>, <b>certified_expired</b>, <b>denied</b>, <b>withdrawn</b>, or <b>all</b>. Empty = all statuses. Leave empty in employer mode to get a real approval rate.",
            "items": {
              "type": "string"
            }
          },
          "minYearlyWage": {
            "title": "Minimum offered yearly wage (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep cases whose offered wage (top of the range, converted to yearly: hour x 2080, week x 52, month x 12) is at least this."
          },
          "maxYearlyWage": {
            "title": "Maximum offered yearly wage (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep cases whose offered wage (bottom of the range, yearly) is at most this."
          },
          "decisionDateFrom": {
            "title": "Decided on or after",
            "type": "string",
            "description": "<code>2026-01-01</code> or a relative period like <code>90 days</code>."
          },
          "decisionDateTo": {
            "title": "Decided on or before",
            "type": "string",
            "description": "<code>2026-06-30</code> or a relative period like <code>30 days</code> (= up to 30 days ago)."
          },
          "naicsCodes": {
            "title": "Employer NAICS industry codes (prefix)",
            "type": "array",
            "description": "e.g. <code>5415</code> = computer systems design (IT consulting), <code>6221</code> = hospitals, <code>5112</code> / <code>5132</code> = software publishers.",
            "items": {
              "type": "string"
            }
          },
          "countriesOfCitizenship": {
            "title": "Worker's country of citizenship (FY2020-FY2024 old-form files only)",
            "type": "array",
            "description": "e.g. <code>India</code>, <code>China</code>, <code>Mexico</code>. DOL dropped this field from the 2023+ form, so it only matches cases from the pre-2023 form files (FY2020 to FY2024).",
            "items": {
              "type": "string"
            }
          },
          "lawFirmNames": {
            "title": "Law firm contains",
            "type": "array",
            "description": "Keep cases filed by these immigration law firms, e.g. <code>fragomen</code>, <code>berry appleman</code>.",
            "items": {
              "type": "string"
            }
          },
          "includeContacts": {
            "title": "Include employer and attorney contact details",
            "type": "boolean",
            "description": "Adds the employer's listed point of contact (name, title, email, phone) and the attorney or agent (name, firm, email, phone) exactly as published by DOL. Off by default. These are personal details; use them lawfully (see README).",
            "default": false
          },
          "onlyNew": {
            "title": "Only new cases since my last run",
            "type": "boolean",
            "description": "Remembers the case numbers you already got for this exact search and returns only new ones. If DOL has not published a new file since your last run, the file is skipped without downloading, so daily schedules cost almost nothing between quarterly releases. Cases mode only.",
            "default": false
          },
          "stateKey": {
            "title": "Only-new state key (optional)",
            "type": "string",
            "description": "By default the memory is tied to your filters. Set a name to share or reset it on purpose."
          },
          "minCasesPerEmployer": {
            "title": "Employer mode: minimum cases",
            "minimum": 1,
            "type": "integer",
            "description": "Only return employers with at least this many matching cases.",
            "default": 1
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many cases (or employers). 0 = no limit. A full fiscal year has 100,000-150,000 cases.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}