{
  "openapi": "3.0.1",
  "info": {
    "title": "Green Japan Tech Jobs Scraper: IT Postings, Salaries, Companies",
    "description": "Export IT job postings from Green Japan as JSON. Each row has title, company, prefecture, yen salary, skill tags, work style and company profile. Filter by keyword, skill, salary, remote work, job category, listing status or headcount. Monitor mode returns new or changed postings. $2 per 1,000.",
    "version": "0.3",
    "x-build-id": "vkeUiqzZmmn5thohG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~green-japan-tech-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-green-japan-tech-jobs-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/getascraper~green-japan-tech-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-green-japan-tech-jobs-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/getascraper~green-japan-tech-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-green-japan-tech-jobs-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": "Run mode",
            "enum": [
              "search",
              "monitor"
            ],
            "type": "string",
            "description": "Search exports postings that match your filters. Monitor keeps state in a named key-value store and returns only postings that are new or changed since the previous run. Schedule monitor mode daily to follow the board.",
            "default": "search"
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Matches job title, position name, company name, description, requirements and skill tags. Japanese or English, case-insensitive. Separate several words with spaces to require all of them.",
            "default": ""
          },
          "skills": {
            "title": "Skill tags",
            "type": "array",
            "description": "Required skill tags as Green lists them, for example React, Python, AWS or Ruby on Rails. Matched exactly, so Java does not match JavaScript.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "skillsMatch": {
            "title": "Skill tag matching",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "Any: a posting matches when it has at least one of the skill tags above. All: it must have every one of them.",
            "default": "any"
          },
          "minSalaryYen": {
            "title": "Minimum salary (yen per year)",
            "minimum": 0,
            "maximum": 200000000,
            "type": "integer",
            "description": "Keep postings whose salary range reaches at least this amount, in yen per year (for example 5000000 for 5 million yen). 0 turns the filter off. Postings with no published salary numbers are excluded when this filter is on.",
            "default": 0
          },
          "maxSalaryYen": {
            "title": "Maximum salary (yen per year)",
            "minimum": 0,
            "maximum": 200000000,
            "type": "integer",
            "description": "Keep postings whose salary range starts at or below this amount, in yen per year. 0 turns the filter off. Postings with no published salary numbers are excluded when this filter is on.",
            "default": 0
          },
          "employmentStatus": {
            "title": "Employment status",
            "type": "array",
            "description": "Employment types as Green publishes them, for example 正社員 (full-time permanent), 契約社員 (contract), 業務委託 (freelance contract), 派遣社員 (dispatch). Leave empty for all.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "workArrangements": {
            "title": "Work arrangement tags",
            "type": "array",
            "description": "Work-arrangement tags as Green publishes them, for example フルリモート (fully remote), 週に1回以上のリモート (remote at least once a week), リモート勤務の相談可 (remote negotiable), フレックスタイム (flexible hours), 時短勤務可 (reduced hours), 副業可 (side jobs allowed). A posting matches when it has any of them.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "remoteOnly": {
            "title": "Remote work offered",
            "type": "boolean",
            "description": "Keep only postings tagged with any remote option: fully remote, remote at least once a week, or remote negotiable.",
            "default": false
          },
          "areas": {
            "title": "Prefectures and areas",
            "type": "array",
            "description": "Work locations as Green names them, for example 東京都 (Tokyo), 大阪府 (Osaka), 神奈川県 (Kanagawa). A posting matches when it lists any of them.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "jobTypes": {
            "title": "Job types",
            "type": "array",
            "description": "Role names as Green publishes them, for example バックエンドエンジニア (backend engineer), フロントエンドエンジニア (frontend engineer), データサイエンティスト (data scientist). A posting matches when it is listed under any of them.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "jobCategories": {
            "title": "Job categories",
            "type": "array",
            "description": "Job categories as Green groups them, for example エンジニア・技術職（システム/ネットワーク） (engineering and technical) or 経理・管理・バックオフィス職 (accounting, admin and back office). A posting matches when it is in any of them.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "updatedWithinDays": {
            "title": "Updated within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep postings Green updated in the last N days. 0 means any date.",
            "default": 0
          },
          "companyIds": {
            "title": "Only these company IDs",
            "type": "array",
            "description": "Optional. Limit the run to specific hiring companies by their Green company ID (the number after /company/ in a Green URL). Leave empty to cover the whole board.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "industries": {
            "title": "Company industries",
            "type": "array",
            "description": "Industry names from the hiring company's profile, for example インターネット/Webサービス・ASP. A posting matches when its company is in any of them.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "listingStatus": {
            "title": "Listing status",
            "type": "array",
            "description": "Stock market status of the hiring company as Green publishes it, for example 東証プライム (TSE Prime), 東証一部 (TSE First Section) or 非上場 (unlisted). A posting matches when its company has any of them. Postings with no listing status are excluded when this is set.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "companyFeatures": {
            "title": "Company features",
            "type": "array",
            "description": "Company tags as Green publishes them, for example 上場 (listed), 外資系 (foreign-owned), 残業少なめ (low overtime), カジュアル面談歓迎 (casual interviews welcome) or 自社サービス製品あり (has its own products or services). A posting matches when its company has any of them.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "companyEmployeesMin": {
            "title": "Minimum company headcount",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Keep postings whose hiring company has at least this many employees. 0 turns the filter off.",
            "default": 0
          },
          "companyEmployeesMax": {
            "title": "Maximum company headcount",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Keep postings whose hiring company has at most this many employees. 0 turns the filter off.",
            "default": 0
          },
          "maxItems": {
            "title": "Maximum postings to return",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Stop after this many matching postings. Each returned posting is one billable result.",
            "default": 20
          },
          "maxScanned": {
            "title": "Maximum postings to scan",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after reading this many posting pages, whether or not they matched. Postings are scanned newest job ID first. Each scanned page is one request to Green. The board holds about 28,000 live postings, so raise this for a deeper search.",
            "default": 200
          },
          "monitorStoreName": {
            "title": "Monitor state store name",
            "pattern": "^[a-z0-9-]{1,63}$",
            "type": "string",
            "description": "Used only in monitor mode. Name of the key-value store that remembers which postings were already seen. Use a different name for each monitor you run, for example green-japan-ml-monitor. Lowercase letters, digits and hyphens, up to 63 characters.",
            "default": "green-japan-monitor"
          },
          "monitorRefreshCount": {
            "title": "Monitor: postings to re-check per run",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Monitor mode only. Already-seen postings are re-read this many per run, oldest check first, to catch edits. New postings are always read first.",
            "default": 100
          },
          "concurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many posting pages to fetch at the same time. Lower values are gentler on Green. Higher values finish sooner.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Green has been reachable without a proxy in our Cloud verification. Leave Apify Proxy off unless Green starts blocking requests from Apify's servers.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}