{
  "openapi": "3.0.1",
  "info": {
    "title": "Dice Jobs Scraper — US Tech Jobs Data & API",
    "description": "Dice.com scraper & tech-jobs data API. Extract US technology job postings: title, company, salary, skills, employment type, remote flags, location, dates & full descriptions — clean JSON/CSV. Search by query or paste a search URL. No account or API key needed.",
    "version": "1.0",
    "x-build-id": "GXyWUg1bqHJIWixQI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~dice-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-dice-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/sian.agency~dice-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-dice-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/sian.agency~dice-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-dice-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": {
          "scrapeMode": {
            "title": "🧭 Scrape Mode",
            "enum": [
              "overview",
              "detail"
            ],
            "type": "string",
            "description": "🧭 **Choose how much data per job:**\n\n- **Overview** (cheap) — fast list scrape from search results: title, company, salary, skills, location, dates, remote flags. ~30 jobs/page.\n- **Detail** (full) — fetches each job page for the complete HTML description, normalized salary value + currency, posting expiry date & postal code.\n\n💡 Detail mode is a superset of overview — it discovers jobs from search, then enriches each one.",
            "default": "overview"
          },
          "searchMode": {
            "title": "🔀 Search Mode",
            "enum": [
              "byQuery",
              "bySearchUrl",
              "byJobUrl"
            ],
            "type": "string",
            "description": "🔀 **How do you want to find jobs?**\n\n- **By Query** — type a keyword + location (e.g. \"python developer\" in \"New York\").\n- **By Search URL** — paste a dice.com `/jobs?…` search URL (carries all your on-site filters).\n- **By Job URL** — paste specific dice.com job URLs or GUIDs (detail mode only).",
            "default": "byQuery"
          },
          "query": {
            "title": "🔍 Search Query",
            "type": "string",
            "description": "🔍 **Job keyword(s)** to search — e.g. `python developer`, `data engineer`, `devops`.\n\nUsed when Search Mode is **By Query**. Combine with the Location field below.",
            "default": "python developer"
          },
          "location": {
            "title": "📍 Location",
            "type": "string",
            "description": "📍 **Free-text location** — e.g. `United States`, `New York, NY`, `Remote`. Dice geocodes it server-side, so a city, state, or the whole country all work.\n\nUsed with **By Query**.",
            "default": "United States"
          },
          "searchUrls": {
            "title": "🔗 Search URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "🔗 **Paste one or more dice.com search URLs** (the `/jobs?…` page). All filters and sorting you set on the site are preserved.\n\nUsed when Search Mode is **By Search URL**.\n\n💡 Click \"Bulk edit\" to paste multiple URLs (one per line).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "jobUrls": {
            "title": "🔎 Job URLs or GUIDs",
            "uniqueItems": true,
            "type": "array",
            "description": "🔎 **Paste specific dice.com job URLs or job GUIDs** to fetch full details for. Used when Scrape Mode is **Detail** and Search Mode is **By Job URL**.\n\n💡 Click \"Bulk edit\" to paste multiple (one per line).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxResults": {
            "title": "🔢 Max Jobs Per Run",
            "minimum": 1,
            "type": "integer",
            "description": "🔢 **How many jobs to return.**\n\n- **FREE users:** capped at 25 per run.\n- **PAID users:** unlimited.\n\nCounts **distinct** jobs — if Dice serves the same posting on two pages it is saved and charged only once, and the run keeps paging until your number is met. Dice returns about 30 jobs per search page.",
            "default": 100
          },
          "sort": {
            "title": "↕️ Sort Order",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "↕️ **Result ordering.** `relevance` (default) or `date` (newest first).",
            "default": "relevance"
          },
          "postedDate": {
            "title": "📅 Posted Within",
            "enum": [
              "",
              "ONE",
              "THREE",
              "SEVEN",
              "FOURTEEN"
            ],
            "type": "string",
            "description": "📅 **Only jobs posted within this window.** Leave blank for all.",
            "default": ""
          },
          "employmentType": {
            "title": "💼 Employment Type",
            "enum": [
              "",
              "FULLTIME",
              "PARTTIME",
              "CONTRACTS",
              "THIRD_PARTY"
            ],
            "type": "string",
            "description": "💼 **Filter by employment type.** Leave blank for all.",
            "default": ""
          },
          "isRemote": {
            "title": "🏠 Remote Only",
            "type": "boolean",
            "description": "🏠 **Only show remote jobs.**",
            "default": false
          },
          "willingToSponsor": {
            "title": "🛂 Visa Sponsorship",
            "type": "boolean",
            "description": "🛂 **Only employers willing to sponsor a visa.**",
            "default": false
          },
          "easyApply": {
            "title": "⚡ Easy Apply",
            "type": "boolean",
            "description": "⚡ **Only jobs that support one-click Easy Apply.**",
            "default": false
          },
          "useProxy": {
            "title": "🛡️ Use Residential Proxy",
            "type": "boolean",
            "description": "🛡️ **Route requests through a US residential proxy pool.** Off by default — Dice does not require a proxy. Enable only as a rate-limit hedge for very high-volume runs.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}