{
  "openapi": "3.0.1",
  "info": {
    "title": "Dice.com Jobs Scraper - US Tech Jobs, Salaries & Skills API",
    "description": "Use this to get US tech job ads from Dice.com. Input: keywords, locations, filters or Dice URLs. One result = one job: title, company, location, salary (parsed), contract/full-time, remote/hybrid, date, URL; optional full description, skills and company profile. Past the 10k cap. $0.70 per 1,000.",
    "version": "1.0",
    "x-build-id": "hlFnNCShcpZHkZXN3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rel8ble~dice-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rel8ble-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/rel8ble~dice-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rel8ble-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/rel8ble~dice-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rel8ble-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": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Optional. Job keywords as typed into the Dice search box, one per line: \"python developer\", \"devops engineer\", \"salesforce\", \"SAP FICO\". A skill, title or company name all work. Each keyword is one search and returns up to maxItems jobs. Leave empty to list all jobs matching the location and filters below. Give at least one of searchQueries, locations, a filter or startUrls.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations (US)",
            "type": "array",
            "description": "Optional. US places to search around, one per line: a city (\"Austin, TX\", \"New York, NY\"), a state (\"Texas\", \"California\"), or a ZIP code (\"94105\"). Every keyword is searched in every location (2 keywords x 3 locations = 6 searches). Empty = the whole US. A place Dice does not recognise returns 0 jobs and is named in the run summary (it is not silently widened to the whole US).",
            "items": {
              "type": "string"
            }
          },
          "radius": {
            "title": "Radius around a city",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Optional. Distance around each city or ZIP in locations, integer 1-500, in radiusUnit. Default 30 (what dice.com uses). The site offers 10, 30, 50 and 75. Ignored for states and when locations is empty.",
            "default": 30
          },
          "radiusUnit": {
            "title": "Radius unit",
            "enum": [
              "mi",
              "km"
            ],
            "type": "string",
            "description": "Optional. \"mi\" (default) or \"km\".",
            "default": "mi"
          },
          "includeRemote": {
            "title": "Include remote jobs from anywhere",
            "type": "boolean",
            "description": "Optional boolean, default true (what dice.com does). true = a location search also returns remote jobs from anywhere in the US, and a search without a location also returns remote jobs that have no address. false = only jobs whose address is in or near the location. Ignored when workplaceTypes is set without \"remote\".",
            "default": true
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Optional. Only jobs posted in the last N days, integer >= 0. 1 = posted today, 3 and 7 use Dice's own filters; any other number is applied to each job's postedAt date (use sort \"date\" with it so paging stops early). 0 (default) = any date. Use 1 on a daily schedule to collect only new jobs.",
            "default": 0
          },
          "workplaceTypes": {
            "title": "Workplace types",
            "type": "array",
            "description": "Optional. Keep only these workplace settings: any of \"remote\", \"hybrid\", \"onsite\". Use [\"remote\"] for remote jobs only. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Optional. Keep only these employment types: any of \"fulltime\", \"parttime\", \"contract\", \"thirdparty\" (corp-to-corp / through a staffing firm). A job can have several. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "fulltime",
                "parttime",
                "contract",
                "thirdparty"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Third party (C2C, via another firm)"
              ]
            }
          },
          "employerTypes": {
            "title": "Employer types",
            "type": "array",
            "description": "Optional. Keep only ads posted by these: \"directhire\" (the employer itself), \"recruiter\" (staffing / recruiting agencies), \"other\". Use [\"directhire\"] to skip agencies. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "directhire",
                "recruiter",
                "other"
              ],
              "enumTitles": [
                "Direct hire (the employer posts)",
                "Recruiter / staffing agency",
                "Other"
              ]
            }
          },
          "easyApplyOnly": {
            "title": "Easy apply only",
            "type": "boolean",
            "description": "Optional boolean. true = only jobs you can apply to on Dice with one click. Default false.",
            "default": false
          },
          "willingToSponsorOnly": {
            "title": "Visa sponsorship only",
            "type": "boolean",
            "description": "Optional boolean. true = only jobs whose employer says it is willing to sponsor a work visa. Default false.",
            "default": false
          },
          "companyName": {
            "title": "Company name",
            "type": "string",
            "description": "Optional. Only jobs from this company, written exactly as Dice shows it (case-sensitive), e.g. \"Capital One\", \"Amazon Web Services (AWS)\". Combine with empty searchQueries to get every job of one company. Or paste the company's Dice page into startUrls."
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Optional. \"relevance\" (default) or \"date\" (newest first).",
            "default": "relevance"
          },
          "maxItems": {
            "title": "Max jobs per search",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Maximum jobs saved per search (one keyword in one location), integer >= 0. Default 100; 0 = every job the search has. You pay per job saved ($0.0007 each), so 100 jobs = $0.07. Use 10-20 for a quick answer.",
            "default": 100
          },
          "deepSearch": {
            "title": "Deep search (go past the 10,000-job limit)",
            "type": "boolean",
            "description": "Optional boolean, default true. Dice returns at most 10,000 jobs for any one search. With deep search on, a bigger search is split automatically by employer type, US state, easy apply, employment type and workplace type, and the results are merged without duplicates. Only kicks in when maxItems is above 10,000 (or 0). It costs extra requests, not extra money per job.",
            "default": true
          },
          "includeDetails": {
            "title": "Include full description & skills (slower)",
            "type": "boolean",
            "description": "Optional boolean. false (default) = search data only: title, company, location, salary, employment and workplace type, summary (first ~500 characters), dates, links; up to 200 jobs per request. true = also open each job page to add the full description (plain text), the skills list, expiry date, ZIP code, the employer's position id, contract type and term, and the apply link. One extra request per job, same price per result.",
            "default": false
          },
          "includeDescriptionHtml": {
            "title": "Also keep the description as HTML",
            "type": "boolean",
            "description": "Optional boolean. Only used with includeDetails or job URLs. true = add descriptionHtml (the original formatting) next to the plain-text description. Default false.",
            "default": false
          },
          "includeCompanyDetails": {
            "title": "Include company profile",
            "type": "boolean",
            "description": "Optional boolean. true = add the employer's Dice company profile to each job where one exists: website, company type (e.g. \"Staffing & Recruiting\"), size, year founded, office policy, headquarters, locations, overview, technologies, benefits and social links. One extra request per company (not per job), same price per result. Default false.",
            "default": false
          },
          "startUrls": {
            "title": "Dice URLs",
            "type": "array",
            "description": "Optional. URLs copied from dice.com, one per line. A search URL (\"https://www.dice.com/jobs?q=java&location=Austin%2C+TX&filters.postedDate=SEVEN\" or \"https://www.dice.com/jobs/q-python-jobs\") is scraped with the filters in the URL (the filter fields above are not applied to it). A job URL (\"https://www.dice.com/job-detail/56bfa0f0-8d70-4033-8bde-f962d9919761\") or a bare job id is looked up directly and always includes the full details. A company URL (\"https://www.dice.com/company-profile/<id>\" or \"https://www.dice.com/company/10225989\") returns all of that company's jobs. Expired jobs are listed in the run summary and are not charged.",
            "items": {
              "type": "string"
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 40,
            "type": "integer",
            "description": "Optional, advanced. Number of parallel requests, integer 1-40. Default 20. Leave unset.",
            "default": 20
          },
          "maxRequestRetries": {
            "title": "Max retries per request",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Optional, advanced. Retries per failed or blocked request, integer 0-20; each retry uses a new session and IP. Default 8. Leave unset.",
            "default": 8
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional, advanced. Apify Proxy settings object. Default {\"useApifyProxy\": true} (datacenter proxies are enough). Leave unset.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}